CSSM_CONTEXT_ATTRIBUTE Extensions

The key recovery, context creation operations return key recovery context handles that are represented as cryptographic context handles. The CSSM_CONTEXT data structure has been extended to include the new types of attributes, as shown in the example:

typedef struct cssm_context_attribute {
    uint32 AttributeType;/* one of the defined CSSM_ATTRIBUTE_TYPEs */
    uint32 AttributeLength;/* length of attribute */
    union {
        uint8 *Description; uint32 *Length;
        void *Pointer;
        CSSM_CRYPTO_DATA_PTR SeedPassPhrase;
        CSSM_KEY_PTR Key;
        CSSM_DATA_PTR Data;
        CSSM_KR_PROFILE_PTR KRProfile;/*new attribute to hold KR profile*/
    } Attribute; /* data that describes attribute */
} CSSM_CONTEXT_ATTRIBUTE, *CSSM_CONTEXT_ATTRIBUTE_PTR;

Several new attribute types were defined to support the key recovery context attributes. The CSSM_ATTRIBUTE_TYPE enum is extended as follows:

CSSM_ATTRIBUTE_KRPROFILE_LOCAL = CSSM_ATTRIBUTE_LAST + 1,
CSSM_ATTRIBUTE_KRPROFILE_REMOTE= CSSM_ATTRIBUTE_LAST + 2