⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signerinfo.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.asn1.cms;import org.bouncycastle.asn1.ASN1Encodable;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1OctetString;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.ASN1Set;import org.bouncycastle.asn1.ASN1TaggedObject;import org.bouncycastle.asn1.DERInteger;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DEROctetString;import org.bouncycastle.asn1.DERSequence;import org.bouncycastle.asn1.DERTaggedObject;import org.bouncycastle.asn1.x509.AlgorithmIdentifier;import java.util.Enumeration;public class SignerInfo    extends ASN1Encodable{    private DERInteger              version;    private SignerIdentifier        sid;    private AlgorithmIdentifier     digAlgorithm;    private ASN1Set                 authenticatedAttributes;    private AlgorithmIdentifier     digEncryptionAlgorithm;    private ASN1OctetString         encryptedDigest;    private ASN1Set                 unauthenticatedAttributes;    public static SignerInfo getInstance(        Object  o)        throws IllegalArgumentException    {        if (o == null || o instanceof SignerInfo)        {            return (SignerInfo)o;        }        else if (o instanceof ASN1Sequence)        {            return new SignerInfo((ASN1Sequence)o);        }        throw new IllegalArgumentException("unknown object in factory: " + o.getClass().getName());    }    public SignerInfo(        SignerIdentifier        sid,        AlgorithmIdentifier     digAlgorithm,        ASN1Set                 authenticatedAttributes,        AlgorithmIdentifier     digEncryptionAlgorithm,        ASN1OctetString         encryptedDigest,        ASN1Set                 unauthenticatedAttributes)    {        if (sid.isTagged())        {            this.version = new DERInteger(3);        }        else        {            this.version = new DERInteger(1);        }        this.sid = sid;        this.digAlgorithm = digAlgorithm;        this.authenticatedAttributes = authenticatedAttributes;        this.digEncryptionAlgorithm = digEncryptionAlgorithm;        this.encryptedDigest = encryptedDigest;        this.unauthenticatedAttributes = unauthenticatedAttributes;    }    public SignerInfo(        ASN1Sequence seq)    {        Enumeration     e = seq.getObjects();        version = (DERInteger)e.nextElement();        sid = SignerIdentifier.getInstance(e.nextElement());        digAlgorithm = AlgorithmIdentifier.getInstance(e.nextElement());        Object obj = e.nextElement();        if (obj instanceof ASN1TaggedObject)        {            authenticatedAttributes = ASN1Set.getInstance((ASN1TaggedObject)obj, false);            digEncryptionAlgorithm = AlgorithmIdentifier.getInstance(e.nextElement());        }        else        {            authenticatedAttributes = null;            digEncryptionAlgorithm = AlgorithmIdentifier.getInstance(obj);        }        encryptedDigest = DEROctetString.getInstance(e.nextElement());        if (e.hasMoreElements())        {            unauthenticatedAttributes = ASN1Set.getInstance((ASN1TaggedObject)e.nextElement(), false);        }        else        {            unauthenticatedAttributes = null;        }    }    public DERInteger getVersion()    {        return version;    }    public SignerIdentifier getSID()    {        return sid;    }    public ASN1Set getAuthenticatedAttributes()    {        return authenticatedAttributes;    }    public AlgorithmIdentifier getDigestAlgorithm()    {        return digAlgorithm;    }    public ASN1OctetString getEncryptedDigest()    {        return encryptedDigest;    }    public AlgorithmIdentifier getDigestEncryptionAlgorithm()    {        return digEncryptionAlgorithm;    }    public ASN1Set getUnauthenticatedAttributes()    {        return unauthenticatedAttributes;    }    /**     * Produce an object suitable for an ASN1OutputStream.     * <pre>     *  SignerInfo ::= SEQUENCE {     *      version Version,     *      SignerIdentifier sid,     *      digestAlgorithm DigestAlgorithmIdentifier,     *      authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,     *      digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,     *      encryptedDigest EncryptedDigest,     *      unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL     *  }     *     *  EncryptedDigest ::= OCTET STRING     *     *  DigestAlgorithmIdentifier ::= AlgorithmIdentifier     *     *  DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier     * </pre>     */    public DERObject toASN1Object()    {        ASN1EncodableVector v = new ASN1EncodableVector();        v.add(version);        v.add(sid);        v.add(digAlgorithm);        if (authenticatedAttributes != null)        {            v.add(new DERTaggedObject(false, 0, authenticatedAttributes));        }        v.add(digEncryptionAlgorithm);        v.add(encryptedDigest);        if (unauthenticatedAttributes != null)        {            v.add(new DERTaggedObject(false, 1, unauthenticatedAttributes));        }        return new DERSequence(v);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -