次の方法で共有


PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC コールバック関数 (wincrypt.h)

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

構文

PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC PfnCryptExportPublicKeyInfoEx2Func;

BOOL PfnCryptExportPublicKeyInfoEx2Func(
  [in]            NCRYPT_KEY_HANDLE hNCryptKey,
  [in]            DWORD dwCertEncodingType,
  [in]            LPSTR pszPublicKeyObjId,
  [in]            DWORD dwFlags,
  [in, optional]  void *pvAuxInfo,
  [out, optional] PCERT_PUBLIC_KEY_INFO pInfo,
  [in, out]       DWORD *pcbInfo
)
{...}

パラメーター

[in] hNCryptKey

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

[in] dwCertEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPublicKeyObjId

公開キー アルゴリズムを含む文字列へのポインター。

[in] dwFlags

公開キー情報のエクスポート方法を示す 値。 これは 0 にすることができます。

[in, optional] pvAuxInfo

このパラメーターは将来使用するために予約されており、 NULL に設定する必要があります。

[out, optional] pInfo

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

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

[in, out] pcbInfo

pInfo パラメーターによって指されるバッファーのサイズ (バイト単位) を含む DWORD へのポインター。 関数が戻るときに、 DWORD にはバッファーに格納されているバイト数が含まれます。

メモ バッファーで返されたデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも若干小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

戻り値

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

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

このコールバック関数がシグネチャ アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTEDを使用して SetLastError を呼び出す必要があります。

解説

OID サポート関数を使用して、このコールバック関数を展開できます。 Wincrypt.h は、この目的のために次の定数を定義します。

常時 定義
CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC "CryptDllExportPublicKeyInfoEx2"

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincrypt.h