CryptImportPublicKeyInfo 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptImportPublicKeyInfo 関数は、公開キー情報をプロバイダーに変換してインポートし、公開キーのハンドルを返します。 CryptImportPublicKeyInfoEx は、この関数の改訂版を提供します。

構文

BOOL CryptImportPublicKeyInfo(
  [in]  HCRYPTPROV            hCryptProv,
  [in]  DWORD                 dwCertEncodingType,
  [in]  PCERT_PUBLIC_KEY_INFO pInfo,
  [out] HCRYPTKEY             *phKey
);

パラメーター

[in] hCryptProv

公開キーをインポートするときに使用する 暗号化サービス プロバイダー (CSP) のハンドル。 このハンドルは、 CryptAcquireContext を使用して既に作成されている必要があります。

[in] dwCertEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

プロバイダーにインポートする公開キーを含む CERT_PUBLIC_KEY_INFO 構造体のアドレス。

[out] phKey

インポートされた公開キーのハンドルを受け取る HCRYPTKEY 変数のアドレス。 公開キーの使用が完了したら、 CryptDestroyKey 関数を呼び出してハンドルを解放します。

戻り値

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

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

メモ 呼び出された関数 CryptGetUserKeyCryptExportKey からのエラーがこの関数に反映される可能性があります。 この関数には、次のエラー コードがあります。
 
リターン コード 説明
ERROR_FILE_NOT_FOUND
インストールまたは登録できるインポート関数が、指定された dwCertEncodingType パラメーターと pInfo-Algorithm.pszObjId> パラメーターに対して見つかりませんでした。
 

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

注釈

この関数は通常、証明書から公開キーを取得するために使用されます。 これは、次の擬似コードに示すように、入力された証明書構造から CERT_PUBLIC_KEY_INFO 構造体を渡すことによって行われます。

PCCERT_CONTEXT pCertContext

// Get the certificate context structure from a certificate.
pCertContext = CertCreateCertificateContext(...)
if(pCertContext)
{
    HCRYPTKEY hCertPubKey

    // Get the public key information for the certificate.
    CryptImportPublicKeyInfo(
        hCryptProv, 
        X509_ASN_ENCODING, 
        &pCertContext->pCertInfo->SubjectPublicKeyInfo, 
        &hCertPubKey)

    CertFreeCertificateContext(pCertContext)
}

要件

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

こちらもご覧ください

CryptExportPublicKeyInfo

データ管理関数