CryptImportPublicKeyInfoEx 関数 (wincrypt.h)
構文
BOOL CryptImportPublicKeyInfoEx(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pInfo,
[in] ALG_ID aiKeyAlg,
[in] DWORD dwFlags,
[in] void *pvAuxInfo,
[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 構造体のアドレス。
[in] aiKeyAlg
既定のアルゴリズム を オーバーライドする CSP 固有のアルゴリズムを含む ALG_ID構造CALG_RSA_KEYX 。
[in] dwFlags
将来使用するために予約されており、0 である必要があります。
[in] pvAuxInfo
将来使用するために予約されており、 NULL である必要があります。
[out] phKey
インポートされた公開キーのハンドルを受け取る HCRYPTKEY 変数のアドレス。 公開キーの使用が完了したら、 CryptDestroyKey 関数を呼び出してハンドルを解放します。
戻り値
関数が成功した場合、関数は 0 以外 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。
値 | 説明 |
---|---|
|
インストールまたは登録できるインポート関数が、指定された dwCertEncodingType パラメーターと pInfo パラメーターに対して見つかりませんでした。 |
関数が失敗した場合、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 |