Subject: [ltans] Question about RFC 4998 Appendix A. Evidence Record Using CMS

From: Satoru Otsubo <[email-masked]>
Date: Fri, 18 Dec 2009 20:50:23 +0900

I am Satoru Otsubo.
Pardon me for my poor English.
As ERS can give many CMS's a timestamp based on a hash tree and therefore the timestamp cost become very cheaper, I am considering to use ERS to timestamp many CMS's at once.
RFC 4998 Appendix A has explanations to implement ERS on CMS's.

(1) I want to give as an unsignedAttribute a Evidence Record to CMS which includes contentInfo. In this case, ASN.1 syntax of the unsignedAttribute is as follows?:

   Attribute ::= SEQUENCE {
      attrType OBJECT IDENTIFIER (1.2.840.113549.1.9.16.2.49)
      attrValues SET OF AttributeValue }

   AttributeValue ::= EvidenceRecord

   EvidenceRecord ::= SEQUENCE {
      version                   INTEGER { v1(1) } ,
      digestAlgorithms          SEQUENCE OF AlgorithmIdentifier,
      cryptoInfos               [0] CryptoInfos OPTIONAL,
      encryptionInfo            [1] EncryptionInfo OPTIONAL,
      archiveTimeStampSequence  ArchiveTimeStampSequence
      }

   ............

   ArchiveTimeStamp ::= SEQUENCE {
     digestAlgorithm [0] AlgorithmIdentifier OPTIONAL,
     attributes      [1] Attributes OPTIONAL,
     reducedHashtree [2] SEQUENCE OF PartialHashtree OPTIONAL,
     timeStamp       ContentInfo}

Namely, unsignedAttribute's OID is 1.2.840.113549.1.9.16.2.49 ?
And, can I use as a AttributeValue the same EvidenceRecord syntax as described in RFC 4998 Section 3.1 and 4.1 ?

(2) Well, 1.2.840.113549.1.9.16.2.49 is ASN.1 Internal EvidenceRecord Attribute.
 Therefore I think it can be used as a OID of any kind of selection method, as long as EvidenceRecord is included as an unsignedAttribute in CMS.
 Therefore I think it can be used not only as OID in selection method 1 and 2 described in Appendix A, but also as OID where signature is selected as selection method, as long as EvidenceRecord is included as an unsignedAttribute in CMS.
 Can I use 1.2.840.113549.1.9.16.2.49 when I use as data objects signatures of CMS ?

      SignerInfo ::= SEQUENCE {
        version CMSVersion,
        sid SignerIdentifier,
        digestAlgorithm DigestAlgorithmIdentifier,
        signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,
        signatureAlgorithm SignatureAlgorithmIdentifier,
        signature SignatureValue,       (<= I want to use this value as data object.)
        unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }

Thanks in advance.