CertCreateCTLContext function (wincrypt.h)

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(
  [in] DWORD      dwMsgAndCertEncodingType,
  [in] const BYTE *pbCtlEncoded,
  [in] DWORD      cbCtlEncoded
);

Parameters

[in] 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

[in] pbCtlEncoded

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

[in] 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

Requirement Value
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