CryptImportPublicKeyInfo-Funktion (wincrypt.h)
Syntax
BOOL CryptImportPublicKeyInfo(
[in] HCRYPTPROV hCryptProv,
[in] DWORD dwCertEncodingType,
[in] PCERT_PUBLIC_KEY_INFO pInfo,
[out] HCRYPTKEY *phKey
);
Parameter
[in] hCryptProv
Das Handle des Kryptografiedienstanbieters (CSP), der beim Importieren des öffentlichen Schlüssels verwendet werden soll. Dieses Handle muss bereits mit CryptAcquireContext erstellt worden sein.
[in] dwCertEncodingType
Gibt den verwendeten Codierungstyp an. Es ist immer akzeptabel, sowohl den Zertifikat- als auch den Nachrichtencodierungstyp anzugeben, indem sie mit einem bitweisen OR-Vorgang kombiniert werden, wie im folgenden Beispiel gezeigt:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Derzeit definierte Codierungstypen sind:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pInfo
Die Adresse einer CERT_PUBLIC_KEY_INFO Struktur, die den öffentlichen Schlüssel enthält, der in den Anbieter importiert werden soll.
[out] phKey
Die Adresse einer HCRYPTKEY-Variablen , die das Handle des importierten öffentlichen Schlüssels empfängt. Wenn Sie den öffentlichen Schlüssel verwendet haben, lassen Sie das Handle los, indem Sie die Funktion CryptDestroyKey aufrufen.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).
Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Rückgabecode | Beschreibung |
---|---|
|
Eine Importfunktion, die installiert oder registriert werden kann, konnte für die angegebenen Parameter dwCertEncodingType und pInfo-Algorithm.pszObjId> nicht gefunden werden. |
Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1 Encoding/Decoding Return Values.
Hinweise
Diese Funktion wird normalerweise verwendet, um den öffentlichen Schlüssel aus einem Zertifikat abzurufen. Dies geschieht, indem die CERT_PUBLIC_KEY_INFO-Struktur aus einer ausgefüllten Zertifikatstruktur übergeben wird, wie im folgenden Pseudocode gezeigt.
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)
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |