Win32 API 日本語リファレンス
ホームSecurity.Cryptography › ICertSrvSetupKeyInformation

ICertSrvSetupKeyInformation

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID6ba73778-36da-4c39-8a85-bcfa7d000793継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

証明機関 (CA) または Microsoft Simple Certificate Enrollment Protocol (SCEP) のロールをセットアップする際に使用される秘密キーのプロパティ一式を定義します。

メソッド 12

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_ProviderName(LPWSTR* pVal)

秘密キーの生成または格納に使用される暗号化サービス プロバイダー (CSP) またはキー ストレージ プロバイダー (KSP) の名前を取得または設定します。(Get)

pValLPWSTR*outキーに使用する暗号化サービスプロバイダー(CSP)名を受け取る LPWSTR へのポインタである。

解説(Remarks)

KSP の場合、ProviderName プロパティの値は PublicKeyAlgorithmName、シャープ記号 (#)、KeyStorageProviderName の形式で指定する必要があります。たとえば "RSA#Microsoft Software Key Storage Provider" や "ECDSA_P256#Microsoft Software Key Storage Provider" のようになります。公開キー アルゴリズムは、そのプロバイダーがサポートしている必要があります。サポートされるアルゴリズムを取得するには、dwAlgOperations パラメーターに NCRYPT_SIGNATURE_OPERATION を指定して NCryptEnumAlgorithms 関数を呼び出します。アルゴリズム識別子については、CNG Algorithm Identifiers を参照してください。

vtbl 8 HRESULT put_ProviderName(LPWSTR bstrVal)

秘密キーの生成または格納に使用される暗号化サービス プロバイダー (CSP) またはキー ストレージ プロバイダー (KSP) の名前を取得または設定します。(Put)

bstrValLPWSTRinキーに使用する暗号化サービスプロバイダー(CSP)名を渡す。

解説(Remarks)

KSP の場合、ProviderName プロパティの値は PublicKeyAlgorithmName、シャープ記号 (#)、KeyStorageProviderName の形式で指定する必要があります。たとえば "RSA#Microsoft Software Key Storage Provider" や "ECDSA_P256#Microsoft Software Key Storage Provider" のようになります。公開キー アルゴリズムは、そのプロバイダーがサポートしている必要があります。サポートされるアルゴリズムを取得するには、dwAlgOperations パラメーターに NCRYPT_SIGNATURE_OPERATION を指定して NCryptEnumAlgorithms 関数を呼び出します。アルゴリズム識別子については、CNG Algorithm Identifiers を参照してください。

vtbl 9 HRESULT get_Length(INT* pVal)

キーの強度を、暗号化サービス プロバイダー (CSP) がサポートする値のいずれかに取得または設定します。(Get)

pValINT*outキーの長さ(ビット数)を受け取る INT へのポインタである。
vtbl 10 HRESULT put_Length(INT lVal)

キーの強度を、暗号化サービス プロバイダー (CSP) がサポートする値のいずれかに取得または設定します。(Put)

lValINTinキーの長さ(ビット数)を渡す。
vtbl 11 HRESULT get_Existing(VARIANT_BOOL* pVal)

秘密キーが既に存在するかどうかを示す値を取得または設定します。(Get)

pValVARIANT_BOOL*out既存のキーを使用するかどうかを受け取る VARIANT_BOOL へのポインタである。
vtbl 12 HRESULT put_Existing(VARIANT_BOOL bVal)

秘密キーが既に存在するかどうかを示す値を取得または設定します。(Put)

bValVARIANT_BOOLin既存のキーを使用するかどうかを指定する VARIANT_BOOL 値を渡す。
vtbl 13 HRESULT get_ContainerName(LPWSTR* pVal)

暗号化サービス プロバイダー (CSP) がキーの生成、格納、またはアクセスに使用する名前を取得または設定します。(Get)

pValLPWSTR*outキーコンテナ名を受け取る LPWSTR へのポインタである。

解説(Remarks)

秘密キーが既に存在する場合、この名前は CSP がそのキーにアクセスするために使用する名前と一致している必要があります。

vtbl 14 HRESULT put_ContainerName(LPWSTR bstrVal)

暗号化サービス プロバイダー (CSP) がキーの生成、格納、またはアクセスに使用する名前を取得または設定します。(Put)

bstrValLPWSTRin使用するキーコンテナ名を渡す。

解説(Remarks)

秘密キーが既に存在する場合、この名前は CSP がそのキーにアクセスするために使用する名前と一致している必要があります。

vtbl 15 HRESULT get_HashAlgorithm(LPWSTR* pVal)

キーに対応する証明機関 (CA) 証明書の署名または検証に使用されるハッシュ アルゴリズムの名前を取得または設定します。(Get)

pValLPWSTR*out使用するハッシュアルゴリズム名を受け取る LPWSTR へのポインタである。

解説(Remarks)

ハッシュ アルゴリズムは、ProviderName のプロバイダーがサポートしている必要があります。暗号化サービス プロバイダー (CSP) の場合は、対象のプロバイダーに対して CryptGetProvParam 関数を呼び出して、サポートされるアルゴリズムを取得します。キー ストレージ プロバイダー (KSP) の場合は、dwAlgOperations パラメーターに BCRYPT_HASH_OPERATION を指定して BCryptEnumAlgorithms 関数を呼び出して取得します。アルゴリズム識別子については、CNG Algorithm Identifiers を参照してください。

Examples

CryptGetProvParam を使用してサポートされるアルゴリズムを列挙する例については、Example C Program: Enumerating CSP Providers and Provider Types を参照してください。

vtbl 16 HRESULT put_HashAlgorithm(LPWSTR bstrVal)

キーに対応する証明機関 (CA) 証明書の署名または検証に使用されるハッシュ アルゴリズムの名前を取得または設定します。(Put)

bstrValLPWSTRin使用するハッシュアルゴリズム名を渡す。

解説(Remarks)

ハッシュ アルゴリズムは、ProviderName のプロバイダーがサポートしている必要があります。暗号化サービス プロバイダー (CSP) の場合は、対象のプロバイダーに対して CryptGetProvParam 関数を呼び出して、サポートされるアルゴリズムを取得します。キー ストレージ プロバイダー (KSP) の場合は、dwAlgOperations パラメーターに BCRYPT_HASH_OPERATION を指定して BCryptEnumAlgorithms 関数を呼び出して取得します。アルゴリズム識別子については、CNG Algorithm Identifiers を参照してください。

Examples

CryptGetProvParam を使用してサポートされるアルゴリズムを列挙する例については、Example C Program: Enumerating CSP Providers and Provider Types を参照してください。

vtbl 17 HRESULT get_ExistingCACertificate(VARIANT* pVal)

既存のキーに対応する証明機関 (CA) 証明書のバイナリ値であり、Distinguished Encoding Rules (DER) を使用してエンコードされたバイナリ値を取得または設定します。(Get)

pValVARIANT*out既存の CA 証明書を表す値を受け取る VARIANT へのポインタである。
vtbl 18 HRESULT put_ExistingCACertificate(VARIANT varVal)

既存のキーに対応する証明機関 (CA) 証明書のバイナリ値であり、Distinguished Encoding Rules (DER) を使用してエンコードされたバイナリ値を取得または設定します。(Put)

varValVARIANTin既存の CA 証明書を表す値を VARIANT で渡す。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICertSrvSetupKeyInformation "{6BA73778-36DA-4C39-8A85-BCFA7D000793}"
#usecom global ICertSrvSetupKeyInformation IID_ICertSrvSetupKeyInformation "{}"
#comfunc global ICertSrvSetupKeyInformation_get_ProviderName           7 var
#comfunc global ICertSrvSetupKeyInformation_put_ProviderName           8 wstr
#comfunc global ICertSrvSetupKeyInformation_get_Length                 9 var
#comfunc global ICertSrvSetupKeyInformation_put_Length                 10 int
#comfunc global ICertSrvSetupKeyInformation_get_Existing               11 var
#comfunc global ICertSrvSetupKeyInformation_put_Existing               12 int
#comfunc global ICertSrvSetupKeyInformation_get_ContainerName          13 var
#comfunc global ICertSrvSetupKeyInformation_put_ContainerName          14 wstr
#comfunc global ICertSrvSetupKeyInformation_get_HashAlgorithm          15 var
#comfunc global ICertSrvSetupKeyInformation_put_HashAlgorithm          16 wstr
#comfunc global ICertSrvSetupKeyInformation_get_ExistingCACertificate  17 var
#comfunc global ICertSrvSetupKeyInformation_put_ExistingCACertificate  18 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。