次の方法で共有


CryptExportPKCS8 関数 (wincrypt.h)

[ CryptExportPKCS8 関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。 代わりに、 PFXExportCertStoreEx 関数を 使用します。

CryptExportPKCS8 関数は、秘密キーを PKCS #8 形式でエクスポートします。 この関数は CryptExportPKCS8Ex に置き換えられます。この関数は、以降のバージョンでも変更または使用できない可能性があります。

構文

BOOL CryptExportPKCS8(
  [in]            HCRYPTPROV hCryptProv,
  [in]            DWORD      dwKeySpec,
  [in]            LPSTR      pszPrivateKeyObjId,
  [in]            DWORD      dwFlags,
  [in, optional]  void       *pvAuxInfo,
  [out, optional] BYTE       *pbPrivateKeyBlob,
  [in, out]       DWORD      *pcbPrivateKeyBlob
);

パラメーター

[in] hCryptProv

暗号化サービス プロバイダー (CSP) を含む HCRYPTPROV 変数。 これは、 CryptAcquireContext を呼び出すことによって取得された CSP へのハンドルです。

[in] dwKeySpec

キー指定を含む DWORD 変数。 既定のプロバイダーには、次の dwKeySpec 値が定義されています。

説明
AT_KEYEXCHANGE
セッション キーの暗号化/暗号化解除に使用されるキー。
AT_SIGNATURE
デジタル署名の作成と検証に使用されるキー。

[in] pszPrivateKeyObjId

秘密キー オブジェクト識別子 (OID) を含む LPSTR 変数。

[in] dwFlags

pbPrivateKeyBlobNULL で、それ以外の場合は0x8000場合、このパラメーターは 0 にする必要があります。

[in, optional] pvAuxInfo

このパラメーターは NULL に設定する必要があります。

[out, optional] pbPrivateKeyBlob

エクスポートする秘密キーを受け取る BYTE 構造体の配列へのポインター。

秘密キーには、PKCS #8 標準で見つかった PKCS #8 PrivateKeyInfo 抽象構文表記 1 (ASN.1) 型の情報が含まれます。

メモリ割り当てのために、このパラメーターを NULL に設定することで、エクスポートする秘密キーのサイズを取得できます。 詳細については、「 不明な長さのデータの取得」を参照してください。

[in, out] pcbPrivateKeyBlob

pbPrivateKeyBlob を格納するために必要なメモリ割り当てのサイズ (バイト単位) を入力時に格納できる DWORD へのポインター。 pbPrivateKeyBlobNULL の場合、このパラメーターは、関数の 2 回目の呼び出しに必要なメモリ割り当てのサイズを返します。 詳細については、「 不明な長さのデータの取得」を参照してください。

戻り値

関数が成功した場合、関数は 0 以外の値を返します。

関数が失敗すると、0 が返されます。 拡張エラー情報については、 GetLastError を呼び出します。

この関数に固有のエラー コードを次に示します。

リターン コード 説明
ERROR_UNSUPPORTED_TYPE
インストールまたは登録できるエクスポート関数が見つかりませんでした。
ERROR_MORE_DATA
pbPrivateKeyBlob パラメーターで指定されたバッファーが、返されるデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbPrivateKeyBlob パラメーターが指す変数に格納します。
 

関数が失敗した場合、 GetLastError は ASN.1 エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 エンコード/デコードの戻り値」を参照してください。

解説

この関数は、非対称キーでのみサポートされています。

要件

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

関連項目

CryptAcquireContext

CryptExportPKCS8Ex

不明な長さのデータの取得