Certificate and Message Encoding Types

Many of the functions specify the certificate and/or message encoding types. This encoding type is a DWORD, possibly containing both the certificate and message encoding types. The certificate encoding type is stored in the low-order word. The message encoding type is stored in the high order word. Some functions or structure fields require only one of the encoding types, but it is always acceptable to specify both encoding types. See the beginning of Signed Message Example Code for an example that specifies both encoding types.

The following naming convention is used to indicate which encoding type(s) are required:

Name comments
dwMsgAndCertEncodingType Both encoding types are required.
dwMsgEncodingType Only the message encoding type is required.
dwCertEncodingType Only the certificate encoding type is required.
dwEncodingType Either a message or certificate encoding type is required. If the low-order word containing the certificate encoding type is nonzero, then it is used. Otherwise, the high-order word containing the message encoding type is used. If both are specified, the certificate encoding type in the low-order word is used.

Currently defined encoding types are shown in the following table:

Encoding type Value
CRYPT_ASN_ENCODING 0x00000001
X509_ASN_ENCODING 0x00000001
PKCS_7_ASN_ENCODING 0x00010000