Condividi tramite


Funzione CryptImportPublicKeyInfo (wincrypt.h)

Importante Questa API è deprecata. Il software nuovo ed esistente deve iniziare a usare le API cryptography next generation. Microsoft potrebbe rimuovere questa API nelle versioni future.
 
La funzione CryptImportPublicKeyInfo converte e importa le informazioni sulla chiave pubblica nel provider e restituisce un handle della chiave pubblica. CryptImportPublicKeyInfoEx fornisce una versione modificata di questa funzione.

Sintassi

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

Parametri

[in] hCryptProv

Handle del provider di servizi di crittografia da usare durante l'importazione della chiave pubblica. Questo handle deve essere già stato creato usando CryptAcquireContext.

[in] dwCertEncodingType

Specifica il tipo di codifica utilizzato. È sempre accettabile specificare sia il certificato che i tipi di codifica dei messaggi combinandoli con un'operazione OR bit per bit, come illustrato nell'esempio seguente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

I tipi di codifica attualmente definiti sono:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pInfo

Indirizzo di una struttura CERT_PUBLIC_KEY_INFO che contiene la chiave pubblica da importare nel provider.

[out] phKey

Indirizzo di una variabile HCRYPTKEY che riceve l'handle della chiave pubblica importata. Al termine dell'uso della chiave pubblica, rilasciare l'handle chiamando la funzione CryptDestroyKey .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).

Se la funzione ha esito negativo, il valore restituito è zero (FALSE). Per informazioni sugli errori estesi, chiamare GetLastError.

Nota Gli errori delle funzioni chiamate CryptGetUserKey e CryptExportKey potrebbero essere propagati a questa funzione. Questa funzione ha il codice di errore seguente.
 
Codice restituito Descrizione
ERROR_FILE_NOT_FOUND
Impossibile trovare una funzione di importazione che può essere installata o registrata per i parametri dwCertEncodingType e pInfo-Algorithm.pszObjId> specificati.
 

Se la funzione ha esito negativo, GetLastError può restituire un errore di codifica/decodifica ASN.1 ( Abstract Syntax Notation One ). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.

Commenti

Questa funzione viene in genere usata per recuperare la chiave pubblica da un certificato. Questa operazione viene eseguita passando la struttura CERT_PUBLIC_KEY_INFO da una struttura di certificato compilata, come illustrato nello pseudocodice seguente.

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)
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CryptExportPublicKeyInfo

Funzioni Gestione dati