CRYPT_SMIME_CAPABILITY

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;
 

Members

pszObjId
Specifies the object identifier for a capability. Capabilities include signature algorithms, symmetric algorithms, and key enciphering algorithms. It also includes a non-algorithm capability which is the preference for signed data.
Parameters
Contains any parameters associated with the specified capability in pszObjId.

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.

See Also

CRYPT_SMIME_CAPABILITIES