Class SignedData

  • All Implemented Interfaces:
    ASN1Encodable, Encodable

    public class SignedData
    extends ASN1Object
    RFC 5652:

    A signed data object containing multitude of SignerInfos.

     SignedData ::= SEQUENCE {
         version CMSVersion,
         digestAlgorithms DigestAlgorithmIdentifiers,
         encapContentInfo EncapsulatedContentInfo,
         certificates [0] IMPLICIT CertificateSet OPTIONAL,
         crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
         signerInfos SignerInfos
       }
     
     DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier
     
     SignerInfos ::= SET OF SignerInfo
     

    The version calculation uses following ruleset from RFC 5652 section 5.1:

     IF ((certificates is present) AND
        (any certificates with a type of other are present)) OR
        ((crls is present) AND
        (any crls with a type of other are present))
     THEN version MUST be 5
     ELSE
        IF (certificates is present) AND
           (any version 2 attribute certificates are present)
        THEN version MUST be 4
        ELSE
           IF ((certificates is present) AND
              (any version 1 attribute certificates are present)) OR
              (any SignerInfo structures are version 3) OR
              (encapContentInfo eContentType is other than id-data)
           THEN version MUST be 3
           ELSE version MUST be 1
     

    • Method Detail

      • getInstance

        public static SignedData getInstance​(java.lang.Object o)
        Return a SignedData object from the given object.

        Accepted inputs:

        Parameters:
        o - the object we want converted.
        Returns:
        a reference that can be assigned to SignedData (may be null)
        Throws:
        java.lang.IllegalArgumentException - if the object cannot be converted.
      • getDigestAlgorithms

        public ASN1Set getDigestAlgorithms()
      • getEncapContentInfo

        public ContentInfo getEncapContentInfo()
      • getCertificates

        public ASN1Set getCertificates()
      • getCRLs

        public ASN1Set getCRLs()
      • getSignerInfos

        public ASN1Set getSignerInfos()