CertCreateCTLEntryFromCertificateContextProperties 函数 (wincrypt.h)

CertCreateCTLEntryFromCertificateContextProperties 函数 (CTL) 条目创建证书信任列表,其属性是证书上下文的属性。 CTL 条目中的 SubjectIdentifier 是证书的 SHA1 哈希。

证书属性将添加为属性。 属性属性 OID 是前面有szOID_CERT_PROP_ID_PREFIX的十进制PROP_ID。 每个属性值都复制为单个属性值。

可以使用 cOptAttrrgOptAttr 参数将其他属性包含在 CTL 条目中。

语法

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
);

参数

[in] pCertContext

指向用于创建 CTL 的CERT_CONTEXT 的指针。

[in] cOptAttr

指定要添加的其他属性数的 DWORD

[in] rgOptAttr

指向要添加到 CTL 的任何CRYPT_ATTRIBUTE 属性数组的指针。

[in] dwFlags

DWORD。 可以设置为 CTL_ENTRY_FROM_PROP_CHAIN_FLAG,以强制将链生成哈希属性作为属性包含在内。

[in] pvReserved

指向 VOID 的指针。 保留供将来使用。

[out] pCtlEntry

指向 CTL_ENTRY 结构的指针的地址。 调用此函数两次以检索 CTL 条目。 在第一次调用时将此参数设置为 NULL 。 当函数返回时,使用从 tlEntry 参数检索到的字节数来分配内存。 再次调用 函数,将此参数设置为已分配内存的地址。

[in, out] pcbCtlEntry

指向包含必须为 CTL_ENTRY 结构分配的字节数的 DWORD 指针。 调用此函数两次以检索字节数。 对于第一次调用,请将此参数设置为包含零的 DWORD 值的地址,并将 pCtlEntry 参数设置为 NULL。 如果第一次调用成功, 则 DWORD 值将包含必须为 CTL_ENTRY 结构分配的字节数。 分配所需的内存并再次调用函数,并在 pCtlEntry 参数中提供内存的地址。

返回值

如果函数成功,则函数) 返回非零 (TRUE

如果函数失败,它将返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

要求

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