CertCreateCTLContext function

The CertCreateCTLContext function creates a certificate trust list (CTL) context from an encoded CTL. The created context is not persisted to a certificate store. The function makes a copy of the encoded CTL within the created context.

Syntax

PCCTL_CONTEXT CertCreateCTLContext(
  DWORD      dwMsgAndCertEncodingType,
  const BYTE *pbCtlEncoded,
  DWORD      cbCtlEncoded
);

Parameters

dwMsgAndCertEncodingType

Specifies the type of encoding used. Both the certificate and message encoding types must be specified by combining them with a bitwise-OR operation as shown in the following example:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Currently defined encoding types are:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

pbCtlEncoded

A pointer to a buffer containing the encoded CTL from which the context is to be created.

cbCtlEncoded

The size, in bytes, of the pbCtlEncoded buffer.

Return Value

If the function succeeds, the return value is a pointer to a read-only CTL_CONTEXT.

If the function fails and is unable to decode and create the CTL_CONTEXT, the return value is NULL. For extended error information, call GetLastError. The following table shows a possible error code.

Return code Description
E_INVALIDARG
Invalid certificate encoding type. Only PKCS_7_ASN_ENCODING and X509_ASN_ENCODING are supported.
 

If the function fails, GetLastError may return an Abstract Syntax Notation One (ASN.1) encoding/decoding error. For information about these errors, see ASN.1 Encoding/Decoding Return Values.

Remarks

The CTL_CONTEXT must be freed by calling CertFreeCTLContext. CertDuplicateCTLContext can be called to make a duplicate. CertSetCTLContextProperty and CertGetCTLContextProperty can be called to store and read properties for the CTL.

Requirements

   
Minimum supported client Windows XP [desktop apps | UWP apps]
Minimum supported server Windows Server 2003 [desktop apps | UWP apps]
Target Platform Windows
Header wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

See Also

CTL_CONTEXT

CertCreateCRLContext

CertCreateCertificateContext

CertDuplicateCTLContext

CertFreeCTLContext

CertGetCTLContextProperty

CertSetCTLContextProperty

Certificate Trust List Functions