2.5.1.2 CryptoAPI Digital Signature CertificateInfo Structure

The CertificateInfo structure has the format that is shown in the following diagram.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

CertificateInfoSize

SignerLength

IssuerLength

ExpireTime

...

SignTime

...

AlgIDHash

SignatureSize

EncodedCertificateSize

Version

SerialNumberSize

IssuerBlobSize

Reserved

SignerName (variable)

...

IssuerName (variable)

...

Signature (variable)

...

EncodedCertificate (variable)

...

SerialNumber (variable)

...

IssuerBlob (variable)

...

CertificateInfoSize (4 bytes): An unsigned integer specifying the number of bytes used by the remainder of this structure, not including CertificateInfoSize.

SignerLength (4 bytes): An unsigned integer specifying the number of characters needed to store the SignerName field, not including the terminating null character.

IssuerLength (4 bytes): An unsigned integer specifying the number of characters needed to store the IssuerName field, not including the terminating null character.

ExpireTime (8 bytes): A TimeEncoding structure (section 2.5.1.1) specifying the expiration time of this signature.

SignTime (8 bytes): A TimeEncoding structure specifying the time this signature was created.

AlgIDHash (4 bytes): A signed integer specifying the algorithm identifier. It MUST be 0x00008003 (MD5).

SignatureSize (4 bytes): An unsigned integer specifying the number of bytes used by the Signature field.

EncodedCertificateSize (4 bytes): An unsigned integer specifying the number of bytes used by the EncodedCertificate field.

Version (4 bytes): A value that MUST be 0x00000000.

SerialNumberSize (4 bytes): An unsigned integer specifying the number of bytes used by the SerialNumber field.

IssuerBlobSize (4 bytes): An unsigned integer specifying the number of bytes used by the IssuerBlob field.

Reserved (4 bytes): A value that MUST be 0x00000000.

SignerName (variable): A null-terminated Unicode string specifying the name of the signer.

IssuerName (variable): A null-terminated Unicode string specifying the name of the issuer.

Signature (variable): A binary representation of the signature, generated as specified in [RFC3280], except stored in little-endian form.

EncodedCertificate (variable): An encoded representation of the certificate. MUST contain the ASN.1 [ITUX680-1994] DER encoding of an X.509 certificate. For more details, see [RFC3280].

SerialNumber (variable): An array of bytes specifying the serial number of the certificate as specified in [RFC3280], with the least significant byte first. Any leading 0x00 bytes MUST be truncated.

IssuerBlob (variable): An ASN.1 structure as specified in IETF [RFC3280] section 4.1.2.4.