CERT_INFO structure (wincrypt.h)

The CERT_INFO structure contains the information of a certificate.

Syntax

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;

Members

dwVersion

The version number of a certificate. This member can be one of the following version numbers.

Value Meaning
CERT_V1
Version 1
CERT_V2
Version 2
CERT_V3
Version 3

SerialNumber

A BLOB that contains the serial number of a certificate. The least significant byte is the zero byte of the pbData member of SerialNumber. The index for the last byte of pbData, is one less than the value of the cbData member of SerialNumber. The most significant byte is the last byte of pbData. Leading 0x00 or 0xFF bytes are removed. For more information, see CertCompareIntegerBlob.

SignatureAlgorithm

A CRYPT_ALGORITHM_IDENTIFIER structure that contains the signature algorithm type and encoded additional encryption parameters.

Issuer

The name, in encoded form, of the issuer of the certificate.

NotBefore

Date and time before which the certificate is not valid. For dates between 1950 and 2049 inclusive, the date and time is encoded Coordinated Universal Time (Greenwich Mean Time) format in the form YYMMDDHHMMSS. This member uses a two-digit year and is precise to seconds. For dates before 1950 or after 2049, encoded generalized time is used. Encoded generalized time is in the form YYYYMMDDHHMMSSMMM, using a four-digit year, and is precise to milliseconds. Even though generalized time supports millisecond resolution, the NotBefore time is only precise to seconds.

NotAfter

Date and time after which the certificate is not valid. For dates between 1950 and 2049 inclusive, the date and time is encoded Coordinated Universal Time format in the form YYMMDDHHMMSS. This member uses a two-digit year and is precise to seconds. For dates before 1950 or after 2049, encoded generalized time is used. Encoded generalized time is in the form YYYYMMDDHHMMSSMMM, using a four-digit year, and is precise to milliseconds. Even though generalized time supports millisecond resolution, the NotAfter time is only precise to seconds.

Subject

The encoded name of the subject of the certificate.

SubjectPublicKeyInfo

A CERT_PUBLIC_KEY_INFO structure that contains the encoded public key and its algorithm. The PublicKey member of the CERT_PUBLIC_KEY_INFO structure contains the encoded public key as a CRYPT_BIT_BLOB, and the Algorithm member contains the encoded algorithm as a CRYPT_ALGORITHM_IDENTIFIER.

IssuerUniqueId

A BLOB that contains a unique identifier of the issuer.

SubjectUniqueId

A BLOB that contains a unique identifier of the subject.

cExtension

The number of elements in the rgExtension array.

rgExtension

An array of pointers to CERT_EXTENSION structures, each of which contains extension information about the certificate.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header wincrypt.h

See also

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