Fonction CryptImportPublicKeyInfo (wincrypt.h)
Syntaxe
BOOL CryptImportPublicKeyInfo(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pInfo,
[out] HCRYPTKEY *phKey
);
Paramètres
[in] hCryptProv
Handle du fournisseur de services de chiffrement (CSP) à utiliser lors de l’importation de la clé publique. Ce handle doit avoir déjà été créé à l’aide de CryptAcquireContext.
[in] dwCertEncodingType
Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération OR au niveau du bit, comme illustré dans l’exemple suivant :
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Les types d’encodage actuellement définis sont les suivants :
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pInfo
L’adresse d’une structure de CERT_PUBLIC_KEY_INFO qui contient la clé publique à importer dans le fournisseur.
[out] phKey
Adresse d’une variable HCRYPTKEY qui reçoit le handle de la clé publique importée. Une fois la clé publique terminée, relâchez le handle en appelant la fonction CryptDestroyKey .
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).
Si la fonction échoue, la valeur de retour est zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Code de retour | Description |
---|---|
|
Une fonction d’importation qui peut être installée ou inscrite est introuvable pour les paramètres dwCertEncodingType et pInfo-Algorithm.pszObjId> spécifiés. |
Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage asN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.
Remarques
Cette fonction est normalement utilisée pour récupérer la clé publique à partir d’un certificat. Pour ce faire, passez la structure CERT_PUBLIC_KEY_INFO à partir d’une structure de certificat renseignée, comme indiqué dans le pseudocode suivant.
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)
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |