TrustCore SDK NanoCert API reference  version 7.0
CMSKeyTransRecipientId Struct Reference

Union that identifies a recipient for whom a transient key is wanted. More...

Data Fields

ubyte4 type
 
union {
   CMSIssuerSerialNumber   issuerAndSerialNumber
 
   ASN1_ITEMPTR   subjectKeyIdentifier
 
u
 

Detailed Description

This structure serves as a member in a union in the CMSRecipientId structure. The CMS_GetPrivateKey() callback function passes in a pointer to a CMSRecipientId() structure to identify the recipient for which the key is wanted.

The CMSKeyTransRecipientId structure is defined as:

    typedef struct CMSKeyTransRecipientId
    {
        ubyte4 type;
        union
        {
            CMSIssuerSerialNumber issuerAndSerialNumber; // type = NO_TAG
            ASN1_ITEMPTR          subjectKeyIdentifier;  // type = 0 OCTETSTRING
        } u;
    } CMSKeyTransRecipientId;

If the type is NO_TAG, the issuerAndSerialNumber member applies. This member supplies a pointer to a CMSIssuerSerialNumber structure.

If the type is 0, the subjectKeyIdentifier member applies. This member supplies an ASN1_ITEMPTR that provides offset and buffer length information that you can use to find subject key identifier information in the CStream that was passed to the CMS_GetPrivateKey() callback function.

This structure reflects the layout of the RecipientIdentifier object of the KeyTransRecipientInfo object. The RecipientIdentifier is a choice.

    KeyTransRecipientInfo ::= SEQUENCE {
        version CMSVersion,  -- always set to 0 or 2
        rid RecipientIdentifier,
        keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
        encryptedKey EncryptedKey }
      RecipientIdentifier ::= CHOICE {
        issuerAndSerialNumber IssuerAndSerialNumber,
        subjectKeyIdentifier [0] SubjectKeyIdentifier }

CMSKeyTransRecipientId.issuerAndSerialNumber corresponds to the issuerAndSerialNumber object. CMSKeyTransRecipientId.subjectKeyIdentifier corresponds to the subjectKeyIdentifier object.


The documentation for this struct was generated from the following file: