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
CERT_STORE_CERTIFICATE_CONTEXT
Zertifikatkontext.
CERT_STORE_CRL_CONTEXT
CRL-Kontext.
CERT_STORE_CTL_CONTEXT
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
CERT_CREATE_CONTEXT_NOCOPY_FLAG
Der erstellte Kontext verweist direkt auf den Inhalt, auf den von pbEncoded anstelle einer zugeordneten Kopie verwiesen wird.
CERT_CREATE_CONTEXT_SORTED_FLAG
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.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
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.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
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

Weitere Informationen

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Wartungsfunktionen für Zertifikat- und Zertifikatspeicher