x509principal.java

来自「bouncycastle 是一个JAVA安全提供者」· Java 代码 · 共 139 行

JAVA
139
字号
package org.bouncycastle.jce;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.security.Principal;import java.util.Hashtable;import java.util.Vector;import org.bouncycastle.asn1.ASN1InputStream;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.DEROutputStream;import org.bouncycastle.asn1.x509.X509Name;public class X509Principal    extends X509Name    implements Principal{    /**     * Constructor from an encoded byte array.     */    public X509Principal(        byte[]  bytes)        throws IOException    {        super((ASN1Sequence)(new ASN1InputStream(new ByteArrayInputStream(bytes)).readObject()));    }    /**     * Constructor from an X509Name object.     */    public X509Principal(        X509Name  name)    {        super((ASN1Sequence)name.getDERObject());    }    /**     * constructor from a table of attributes.     * <p>     * it's is assumed the table contains OID/String pairs.     */    public X509Principal(        Hashtable  attributes)    {        super(attributes);    }    /**     * constructor from a table of attributes and a vector giving the     * specific ordering required for encoding or conversion to a string.     * <p>     * it's is assumed the table contains OID/String pairs.     */    public X509Principal(        Vector      ordering,        Hashtable   attributes)    {        super(ordering, attributes);    }    /**     * constructor from a vector of attribute values and a vector of OIDs.     */    public X509Principal(        Vector      oids,        Vector      values)    {        super(oids, values);    }    /**     * takes an X509 dir name as a string of the format "C=AU,ST=Victoria", or     * some such, converting it into an ordered set of name attributes.     */    public X509Principal(        String  dirName)    {        super(dirName);    }    /**     * Takes an X509 dir name as a string of the format "C=AU,ST=Victoria", or     * some such, converting it into an ordered set of name attributes. If reverse     * is false the dir name will be encoded in the order of the (name, value) pairs      * presented, otherwise the encoding will start with the last (name, value) pair     * and work back.     */    public X509Principal(        boolean reverse,        String  dirName)    {        super(reverse, dirName);    }    /**     * Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or     * some such, converting it into an ordered set of name attributes. lookUp      * should provide a table of lookups, indexed by lowercase only strings and     * yielding a DERObjectIdentifier, other than that OID. and numeric oids     * will be processed automatically.     * <p>     * If reverse is true, create the encoded version of the sequence starting     * from the last element in the string.     */    public X509Principal(        boolean     reverse,        Hashtable   lookUp,        String      dirName)    {        super(reverse, lookUp, dirName);    }    public String getName()    {        return this.toString();    }    /**     * return a DER encoded byte array representing this object     */    public byte[] getEncoded()    {        ByteArrayOutputStream   bOut = new ByteArrayOutputStream();        DEROutputStream         dOut = new DEROutputStream(bOut);        try        {            dOut.writeObject(this);        }        catch (IOException e)        {            throw new RuntimeException(e.toString());        }        return bOut.toByteArray();    }}

⌨️ 快捷键说明

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