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

📄 privatekeyinfo.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.asn1.pkcs;import org.bouncycastle.asn1.ASN1Encodable;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1InputStream;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.io.IOException;import java.math.BigInteger;import java.util.Enumeration;public class PrivateKeyInfo    extends ASN1Encodable{    private DERObject               privKey;    private AlgorithmIdentifier     algId;    private ASN1Set                 attributes;    public static PrivateKeyInfo getInstance(        ASN1TaggedObject obj,        boolean          explicit)    {        return getInstance(ASN1Sequence.getInstance(obj, explicit));    }    public static PrivateKeyInfo getInstance(        Object  obj)    {        if (obj instanceof PrivateKeyInfo)        {            return (PrivateKeyInfo)obj;        }        else if (obj instanceof ASN1Sequence)        {            return new PrivateKeyInfo((ASN1Sequence)obj);        }        throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName());    }            public PrivateKeyInfo(        AlgorithmIdentifier algId,        DERObject           privateKey)    {        this(algId, privateKey, null);    }    public PrivateKeyInfo(        AlgorithmIdentifier algId,        DERObject           privateKey,        ASN1Set             attributes)    {        this.privKey = privateKey;        this.algId = algId;        this.attributes = attributes;    }    public PrivateKeyInfo(        ASN1Sequence  seq)    {        Enumeration e = seq.getObjects();        BigInteger  version = ((DERInteger)e.nextElement()).getValue();        if (version.intValue() != 0)        {            throw new IllegalArgumentException("wrong version for private key info");        }        algId = new AlgorithmIdentifier((ASN1Sequence)e.nextElement());        try        {            ASN1InputStream         aIn = new ASN1InputStream(((ASN1OctetString)e.nextElement()).getOctets());            privKey = aIn.readObject();        }        catch (IOException ex)        {            throw new IllegalArgumentException("Error recoverying private key from sequence");        }                if (e.hasMoreElements())        {           attributes = ASN1Set.getInstance((ASN1TaggedObject)e.nextElement(), false);        }    }    public AlgorithmIdentifier getAlgorithmId()    {        return algId;    }    public DERObject getPrivateKey()    {        return privKey;    }        public ASN1Set getAttributes()    {        return attributes;    }    /**     * write out an RSA private key with it's asscociated information     * as described in PKCS8.     * <pre>     *      PrivateKeyInfo ::= SEQUENCE {     *                              version Version,     *                              privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},     *                              privateKey PrivateKey,     *                              attributes [0] IMPLICIT Attributes OPTIONAL      *                          }     *      Version ::= INTEGER {v1(0)} (v1,...)     *     *      PrivateKey ::= OCTET STRING     *     *      Attributes ::= SET OF Attribute     * </pre>     */    public DERObject toASN1Object()    {        ASN1EncodableVector v = new ASN1EncodableVector();        v.add(new DERInteger(0));        v.add(algId);        v.add(new DEROctetString(privKey));        if (attributes != null)        {            v.add(new DERTaggedObject(false, 0, attributes));        }                return new DERSequence(v);    }}

⌨️ 快捷键说明

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