CryptExportPKCS8Ex 関数 (wincrypt.h)
[ CryptExportPKCS8Ex 関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。 代わりに、 PFXExportCertStoreEx 関数を 使用します。
CryptExportPKCS8Ex 関数は、秘密キーを PKCS #8 形式でエクスポートします。この関数には、関連付けられたインポート ライブラリがありません。 LoadLibrary 関数と GetProcAddress 関数を使用して、Crypt32.dll に動的にリンクする必要があります。
構文
BOOL CryptExportPKCS8Ex(
[in] CRYPT_PKCS8_EXPORT_PARAMS *psExportParams,
[in] DWORD dwFlags,
[in, optional] void *pvAuxInfo,
[out, optional] BYTE *pbPrivateKeyBlob,
[in, out] DWORD *pcbPrivateKeyBlob
);
パラメーター
[in] psExportParams
エクスポートするキーに関する情報を含む CRYPT_PKCS8_EXPORT_PARAMS 構造体へのポインター。
[in] dwFlags
pbPrivateKeyBlob が NULL の場合は、このパラメーターは 0 にし、それ以外の場合0x8000する必要があります。
[in, optional] pvAuxInfo
このパラメーターは NULL である必要があります。
[out, optional] pbPrivateKeyBlob
エクスポートする秘密キーを受け取る BYTE 構造体の配列へのポインター。
秘密キーには、PKCS #8 標準で見つかった PKCS #8 PrivateKeyInfo 抽象構文表記 1 (ASN.1) 型の情報が含まれます。
メモリ割り当ての目的で、このパラメーターを NULL に設定することで、エクスポートする秘密キーのサイズを取得できます。 詳細については、「不明な 長さのデータの取得」を参照してください。
[in, out] pcbPrivateKeyBlob
pbPrivateKeyBlob を格納するために必要なメモリ割り当てのサイズ (バイト単位) を入力時に格納できる DWORD へのポインター。 pbPrivateKeyBlob が NULL の場合、このパラメーターは関数の 2 回目の呼び出しに必要なメモリ割り当てのサイズを返します。 詳細については、「不明な 長さのデータの取得」を参照してください。
戻り値
関数が成功した場合、関数は 0 以外 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。
この関数に固有のエラー コードを次に示します。
リターン コード | 説明 |
---|---|
|
インストールまたは登録できるエクスポート関数が見つかりませんでした。 |
|
pbPrivateKeyBlob パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbPrivateKeyBlob パラメーターが指す変数に格納します。 |
関数が失敗した場合、 GetLastError は ASN.1 エンコード/デコード エラーを返します。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。
注釈
この関数は、非対称キーでのみサポートされています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
[DLL] | Crypt32.dll |