2.2.1.10.1 CERTTRANSDBRESULTCOLUMN Marshaling Format

The CERTTRANSDBRESULTCOLUMN structure (section 2.2.1.10) is encoded within a CERTTRANSBLOB structure (section 2.2.1.4) such that the pb member of the CERTTRANSBLOB points to the beginning of an array of one or more CERTTRANSDBRESULTROW structures (section 2.2.3), each of which contains one or more CERTTRANSDBRESULTCOLUMN structures.

The packet containing an array of some number, "N", of CERTTRANSDBRESULTCOLUMN structures is specified in the following packet diagrams. The actual value of "N" is the value of the corresponding ccol member of CERTTRANSDBRESULTROW.


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

CERTTRANSDBRESULTCOLUMN Structures (variable)

...

...

Result_Column_Data (variable)

...

...

CERTTRANSDBRESULTCOLUMN Structures (variable): An array of CERTTRANSDBRESULTCOLUMN structures.

Each of the structures is marshaled in the following manner. The fields in the following diagram correspond to the similarly-named members of the CERTTRANSDBRESULTCOLUMN structure.


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

Result_Column_Type

Result_Column_Index

Result_Column_obValue

Result_Column_cbValue

Result_Column_Type (4 bytes): The value indicating the type for the column. The value MUST be little-endian encoded.

Result_Column_Index (4 bytes): The value indicating the ID for the column. The value MUST be little-endian encoded.

Result_Column_obValue (4 bytes): The offset from the start of the corresponding CERTTRANSDBRESULTROW structure to the column data. The offset MUST be little-endian encoded. The offset MUST be divisible by 4.

Result_Column_cbValue (4 bytes): The length of the data in the column referenced by obValue (offset). The length value MUST be little-endian encoded.

Result_Column_Data (variable): Contains the data for all columns. Data for individual columns MUST NOT overlap with any other column data. Arbitrary padding can be inserted between data values. Based on the value of the Type field, the data value for the column MUST be encoded as follows.

Type field value

Column type

Data encoding

0x01

Integer

MUST use little-endian encoding format.

0x02

Date

MUST use little-endian encoding format.

0x03

Binary

0x04

String

MUST use little-endian encoding format for each character of the null-terminated UNICODE string.