Partager via


Fonction CryptImportPublicKeyInfo (wincrypt.h)

Important Cette API est déconseillée. Les logiciels nouveaux et existants doivent commencer à utiliser les API de nouvelle génération de chiffrement. Microsoft peut supprimer cette API dans les versions ultérieures.
 
La fonction CryptImportPublicKeyInfo convertit et importe les informations de clé publique dans le fournisseur et retourne un handle de la clé publique. CryptImportPublicKeyInfoEx fournit une version révisée de cette fonction.

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.

Note Les erreurs des fonctions appelées CryptGetUserKey et CryptExportKey peuvent être propagées à cette fonction. Cette fonction a le code d’erreur suivant.
 
Code de retour Description
ERROR_FILE_NOT_FOUND
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

Voir aussi

CryptExportPublicKeyInfo

fonctions Gestion des données