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 |