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

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC

コールバック

シグネチャ

BOOL PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC(
    NCRYPT_KEY_HANDLE hNCryptKey,
    CERT_QUERY_ENCODING_TYPE dwCertEncodingType,
    LPSTR pszPublicKeyObjId,
    DWORD dwFlags,
    void* pvAuxInfo,
    CERT_PUBLIC_KEY_INFO* pInfo,
    DWORD* pcbInfo
);

パラメーター

フィールド型説明
hNCryptKeyNCRYPT_KEY_HANDLE公開キー情報のエクスポート時に使用する 暗号化サービス プロバイダー (CSP) のハンドル。このハンドルは、NCryptOpenKey 関数を使用して作成された NCRYPT_KEY_HANDLE ハンドルである必要があります。
dwCertEncodingTypeCERT_QUERY_ENCODING_TYPE

使用するエンコード種別を指定する値。次の例のように、証明書のエンコード種別とメッセージのエンコード種別をビットごとの OR 演算で組み合わせて指定することは、常に受け入れられます。

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

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

pszPublicKeyObjIdLPSTR公開キー アルゴリズムを含む文字列へのポインター。
dwFlagsDWORD公開キー情報をどのようにエクスポートするかを示す値。ゼロを指定できます。
pvAuxInfovoid*このパラメーターは将来の使用のために予約されており、NULL を設定する必要があります。
pInfoCERT_PUBLIC_KEY_INFO*

エクスポートする公開キー情報を受け取る CERT_PUBLIC_KEY_INFO 構造体へのポインター。

メモリ割り当てのためにこの情報のサイズを取得する目的で、このパラメーターに NULL を指定できます。詳細については、 Retrieving Data of Unknown Length を参照してください。

pcbInfoDWORD*

pInfo パラメーターが指すバッファーのサイズ (バイト単位) を格納する DWORD へのポインター。関数から制御が戻ると、この DWORD にはバッファーに格納されたバイト数が入ります。

注意 バッファーに返されたデータを処理する際、アプリケーションは実際に返されたデータのサイズを使用する必要があります。実際のサイズは、入力時に指定したバッファーのサイズよりわずかに小さい場合があります。(入力時には通常、出力され得る最大のデータが収まるように十分大きなバッファー サイズを指定します。) 出力時には、このパラメーターが指す変数が、バッファーにコピーされた実際のデータ サイズを示すように更新されます。

公式ドキュメント

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC コールバック関数は、公開キー BLOB をエクスポートしてエンコードするために CryptExportPublicKeyInfoEx から呼び出されます。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) です。

関数が失敗した場合、戻り値は 0 (FALSE) です。拡張エラー情報を取得するには、 GetLastError を呼び出します。

このコールバック関数が署名アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTED を指定して SetLastError を呼び出す必要があります。

解説(Remarks)

このコールバック関数を配置するには、OID サポート関数を使用できます。Wincrypt.h では、この目的のために次の定数が定義されています。

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