CryptCreateKeyIdentifierFromCSP 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptCreateKeyIdentifierFromCSP 関数は、暗号化サービス プロバイダー (CSP) 公開キーCRYPT_INTEGER_BLOBからキー識別子を作成します。

この関数は、CSP の PUBLICKEYSTRUCX.509CERT_PUBLIC_KEY_INFO 構造体に変換し、それをエンコードします。 その後、エンコードされた構造体が SHA1 アルゴリズムで ハッシュされ 、キー識別子が取得されます。

構文

BOOL CryptCreateKeyIdentifierFromCSP(
  [in]      DWORD                dwCertEncodingType,
  [in]      LPCSTR               pszPubKeyOID,
  [in]      const PUBLICKEYSTRUC *pPubKeyStruc,
  [in]      DWORD                cbPubKeyStruc,
  [in]      DWORD                dwFlags,
  [in]      void                 *pvReserved,
  [out]     BYTE                 *pbHash,
  [in, out] DWORD                *pcbHash
);

パラメーター

[in] dwCertEncodingType

使用するエンコードの種類を指定します。 次の例に示すように、証明書と メッセージエンコードの両方の種類 をビットごとの OR 操作と組み合わせて指定することは、常に許容されます。

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

現在定義されているエンコードの種類は次のとおりです。

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPubKeyOID

公開キー オブジェクト識別子 (OID) へのポインター。 NULL 以外の値は、pPubKeyStruc が指す構造体の aiKeyAlg メンバーから取得された既定の OID をオーバーライドします。 既定の OID を使用するには、 pszPubKeyOIDNULL に設定します。

[in] pPubKeyStruc

PUBLICKEYSTRUC 構造体へのポインター。 既定のケースでは、pPubKeyStruc が指す構造体の aiKeyAlg メンバーを使用して、公開キー OID を検索します。 pszPubKeyOID の値が NULL でない場合は、既定値がオーバーライドされます。

[in] cbPubKeyStruc

PUBLICKEYSTRUC のサイズ (バイト単位)。

[in] dwFlags

将来使用するために予約されており、0 である必要があります。

[in] pvReserved

将来使用するために予約されており、 NULL である必要があります。

[out] pbHash

公開キーとキー識別子の ハッシュ を受け取るバッファーへのポインター。

メモリ割り当てのためにこの情報のサイズを取得するには、このパラメーターを NULL に設定します。 詳細については、「不明な 長さのデータの取得」を参照してください。

[in, out] pcbHash

pbHash パラメーターが指すバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るときに、 DWORD にはバッファーに格納されているバイト数が含まれます。 SHA1 ハッシュを使用すると、必要なバッファーの長さは 20 です。

戻り値

関数が成功した場合、関数は 0 以外 (TRUE) を返します。

関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

キー識別子関数