CertCreateCTLContext 函数 (wincrypt.h)

CertCreateCTLContext 函数从编码的 CTL 创建证书信任列表 (CTL) 上下文。 创建的上下文不会保存到 证书存储中。 函数在创建的上下文中复制编码的 CTL。

语法

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

参数

[in] dwMsgAndCertEncodingType

指定使用的编码类型。 必须通过将证书和 消息编码类型 与按位 OR 操作组合来指定,如以下示例所示:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING当前定义的编码类型为:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCtlEncoded

指向包含要从中创建上下文的编码 CTL 的缓冲区的指针。

[in] cbCtlEncoded

pbCtlEncoded 缓冲区的大小(以字节为单位)。

返回值

如果函数成功,则返回值是指向只读 CTL_CONTEXT的指针。

如果函数失败并且无法解码和创建 CTL_CONTEXT,则返回值为 NULL。 有关扩展的错误信息,请调用 GetLastError。 下表显示了可能的错误代码。

返回代码 说明
E_INVALIDARG
证书编码类型无效。 仅支持PKCS_7_ASN_ENCODING和X509_ASN_ENCODING。
 

如果函数失败, GetLastError 可能会返回 抽象语法表示法 One (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值

注解

必须通过调用 CertFreeCTLContext 来释放CTL_CONTEXT。 可以调用 CertDuplicateCTLContext 来复制。 可以调用 CertSetCTLContextPropertyCertGetCTLContextProperty 来存储和读取 CTL 的属性。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CTL_CONTEXT

CertCreateCRLContext

CertCreateCertificateContext

CertDuplicateCTLContext

CertFreeCTLContext

CertGetCTLContextProperty

CertSetCTLContextProperty

证书信任列表函数