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

📄 ecprivatekeystructure.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.asn1.sec;import org.bouncycastle.asn1.ASN1Encodable;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1Object;import org.bouncycastle.asn1.ASN1OctetString;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.ASN1TaggedObject;import org.bouncycastle.asn1.DERBitString;import org.bouncycastle.asn1.DEREncodable;import org.bouncycastle.asn1.DERInteger;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DEROctetString;import org.bouncycastle.asn1.DERSequence;import java.math.BigInteger;import java.util.Enumeration;/** * the elliptic curve private key object from SEC 1 */public class ECPrivateKeyStructure    extends ASN1Encodable{    private ASN1Sequence  seq;    public ECPrivateKeyStructure(        ASN1Sequence  seq)    {        this.seq = seq;    }    public ECPrivateKeyStructure(        BigInteger  key)    {        byte[]  bytes = key.toByteArray();        if (bytes[0] == 0)        {            byte[]  tmp = new byte[bytes.length - 1];            System.arraycopy(bytes, 1, tmp, 0, tmp.length);            bytes = tmp;        }        ASN1EncodableVector v = new ASN1EncodableVector();        v.add(new DERInteger(1));        v.add(new DEROctetString(bytes));        seq = new DERSequence(v);    }    public BigInteger getKey()    {        ASN1OctetString  octs = (ASN1OctetString)seq.getObjectAt(1);        return new BigInteger(1, octs.getOctets());    }    public DERBitString getPublicKey()    {        return (DERBitString)getObjectInTag(1);    }    public ASN1Object getParameters()    {        return getObjectInTag(0);    }    private ASN1Object getObjectInTag(int tagNo)    {        Enumeration e = seq.getObjects();        while (e.hasMoreElements())        {            DEREncodable obj = (DEREncodable)e.nextElement();            if (obj instanceof ASN1TaggedObject)            {                ASN1TaggedObject tag = (ASN1TaggedObject)obj;                if (tag.getTagNo() == tagNo)                {                    return (ASN1Object)((DEREncodable)tag.getObject()).getDERObject();                }            }        }        return null;    }    /**     * ECPrivateKey ::= SEQUENCE {     *     version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),     *     privateKey OCTET STRING,     *     parameters [0] Parameters OPTIONAL,     *     publicKey [1] BIT STRING OPTIONAL }     */    public DERObject toASN1Object()    {        return seq;    }}

⌨️ 快捷键说明

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