Freigeben über


CertCreateCTLEntryFromCertificateContextProperties-Funktion (wincrypt.h)

Die CertCreateCTLEntryFromCertificateContextProperties-Funktion erstellt einen Zertifikatvertrauenslisteneintrag (Certificate Trust List , CTL), dessen Attribute die Eigenschaften des Zertifikatkontexts sind. Der SubjectIdentifier im CTL-Eintrag ist der SHA1-Hash des Zertifikats.

Die Zertifikateigenschaften werden als Attribute hinzugefügt. Das Eigenschaftsattribut OID ist das dezimale PROP_ID, dem szOID_CERT_PROP_ID_PREFIX vorangestellt ist. Jeder Eigenschaftswert wird als einzelner Attributwert kopiert.

Zusätzliche Attribute können mithilfe der Parameter cOptAttr und rgOptAttr in den CTL-Eintrag aufgenommen werden.

Syntax

BOOL CertCreateCTLEntryFromCertificateContextProperties(
  [in]      PCCERT_CONTEXT   pCertContext,
  [in]      DWORD            cOptAttr,
  [in]      PCRYPT_ATTRIBUTE rgOptAttr,
  [in]      DWORD            dwFlags,
  [in]      void             *pvReserved,
  [out]     PCTL_ENTRY       pCtlEntry,
  [in, out] DWORD            *pcbCtlEntry
);

Parameter

[in] pCertContext

Ein Zeiger auf die CERT_CONTEXT , die zum Erstellen der CTL verwendet wird.

[in] cOptAttr

Ein DWORD , das die Anzahl der zusätzlichen Attribute angibt, die hinzugefügt werden sollen.

[in] rgOptAttr

Ein Zeiger auf ein beliebiges Array von CRYPT_ATTRIBUTE Attributen, die der CTL hinzugefügt werden sollen.

[in] dwFlags

Ein DWORD. Kann auf CTL_ENTRY_FROM_PROP_CHAIN_FLAG festgelegt werden, um die Einbindung der Hasheigenschaften der Kette als Attribute zu erzwingen.

[in] pvReserved

Ein Zeiger auf eine VOID. Für die zukünftige Verwendung reserviert.

[out] pCtlEntry

Adresse eines Zeigers auf eine CTL_ENTRY-Struktur . Rufen Sie diese Funktion zweimal auf, um einen CTL-Eintrag abzurufen. Legen Sie diesen Parameter beim ersten Aufruf auf NULL fest. Wenn die Funktion zurückgibt, verwenden Sie die Anzahl der Bytes, die aus dem parameter pcbCtlEntry abgerufen wurden, um Arbeitsspeicher zuzuweisen. Rufen Sie die Funktion erneut auf, und legen Sie diesen Parameter auf die Adresse des zugeordneten Speichers fest.

[in, out] pcbCtlEntry

Zeiger auf ein DWORD , das die Anzahl der Bytes enthält, die für die CTL_ENTRY-Struktur zugeordnet werden müssen. Rufen Sie diese Funktion zweimal auf, um die Anzahl der Bytes abzurufen. Legen Sie für den ersten Aufruf diesen Parameter auf die Adresse eines DWORD-Werts fest, der null enthält, und legen Sie den Parameter pCtlEntry auf NULL fest. Wenn der erste Aufruf erfolgreich ist, enthält der DWORD-Wert die Anzahl von Bytes, die Sie für die CTL_ENTRY-Struktur zuordnen müssen. Ordnen Sie den erforderlichen Arbeitsspeicher zu, und rufen Sie die Funktion erneut auf, und geben Sie die Adresse des Arbeitsspeichers im pCtlEntry-Parameter an.

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.

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