Funzione CryptImportPublicKeyInfo (wincrypt.h)
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.
Codice restituito | Descrizione |
---|---|
|
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 |