3.2.1.4.3.2.39 PropID = 0x00000027 (CR_PROP_CACERTVERSION) "CA Signing Certificates Revisions"
The client has requested the revisions on the CA signing certificate. If the server implements the Signing_Cert table, it MUST return a ULONG array that identifies the revisions to its signing certificates as specified as follows. Otherwise, the server MUST return an empty CERTTRANSBLOB structure.
The CA MUST return the array in a CERTTRANSBLOB (section 2.2.2.2) structure. Each ULONG value in the returned array MUST contain version information for a signing certificate in little-endian format. The upper 16 bits MUST contain a zero-based key index, and the lower 16 MUST contain a zero-based certificate index.
Example: The CA has renewed its certificates in the following manner:
Certificate_0 contains the original key.
Certificate_1 is created by renewing Certificate_0 with a new key.
Certificate_2 is created by renewing Certificate_1 with the key used to create Certificate_1.
Certificate_3 is created by renewing Certificate_2 with the key used to create Certificate_1.
Certificate_4 is created by renewing Certificate_3 with the key used to create Certificate_1.
Certificate_5 is created by renewing Certificate_4 with a new key.
Certificate_6 is created by renewing Certificate_5 with the key used to create Certificate_5.
Certificate_7 is created by renewing Certificate_6 with the key used to create Certificate_5.
Certificate_8 is created by renewing Certificate_7 with a new key.
This renewal pattern leads to the following ULONG array.
Index |
ULONG |
Key index |
Certificate index |
---|---|---|---|
0 |
0x00000000 |
0000 |
0000 |
1 |
0x00010001 |
0001 |
0001 |
2 |
0x00010002 |
0001 |
0002 |
3 |
0x00010003 |
0001 |
0003 |
4 |
0x00010004 |
0001 |
0004 |
5 |
0x00050005 |
0005 |
0005 |
6 |
0x00050006 |
0005 |
0006 |
7 |
0x00050007 |
0005 |
0007 |
8 |
0x00080008 |
0008 |
0008 |