2.2.2 Common Structures

This section defines the structures used by the Windows Client Certificate Enrollment Protocol. These structures are used when a certificate request is submitted to the server and as part of the server's response. Use of these structures is specified in section 3.2.1.4.

All communications of binary large objects (BLOBs) between the client and server use the CERTTRANSBLOB data structure (which also takes the acronym BLOB). The CERTTRANSBLOB data structure contains a length and a pointer to a byte array. The type of content, stored in the byte array buffer, depends on the particular call context. 

A BLOB contains any one of the following:

  • CATRANSPROP: A structure used to return information for CA properties, as specified in section 2.2.2.3.

  • CAINFO: A structure that contains basic information on the CA, as specified in section 2.2.2.4.

  • An ASN.1 (as specified in [X690])-encoded CMS (as specified in [RFC3852]), PKCS #10 (as specified in [RFC2986]), or CMC (as specified in [RFC2797]) request certificate submitted to the CA, as specified in section 2.2.2.6.

  • An ASN.1 (as specified in [X690])-encoded CMS with a full certificate chain (as specified in [RFC3852]) or a CMC full PKI response (as specified in [RFC2797]) returned by the CA, as specified in section 2.2.2.8.

  • An ASN.1 (as specified in [X690])-encoded X.509 certificate returned by the CA, as specified in section 2.2.2.2.2.

  • A Unicode (as specified in [UNICODE4.0]) disposition text message returned by the CA, as specified in section 2.2.2.2.1.

Data type definitions of HRESULT, BOOL, LONG, wchar_t, and DWORD, used in the following sections, are as specified in [MS-RPCE], [MS-DTYP], and [MS-ERREF].