CryptImportPublicKeyInfoEx-Funktion (wincrypt.h)
Syntax
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
);
Parameter
[in] hCryptProv
Das Handle des CSP zum Empfangen des importierten öffentlichen Schlüssels. 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.
[in] aiKeyAlg
Eine ALG_ID-Struktur , die einen CSP-spezifischen Algorithmus enthält, um den CALG_RSA_KEYX Standardalgorithmus außer Kraft zu setzen.
[in] dwFlags
Für die zukünftige Verwendung reserviert und muss null sein.
[in] pvAuxInfo
Für die zukünftige Verwendung reserviert und muss NULL sein.
[out] phKey
Die Adresse einer HCRYPTKEY-Variablen , die das Handle des importierten öffentlichen Schlüssels empfängt. Wenn Sie die Verwendung des öffentlichen Schlüssels abgeschlossen haben, lassen Sie das Handle los, indem Sie die CryptDestroyKey-Funktion aufrufen.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion ungleich null (TRUE) zurück.
Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Wert | BESCHREIBUNG |
---|---|
|
Eine Importfunktion, die installiert oder registriert werden kann, konnte für die angegebenen Parameter dwCertEncodingType und pInfo 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-Rückgabewerte für Codierung/Decodierung.
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
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 |