2.2.2.1.4 Certificate Data

 The Certificate Data structure MUST be formatted as follows.


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

Offset to Certificate Thumbprint

Length of Certificate Thumbprint

Offset of Container Name

Offset of Provider Name

Offset of Display Name

Data Fields (variable)

...

Offset to Certificate Thumbprint (4 bytes): Offset of the Certificate Thumbprint field from the start of this structure. It MUST be a 32-bit unsigned integer in little-endian format.

Length of Certificate Thumbprint (4 bytes): The length of the Certificate Thumbprint field. It MUST be a 32-bit unsigned integer in little-endian format.

Offset of Container Name (4 bytes): Offset of the Container Name field (in bytes) from the start of this structure. It MUST be a 32-bit unsigned integer in little-endian format. If this field is set to zero, then the Container Name field MUST be absent.

Offset of Provider Name (4 bytes): Offset of the Provider Name field (in bytes) from the start of this structure. It MUST be a 32-bit unsigned integer in little-endian format. If this field is set to zero, the Provider Name field MUST be absent. If a Provider Name field is present, a Container Name field MUST also be present.

Offset of Display Name (4 bytes): Offset of the Display Name field, (in bytes) from the start of this structure. It MUST be a 32-bit unsigned integer in little-endian format. If this field is set to zero, then the Display Name field MUST be absent.

Data Fields (variable): This field MUST contain the following items, in any order, and at the locations indicated by the respective Offset fields previously listed. These items MUST be completely contained inside this field and MUST NOT overlap each other. There MUST NOT be any unused areas within this field that span more than 8 contiguous bytes.


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

Certificate Thumbprint (variable)

...

Container Name (variable)

...

Provider Name (variable)

...

Display Name (variable)

...

Certificate Thumbprint (variable): The SHA-1 hash of the DER-encoded form of the certificate. For more information on SHA-1, see [FIPS180-4]. For more information on DER encoding, see [X690].

Container Name (variable): A null-terminated Unicode string in UTF-16 encoding that provides a hint as to the public key container in which the key is stored. This field MUST always be present if the Provider Name is present. When the Container Name field is present, the Offset of Container Name field MUST be nonzero; otherwise, this field is ignored by the server and does not affect protocol behavior.

Provider Name (variable): A null-terminated Unicode string in UTF-16 encoding. This field MUST always be present if the Container Name is present. It MUST be omitted if the Offset of Provider Name field is 0; otherwise, this field is ignored by the server and does not affect protocol behavior.

Display Name (variable): A null-terminated Unicode string in UTF-16 encoding that provides a hint as to the friendly name that can be used to identify this certificate for display purposes. This field MUST be omitted if the Offset of Display Name field is 0.