The CRYPT_SMIME_CAPABILITY structure is used to specify a single capability and any associated parameters that it has. Single capabilities are grouped together into a list of CRYPT_SMIME_CAPABILITIES which can be used to specify a prioritized list of preference of capabilities.
Note The CRYPT_SMIME_CAPABILITY is part of an internet draft proposal. For a complete definition, see "draft-dusse-s/mime-cert-01.txt" dated May 5, 1997.
typedef struct _CRYPT_SMIME_CAPABILITY {
LPSTR pszObjId;
CRYPT_OBJID_BLOB Parameters;
} CRYPT_SMIME_CAPABILITY, *PCRYPT_SMIME_CAPABILITY;
Note, for CryptEncodeObject and CryptEncodeObjectEx (X509_ASN_ENCODING), Parameters.cbData == 0 causes the encoded parameters to be omitted and not encoded as a NULL (05 00) as is done when encoding a CRYPT_ALGORITHM_IDENTIFIER. This is per the S/MIME specification for encoding capabilities which requires it to be omitted.