CertCreateContext-Funktion (wincrypt.h)
Die CertCreateContext-Funktion erstellt den angegebenen Kontext aus den codierten Bytes. Der erstellte Kontext enthält keine erweiterten Eigenschaften.
Syntax
const void * CertCreateContext(
[in] DWORD dwContextType,
[in] DWORD dwEncodingType,
[in] const BYTE *pbEncoded,
[in] DWORD cbEncoded,
[in] DWORD dwFlags,
[in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);
Parameter
[in] dwContextType
Gibt die Kontexte an, die erstellt werden können. Um beispielsweise einen Zertifikatkontext zu erstellen, legen Sie dwContextType auf CERT_STORE_CERTIFICATE_CONTEXT fest.
Derzeit definierte Kontexttypflags werden in der folgenden Tabelle angezeigt.
Wert | Bedeutung |
---|---|
|
Zertifikatkontext. |
|
CRL-Kontext. |
|
CTL-Kontext. |
[in] dwEncodingType
Gibt den verwendeten Codierungstyp an. Derzeit werden nur X509_ASN_ENCODING und PKCS_7_ASN_ENCODING verwendet. Es können jedoch in Zukunft weitere Codierungstypen hinzugefügt werden. Verwenden Sie für einen der aktuellen Codierungstypen Folgendes:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.
[in] pbEncoded
Ein Zeiger auf einen Puffer, der den vorhandenen codierten Kontextinhalt enthält, der kopiert werden soll.
[in] cbEncoded
Die Größe des pbEncoded-Puffers in Bytes.
[in] dwFlags
Die folgenden Flagwerte sind definiert und können mithilfe eines bitweisen OR-Vorgangs kombiniert werden.
Wert | Bedeutung |
---|---|
|
Der erstellte Kontext verweist direkt auf den Inhalt, auf den von pbEncoded anstelle einer zugeordneten Kopie verwiesen wird. |
|
Die Funktion erstellt einen Kontext mit sortierten Einträgen. Derzeit gilt dieses Flag nur für einen CTL-Kontext.
Bei CTLs ist das cCTLEntry-Element der zurückgegebenen CTL_INFO-Struktur immer 0. CertFindSubjectInSortedCTL und CertEnumSubjectInSortedCTL müssen aufgerufen werden, um die CTL-Einträge zu suchen oder aufzulisten. |
|
Wenn ein CTL-Kontext erstellt wird, wird standardmäßig ein HCRYTPMSG-Handle für die SignedData-Nachricht erstellt. Dieses Flag kann festgelegt werden, um die Leistung zu verbessern, indem dieses Handle nicht erstellt wird. Dieses Flag kann nur verwendet werden, wenn dwContextType CERT_STORE_CTL_CONTEXT ist. |
|
Wenn ein CTL-Kontext erstellt wird, werden seine Einträge standardmäßig decodiert. Wenn dieses Flag festgelegt ist, werden die Einträge nicht decodiert, und die Leistung wird verbessert. Dieses Flag kann nur verwendet werden, wenn dwContextType CERT_STORE_CTL_CONTEXT ist. |
[in, optional] pCreatePara
Ein Zeiger auf eine CERT_CREATE_CONTEXT_PARA-Struktur .
Wenn pCreatePara und sein pfnFree-Member beide ungleich NULL sind, wird der pfnFree-Member verwendet, um den vom pvFree-Member angegebenen Arbeitsspeicher freizugeben. Wenn das pvFree-ElementNULL ist, wird der pfnFree-Member verwendet, um den pbEncoded-Zeiger frei zu geben.
Wenn pCreatePara oder sein pfnFree-MemberNULL ist, wird kein Versuch unternommen, pbEncoded frei zu machen.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Zeiger auf den neu erstellten Kontext. Das pvFree-Element von pCreatePara muss aufgerufen werden, um den erstellten Kontext frei zu machen.
Wenn bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Wenn GetLastErrorERROR_CANCELLED zurückgibt, bedeutet dies, dass die PFN_CERT_CREATE_CONTEXT_SORT_FUNC Rückruffunktion FALSE zurückgegeben hat, um die Sortierung zu beenden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |