CryptImportPKCS8 関数 (wincrypt.h)

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

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptImportPKCS8 関数は、PKCS #8 形式の秘密キー暗号化サービス プロバイダー (CSP) にインポートします。CryptImportPKCS8 は、プロバイダーへのハンドルと、使用されたインポート KeySpec を返します。

構文

BOOL CryptImportPKCS8(
  [in]            CRYPT_PKCS8_IMPORT_PARAMS sPrivateKeyAndParams,
  [in]            DWORD                     dwFlags,
  [out, optional] HCRYPTPROV                *phCryptProv,
  [in, optional]  void                      *pvAuxInfo
);

パラメーター

[in] sPrivateKeyAndParams

秘密キー BLOB とそれに対応するパラメーターを含むCRYPT_PKCS8_IMPORT_PARAMS構造体。

[in] dwFlags

DWORD 値。 このパラメーターには、次のいずれかの値、それらの組み合わせ、または null 値を指定できます。

説明
CRYPT_EXPORTABLE
インポートされるキーは、最終的に再エクスポートされます。 このフラグを使用しない場合、キー ハンドルを使用して CryptExportKey を呼び出すと失敗します。
CRYPT_USER_PROTECTED
このフラグが設定されている場合、CSP は、このキーを使用して特定のアクションが試行されたときに、ダイアログ ボックスまたはその他の方法を使用してユーザーに通知します。 正確な動作は、使用される CSP または CSP の種類によって指定されます。 プロバイダー コンテキストが CRYPT_SILENT 設定された状態で取得された場合、このフラグを使用するとエラーが発生し、最後のエラーは NTE_SILENT_CONTEXT に設定されます。

[out, optional] phCryptProv

CryptImportPKCS8 関数を呼び出してキーがインポートされるプロバイダーのハンドルを受け取る HCRYPTPROV へのポインター。

ハンドルの使用が完了したら、 CryptReleaseContext を呼び出してハンドルを解放します。

このパラメーターには NULL を指定できます。この場合、プロバイダーのハンドルは返されません。

[in, optional] pvAuxInfo

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

戻り値

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

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

次のエラー コードは、この関数に固有のものです。

リターン コード 説明
ERROR_UNSUPPORTED_TYPE
秘密キーのアルゴリズム オブジェクト識別子 (OID) はサポートされていません。
 

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

解説

CryptImportPKCS8sPrivateKeyAndParams パラメーターに含まれるCRYPT_PKCS8_IMPORT_PARAMS構造体を使用してキーをインポートするプロバイダーのハンドルを取得することで、PCRYPT_RESOLVE_HCRYPTPROV_FUNC関数を呼び出します。 PCRYPT_RESOLVE_HCRYPTPROV_FUNCNULL の場合は、既定のプロバイダーが使用されます。

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

要件

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

関連項目

CRYPT_PKCS8_IMPORT_PARAMS

CryptExportPKCS8Ex

CryptReleaseContext

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC

PCRYPT_RESOLVE_HCRYPTPROV_FUNC