Back to index

lightning-sunbird  0.9+nobinonly
Functions | Variables
cmsasn1.c File Reference
#include "cmslocal.h"
#include "cert.h"
#include "key.h"
#include "secasn1.h"
#include "secitem.h"
#include "secoid.h"
#include "prtime.h"
#include "secerr.h"

Go to the source code of this file.

Functions

static const SEC_ASN1Templatenss_cms_choose_content_template (void *src_or_dest, PRBool encoding)
const SEC_ASN1Templatenss_cms_get_kea_template (NSSCMSKEATemplateSelector whichTemplate)

Variables

const SEC_ASN1Template nss_cms_set_of_attribute_template []
static const
SEC_ASN1TemplateChooserPtr 
nss_cms_chooser = nss_cms_choose_content_template
const SEC_ASN1Template NSSCMSMessageTemplate []
static const SEC_ASN1Template NSS_PointerToCMSMessageTemplate []
static const SEC_ASN1Template NSSCMSEncapsulatedContentInfoTemplate []
static const SEC_ASN1Template NSSCMSEncryptedContentInfoTemplate []
const SEC_ASN1Template NSSCMSSignerInfoTemplate []
const SEC_ASN1Template NSSCMSSignedDataTemplate []
const SEC_ASN1Template NSS_PointerToCMSSignedDataTemplate []
static const SEC_ASN1Template NSSCMSSignerIdentifierTemplate []
static const SEC_ASN1Template NSSCMSOriginatorInfoTemplate []
const SEC_ASN1Template NSSCMSRecipientInfoTemplate []
const SEC_ASN1Template NSSCMSEnvelopedDataTemplate []
const SEC_ASN1Template NSS_PointerToCMSEnvelopedDataTemplate []
static const SEC_ASN1Template NSSCMSRecipientIdentifierTemplate []
static const SEC_ASN1Template NSSCMSKeyTransRecipientInfoTemplate []
static const SEC_ASN1Template NSSCMSOriginatorPublicKeyTemplate []
static const SEC_ASN1Template NSSCMSOriginatorIdentifierOrKeyTemplate []
const SEC_ASN1Template NSSCMSRecipientKeyIdentifierTemplate []
static const SEC_ASN1Template NSSCMSKeyAgreeRecipientIdentifierTemplate []
static const SEC_ASN1Template NSSCMSRecipientEncryptedKeyTemplate []
static const SEC_ASN1Template NSSCMSKeyAgreeRecipientInfoTemplate []
static const SEC_ASN1Template NSSCMSKEKIdentifierTemplate []
static const SEC_ASN1Template NSSCMSKEKRecipientInfoTemplate []
const SEC_ASN1Template NSSCMSDigestedDataTemplate []
const SEC_ASN1Template NSS_PointerToCMSDigestedDataTemplate []
const SEC_ASN1Template NSSCMSEncryptedDataTemplate []
const SEC_ASN1Template NSS_PointerToCMSEncryptedDataTemplate []
const SEC_ASN1Template NSS_SMIMEKEAParamTemplateSkipjack []
const SEC_ASN1Template NSS_SMIMEKEAParamTemplateNoSkipjack []
const SEC_ASN1Template NSS_SMIMEKEAParamTemplateAllParams []

Function Documentation

static const SEC_ASN1Template * nss_cms_choose_content_template ( void src_or_dest,
PRBool  encoding 
) [static]

Definition at line 547 of file cmsasn1.c.

{
    const SEC_ASN1Template *theTemplate;
    NSSCMSContentInfo *cinfo;

    PORT_Assert (src_or_dest != NULL);
    if (src_or_dest == NULL)
       return NULL;

    cinfo = (NSSCMSContentInfo *)src_or_dest;
    switch (NSS_CMSContentInfo_GetContentTypeTag(cinfo)) {
    default:
       theTemplate = SEC_ASN1_GET(SEC_PointerToAnyTemplate);
       break;
    case SEC_OID_PKCS7_DATA:
       theTemplate = SEC_ASN1_GET(SEC_PointerToOctetStringTemplate);
       break;
    case SEC_OID_PKCS7_SIGNED_DATA:
       theTemplate = NSS_PointerToCMSSignedDataTemplate;
       break;
    case SEC_OID_PKCS7_ENVELOPED_DATA:
       theTemplate = NSS_PointerToCMSEnvelopedDataTemplate;
       break;
    case SEC_OID_PKCS7_DIGESTED_DATA:
       theTemplate = NSS_PointerToCMSDigestedDataTemplate;
       break;
    case SEC_OID_PKCS7_ENCRYPTED_DATA:
       theTemplate = NSS_PointerToCMSEncryptedDataTemplate;
       break;
    }
    return theTemplate;
}

Here is the call graph for this function:

Definition at line 523 of file cmsasn1.c.

{
       const SEC_ASN1Template *returnVal = NULL;

       switch(whichTemplate)
       {
       case NSSCMSKEAUsesNonSkipjack:
              returnVal = NSS_SMIMEKEAParamTemplateNoSkipjack;
              break;
       case NSSCMSKEAUsesSkipjack:
              returnVal = NSS_SMIMEKEAParamTemplateSkipjack;
              break;
       case NSSCMSKEAUsesNonSkipjackWithPaddedEncKey:
       default:
              returnVal = NSS_SMIMEKEAParamTemplateAllParams;
              break;
       }
       return returnVal;
}

Variable Documentation

Definition at line 74 of file cmsasn1.c.

Definition at line 309 of file cmsattr.c.

Initial value:

Definition at line 461 of file cmsasn1.c.

Initial value:

Definition at line 479 of file cmsasn1.c.

Initial value:

Definition at line 246 of file cmsasn1.c.

Initial value:

Definition at line 88 of file cmsasn1.c.

Initial value:

Definition at line 154 of file cmsasn1.c.

Initial value:
 {
       { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSSMIMEKEAParameters) },
       { SEC_ASN1_OCTET_STRING ,
         offsetof(NSSCMSSMIMEKEAParameters,originatorKEAKey) },
       { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSSMIMEKEAParameters,originatorRA) },
       { SEC_ASN1_OCTET_STRING  | SEC_ASN1_OPTIONAL ,
         offsetof(NSSCMSSMIMEKEAParameters,nonSkipjackIV) },
       { SEC_ASN1_OCTET_STRING  | SEC_ASN1_OPTIONAL ,
         offsetof(NSSCMSSMIMEKEAParameters,bulkKeySize) },
       { 0 }
}

Definition at line 508 of file cmsasn1.c.

Initial value:
 {
       { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSSMIMEKEAParameters) },
       { SEC_ASN1_OCTET_STRING ,
         offsetof(NSSCMSSMIMEKEAParameters,originatorKEAKey) },
       { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSSMIMEKEAParameters,originatorRA) },
       { SEC_ASN1_OCTET_STRING  | SEC_ASN1_OPTIONAL ,
         offsetof(NSSCMSSMIMEKEAParameters,nonSkipjackIV) },
       { 0 }
}

Definition at line 496 of file cmsasn1.c.

Initial value:
 {
       { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSSMIMEKEAParameters) },
       { SEC_ASN1_OCTET_STRING ,
         offsetof(NSSCMSSMIMEKEAParameters,originatorKEAKey) },
       { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSSMIMEKEAParameters,originatorRA) },
       { 0 }
}

Definition at line 486 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE | SEC_ASN1_MAY_STREAM,
         0, NULL, sizeof(NSSCMSDigestedData) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSDigestedData,version) },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSDigestedData,digestAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSDigestedData,contentInfo),
         NSSCMSEncapsulatedContentInfoTemplate },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSDigestedData,digest) },
    { 0 }
}

Definition at line 445 of file cmsasn1.c.

Initial value:

Definition at line 96 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE | SEC_ASN1_MAY_STREAM,
         0, NULL, sizeof(NSSCMSContentInfo) },
    { SEC_ASN1_OBJECT_ID,
         offsetof(NSSCMSContentInfo,contentType) },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSContentInfo,contentEncAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_POINTER | SEC_ASN1_MAY_STREAM | 
      SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 0,
         offsetof(NSSCMSContentInfo,rawContent),
         SEC_ASN1_SUB(SEC_OctetStringTemplate) },
    { 0 }
}

Definition at line 108 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE | SEC_ASN1_MAY_STREAM,
         0, NULL, sizeof(NSSCMSEncryptedData) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSEncryptedData,version) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSEncryptedData,contentInfo),
         NSSCMSEncryptedContentInfoTemplate },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 1,
         offsetof(NSSCMSEncryptedData,unprotectedAttr),
         nss_cms_set_of_attribute_template },
    { 0 }
}

Definition at line 465 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE | SEC_ASN1_MAY_STREAM,
         0, NULL, sizeof(NSSCMSEnvelopedData) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSEnvelopedData,version) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_POINTER | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
         offsetof(NSSCMSEnvelopedData,originatorInfo),
         NSSCMSOriginatorInfoTemplate },
    { SEC_ASN1_SET_OF,
         offsetof(NSSCMSEnvelopedData,recipientInfos),
         NSSCMSRecipientInfoTemplate },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSEnvelopedData,contentInfo),
         NSSCMSEncryptedContentInfoTemplate },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 1,
         offsetof(NSSCMSEnvelopedData,unprotectedAttr),
         nss_cms_set_of_attribute_template },
    { 0 }
}

Definition at line 226 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSKEKIdentifier) },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSKEKIdentifier,keyIdentifier) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSKEKIdentifier,date) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSKEKIdentifier,other) },
    { 0 }
}

Definition at line 391 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSKEKRecipientInfo) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSKEKRecipientInfo,version) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSKEKRecipientInfo,kekIdentifier),
         NSSCMSKEKIdentifierTemplate },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSKEKRecipientInfo,keyEncAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSKEKRecipientInfo,encKey) },
    { 0 }
}

Definition at line 403 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_CHOICE,
         offsetof(NSSCMSKeyAgreeRecipientIdentifier,identifierType), NULL,
         sizeof(NSSCMSKeyAgreeRecipientIdentifier) },
    { SEC_ASN1_POINTER | SEC_ASN1_XTRN,
         offsetof(NSSCMSKeyAgreeRecipientIdentifier,id.issuerAndSN),
         SEC_ASN1_SUB(CERT_IssuerAndSNTemplate),
         NSSCMSKeyAgreeRecipientID_IssuerSN },
    { SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
         offsetof(NSSCMSKeyAgreeRecipientIdentifier,id.recipientKeyIdentifier),
         NSSCMSRecipientKeyIdentifierTemplate,
         NSSCMSKeyAgreeRecipientID_RKeyID },
    { 0 }
}

Definition at line 339 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSKeyAgreeRecipientInfo) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSKeyAgreeRecipientInfo,version) },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
         offsetof(NSSCMSKeyAgreeRecipientInfo,originatorIdentifierOrKey),
         NSSCMSOriginatorIdentifierOrKeyTemplate },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_EXPLICIT |
      SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 1,
         offsetof(NSSCMSKeyAgreeRecipientInfo,ukm),
         SEC_ASN1_SUB(SEC_OctetStringTemplate) },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSKeyAgreeRecipientInfo,keyEncAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_SEQUENCE_OF,
         offsetof(NSSCMSKeyAgreeRecipientInfo,recipientEncryptedKeys),
         NSSCMSRecipientEncryptedKeyTemplate },
    { 0 }
}

Definition at line 366 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSKeyTransRecipientInfo) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSKeyTransRecipientInfo,version) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSKeyTransRecipientInfo,recipientIdentifier),
         NSSCMSRecipientIdentifierTemplate },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSKeyTransRecipientInfo,keyEncAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSKeyTransRecipientInfo,encKey) },
    { 0 }
}

Definition at line 273 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE | SEC_ASN1_MAY_STREAM,
         0, NULL, sizeof(NSSCMSMessage) },
    { SEC_ASN1_OBJECT_ID,
         offsetof(NSSCMSMessage,contentInfo.contentType) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_DYNAMIC | SEC_ASN1_MAY_STREAM
     | SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
         offsetof(NSSCMSMessage,contentInfo.content),
         &nss_cms_chooser },
    { 0 }
}

Definition at line 76 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_CHOICE,
         offsetof(NSSCMSOriginatorIdentifierOrKey,identifierType), NULL,
         sizeof(NSSCMSOriginatorIdentifierOrKey) },
    { SEC_ASN1_POINTER | SEC_ASN1_XTRN,
         offsetof(NSSCMSOriginatorIdentifierOrKey,id.issuerAndSN),
         SEC_ASN1_SUB(CERT_IssuerAndSNTemplate),
         NSSCMSOriginatorIDOrKey_IssuerSN },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC |
      SEC_ASN1_XTRN | 1,
         offsetof(NSSCMSOriginatorIdentifierOrKey,id.subjectKeyID),
         SEC_ASN1_SUB(SEC_PointerToOctetStringTemplate) ,
         NSSCMSOriginatorIDOrKey_SubjectKeyID },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 2,
         offsetof(NSSCMSOriginatorIdentifierOrKey,id.originatorPublicKey),
         NSSCMSOriginatorPublicKeyTemplate,
         NSSCMSOriginatorIDOrKey_OriginatorPublicKey },
    { 0 }
}

Definition at line 306 of file cmsasn1.c.

Initial value:

Definition at line 210 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSOriginatorPublicKey) },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSOriginatorPublicKey,algorithmIdentifier),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSOriginatorPublicKey,publicKey),
         SEC_ASN1_SUB(SEC_BitStringTemplate) },
    { 0 }
}

Definition at line 293 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSRecipientEncryptedKey) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSRecipientEncryptedKey,recipientIdentifier),
         NSSCMSKeyAgreeRecipientIdentifierTemplate },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSRecipientEncryptedKey,encKey),
         SEC_ASN1_SUB(SEC_BitStringTemplate) },
    { 0 }
}

Definition at line 354 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_CHOICE,
         offsetof(NSSCMSRecipientIdentifier,identifierType), NULL,
         sizeof(NSSCMSRecipientIdentifier) },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC |
      SEC_ASN1_XTRN | 0,
         offsetof(NSSCMSRecipientIdentifier,id.subjectKeyID),
         SEC_ASN1_SUB(SEC_PointerToOctetStringTemplate) ,
         NSSCMSRecipientID_SubjectKeyID },
    { SEC_ASN1_POINTER | SEC_ASN1_XTRN,
         offsetof(NSSCMSRecipientIdentifier,id.issuerAndSN),
         SEC_ASN1_SUB(CERT_IssuerAndSNTemplate),
         NSSCMSRecipientID_IssuerSN },
    { 0 }
}

Definition at line 256 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_CHOICE,
         offsetof(NSSCMSRecipientInfo,recipientInfoType), NULL,
         sizeof(NSSCMSRecipientInfo) },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 1,
         offsetof(NSSCMSRecipientInfo,ri.keyAgreeRecipientInfo),
         NSSCMSKeyAgreeRecipientInfoTemplate,
         NSSCMSRecipientInfoID_KeyAgree },
    { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 2,
         offsetof(NSSCMSRecipientInfo,ri.kekRecipientInfo),
         NSSCMSKEKRecipientInfoTemplate,
         NSSCMSRecipientInfoID_KEK },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSRecipientInfo,ri.keyTransRecipientInfo),
         NSSCMSKeyTransRecipientInfoTemplate,
         NSSCMSRecipientInfoID_KeyTrans },
    { 0 }
}

Definition at line 224 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSRecipientKeyIdentifier) },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSRecipientKeyIdentifier,subjectKeyIdentifier) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSRecipientKeyIdentifier,date) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSRecipientKeyIdentifier,other) },
    { 0 }
}

Definition at line 326 of file cmsasn1.c.

Initial value:

Definition at line 129 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_CHOICE,
         offsetof(NSSCMSSignerIdentifier,identifierType), NULL,
         sizeof(NSSCMSSignerIdentifier) },
    { SEC_ASN1_POINTER | SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 0,
         offsetof(NSSCMSSignerIdentifier,id.subjectKeyID),
         SEC_ASN1_SUB(SEC_OctetStringTemplate) ,
         NSSCMSRecipientID_SubjectKeyID },
    { SEC_ASN1_POINTER | SEC_ASN1_XTRN,
         offsetof(NSSCMSSignerIdentifier,id.issuerAndSN),
         SEC_ASN1_SUB(CERT_IssuerAndSNTemplate),
         NSSCMSRecipientID_IssuerSN },
    { 0 }
}

Definition at line 162 of file cmsasn1.c.

Initial value:
 {
    { SEC_ASN1_SEQUENCE,
         0, NULL, sizeof(NSSCMSSignerInfo) },
    { SEC_ASN1_INTEGER,
         offsetof(NSSCMSSignerInfo,version) },
    { SEC_ASN1_INLINE,
         offsetof(NSSCMSSignerInfo,signerIdentifier),
         NSSCMSSignerIdentifierTemplate },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSSignerInfo,digestAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
         offsetof(NSSCMSSignerInfo,authAttr),
         nss_cms_set_of_attribute_template },
    { SEC_ASN1_INLINE | SEC_ASN1_XTRN,
         offsetof(NSSCMSSignerInfo,digestEncAlg),
         SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
    { SEC_ASN1_OCTET_STRING,
         offsetof(NSSCMSSignerInfo,encDigest) },
    { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 1,
         offsetof(NSSCMSSignerInfo,unAuthAttr),
         nss_cms_set_of_attribute_template },
    { 0 }
}

Definition at line 127 of file cmsasn1.c.