Class SignerInfo

  • All Implemented Interfaces:
    io.anyline.nfc.bouncycastle.asn1.ASN1Encodable , io.anyline.nfc.bouncycastle.util.Encodable

    
    public class SignerInfo
    extends ASN1Object
                        

    RFC 5652: Signature container per Signer, see SignerIdentifier.

    PKCS#7:
    
    SignerInfo ::= SEQUENCE {
        version                   Version,
        sid                       SignerIdentifier,
        digestAlgorithm           DigestAlgorithmIdentifier,
        authenticatedAttributes   [0] IMPLICIT Attributes OPTIONAL,
        digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
        encryptedDigest           EncryptedDigest,
        unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
    }
    
    EncryptedDigest ::= OCTET STRING
    
    DigestAlgorithmIdentifier ::= AlgorithmIdentifier
    
    DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
    
    -----------------------------------------
    
    RFC 5652:
    
    SignerInfo ::= SEQUENCE {
        version            CMSVersion,
        sid                SignerIdentifier,
        digestAlgorithm    DigestAlgorithmIdentifier,
        signedAttrs        [0] IMPLICIT SignedAttributes OPTIONAL,
        signatureAlgorithm SignatureAlgorithmIdentifier,
        signature          SignatureValue,
        unsignedAttrs      [1] IMPLICIT UnsignedAttributes OPTIONAL
    }
    
    -- SignerIdentifier referenced certificates are at containing
    -- SignedData certificates element.
    
    SignerIdentifier ::= CHOICE {
        issuerAndSerialNumber IssuerAndSerialNumber,
        subjectKeyIdentifier  [0] SubjectKeyIdentifier }
    
    -- See Attributes for generalized SET OF Attribute
    
    SignedAttributes   ::= SET SIZE (1..MAX) OF Attribute
    UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute
    
    Attribute ::= SEQUENCE {
        attrType   OBJECT IDENTIFIER,
        attrValues SET OF AttributeValue }
    
    AttributeValue ::= ANY
    
    SignatureValue ::= OCTET STRING