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

📄 othercertid.java

📁 bouncycastle 是一个JAVA安全提供者
💻 JAVA
字号:
package org.bouncycastle.asn1.ess;import org.bouncycastle.asn1.ASN1Encodable;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1OctetString;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DERSequence;import org.bouncycastle.asn1.x509.IssuerSerial;import org.bouncycastle.asn1.x509.DigestInfo;import org.bouncycastle.asn1.x509.AlgorithmIdentifier;public class OtherCertID    extends ASN1Encodable{    private ASN1Encodable otherCertHash;    private IssuerSerial issuerSerial;    public static OtherCertID getInstance(Object o)    {        if (o == null || o instanceof OtherCertID)        {            return (OtherCertID) o;        }        else if (o instanceof ASN1Sequence)        {            return new OtherCertID((ASN1Sequence) o);        }        throw new IllegalArgumentException(                "unknown object in 'OtherCertID' factory : "                        + o.getClass().getName() + ".");    }    /**     * constructor     */    public OtherCertID(ASN1Sequence seq)    {        if (seq.getObjectAt(0).getDERObject() instanceof ASN1OctetString)        {            otherCertHash = ASN1OctetString.getInstance(seq.getObjectAt(0));        }        else        {            otherCertHash = DigestInfo.getInstance((ASN1Encodable) seq.getObjectAt(0));        }        if (seq.size() > 1)        {            issuerSerial = new IssuerSerial((ASN1Sequence)seq.getObjectAt(1));        }    }    public OtherCertID(        AlgorithmIdentifier  algId,        byte[]               digest)    {        this.otherCertHash = new DigestInfo(algId, digest);    }    public OtherCertID(        AlgorithmIdentifier  algId,        byte[]               digest,        IssuerSerial    issuerSerial)    {        this.otherCertHash = new DigestInfo(algId, digest);        this.issuerSerial = issuerSerial;    }    public AlgorithmIdentifier getAlgorithmHash()    {        if (otherCertHash.getDERObject() instanceof ASN1OctetString)        {            // SHA-1            return new AlgorithmIdentifier("1.3.14.3.2.26");        }        else        {            return DigestInfo.getInstance(otherCertHash).getAlgorithmId();        }    }    public byte[] getCertHash()    {        if (otherCertHash.getDERObject() instanceof ASN1OctetString)        {            // SHA-1            return ((ASN1OctetString)otherCertHash.getDERObject()).getOctets();        }        else        {            return DigestInfo.getInstance(otherCertHash).getDigest();        }    }    public IssuerSerial getIssuerSerial()    {        return issuerSerial;    }    /**     * <pre>     * OtherCertID ::= SEQUENCE {     *     otherCertHash    OtherHash,     *     issuerSerial     IssuerSerial OPTIONAL }     *     * OtherHash ::= CHOICE {     *     sha1Hash     OCTET STRING,     *     otherHash    OtherHashAlgAndValue }     *     * OtherHashAlgAndValue ::= SEQUENCE {     *     hashAlgorithm    AlgorithmIdentifier,     *     hashValue        OCTET STRING }     *     * </pre>     */    public DERObject toASN1Object()    {        ASN1EncodableVector v = new ASN1EncodableVector();        v.add(otherCertHash);        if (issuerSerial != null)        {            v.add(issuerSerial);        }        return new DERSequence(v);    }}

⌨️ 快捷键说明

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