Funzione CryptImportPublicKeyInfoEx (wincrypt.h)
Sintassi
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
);
Parametri
[in] hCryptProv
Handle del CSP per ricevere la chiave pubblica importata. Questo handle deve essere già stato creato usando CryptAcquireContext.
[in] dwCertEncodingType
Specifica il tipo di codifica usato. È sempre accettabile specificare sia i tipi di codifica del certificato che dei messaggi combinandoli con un'operazione bit per bit or , 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.
[in] aiKeyAlg
Struttura ALG_ID che contiene un algoritmo specifico di CSP per eseguire l'override dell'algoritmo predefinito CALG_RSA_KEYX .
[in] dwFlags
Riservato per l'uso futuro e deve essere zero.
[in] pvAuxInfo
Riservato per l'uso futuro e deve essere NULL.
[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, la funzione restituisce non zero (TRUE).
Se la funzione ha esito negativo, restituisce zero (FALSE). Per informazioni sull'errore estese, chiamare GetLastError.
Valore | Descrizione |
---|---|
|
Impossibile trovare una funzione di importazione che può essere installata o registrata per i parametri dwCertEncodingType e pInfo specificati. |
Se la funzione ha esito negativo, GetLastError potrebbe restituire un errore di codifica astratta Notation One (ASN.1). 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
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 |