CERT_INFO 结构 (wincrypt.h)

CERT_INFO结构包含证书的信息。

语法

typedef struct _CERT_INFO {
  DWORD                      dwVersion;
  CRYPT_INTEGER_BLOB         SerialNumber;
  CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;
  CERT_NAME_BLOB             Issuer;
  FILETIME                   NotBefore;
  FILETIME                   NotAfter;
  CERT_NAME_BLOB             Subject;
  CERT_PUBLIC_KEY_INFO       SubjectPublicKeyInfo;
  CRYPT_BIT_BLOB             IssuerUniqueId;
  CRYPT_BIT_BLOB             SubjectUniqueId;
  DWORD                      cExtension;
  PCERT_EXTENSION            rgExtension;
} CERT_INFO, *PCERT_INFO;

成员

dwVersion

证书的版本号。 此成员可以是以下版本号之一。

含义
CERT_V1
版本 1
CERT_V2
版本 2
CERT_V3
版本 3

SerialNumber

包含证书序列号的 BLOB 。 最小有效字节是 SerialNumberpbData 成员的零字节。 pbData 最后一个字节的索引比 SerialNumbercbData 成员的值少一个。 最重要的字节是 pbData 的最后一个字节。 删除前导0x00或0xFF个字节。 有关详细信息,请参阅 CertCompareIntegerBlob

SignatureAlgorithm

包含签名算法类型和编码的其他加密参数 的CRYPT_ALGORITHM_IDENTIFIER 结构。

Issuer

证书颁发者的名称(以编码形式表示)。

NotBefore

证书无效的日期和时间。 对于 1950 年至 2049 年(含)的日期,日期和时间编码为协调世界时 (格林威治平均时间) 格式,格式为 YYMMDDHHMMSS。 此成员使用两位数的年份,精确到秒。 对于 1950 年之前或 2049 年之后的日期,使用编码的通用时间。 编码的通用时间采用 YYYYYMMDDHHMMSSMMM 的形式,使用四位数年份,精确到毫秒。 尽管通用时间支持毫秒分辨率, 但 NotBefore 时间仅精确到秒。

NotAfter

证书无效的日期和时间。 对于 1950 年至 2049 年(含)的日期,日期和时间编码为协调世界时格式,格式为 YYMMDDHHMMSS。 此成员使用两位数的年份,精确到秒。 对于 1950 年之前或 2049 年之后的日期,使用编码的通用时间。 编码的通用时间采用 YYYYYMMDDHHMMSSMMM 的形式,使用四位数年份,精确到毫秒。 尽管通用时间支持毫秒分辨率, 但 NotAfter 时间仅精确到秒。

Subject

证书使用者的编码名称。

SubjectPublicKeyInfo

包含编码公钥及其算法的 CERT_PUBLIC_KEY_INFO 结构。 CERT_PUBLIC_KEY_INFO 结构的 PublicKey 成员将编码的公钥作为CRYPT_BIT_BLOB包含,Algorithm 成员包含编码算法作为CRYPT_ALGORITHM_IDENTIFIER

IssuerUniqueId

包含颁发者的唯一标识符的 BLOB。

SubjectUniqueId

包含主题的唯一标识符的 BLOB。

cExtension

rgExtension 数组中的元素数。

rgExtension

指向 CERT_EXTENSION 结构的指针数组,其中每个结构都包含有关证书的扩展信息。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 wincrypt.h

另请参阅

CERT_EXTENSION

CERT_PUBLIC_KEY_INFO

CMSG_ENVELOPED_ENCODE_INFO

CMSG_SIGNER_ENCODE_INFO

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_BIT_BLOB

CRYPT_INTEGER_BLOB

CRYPT_VERIFY_MESSAGE_PARA

CertCompareCertificate

CertGetSubjectCertificateFromStore

CryptMsgControl

CryptMsgGetParam

CryptSignAndEncodeCertificate