subjectpublickeyinfo.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 94 行

JAVA
94
字号
package org.bouncycastle.asn1.x509;import java.io.*;import java.util.Enumeration;import java.math.BigInteger;import org.bouncycastle.asn1.*;import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;/** * The object that contains the public key stored in a certficate. * <p> * The getEncoded() method in the public keys in the JCE produces a DER * encoded one of these. */public class SubjectPublicKeyInfo    implements DEREncodable{    private AlgorithmIdentifier     algId;	private DERBitString			keyData;    public SubjectPublicKeyInfo(        AlgorithmIdentifier algId,        DERObject           publicKey)    {        this.keyData = new DERBitString(publicKey);        this.algId = algId;    }    public SubjectPublicKeyInfo(        AlgorithmIdentifier algId,        byte[]           	publicKey)    {        this.keyData = new DERBitString(publicKey);        this.algId = algId;    }    public SubjectPublicKeyInfo(        DERConstructedSequence  seq)    {        Enumeration         e = seq.getObjects();        this.algId = new AlgorithmIdentifier((DERConstructedSequence)e.nextElement());        this.keyData = (DERBitString)e.nextElement();    }    public AlgorithmIdentifier getAlgorithmId()    {        return algId;    }	/**	 * for when the public key is an encoded object - if the bitstring	 * can't be decoded this routine throws an IOException.	 *	 * @exception IOException - if the bit string doesn't represent a DER	 * encoded object.	 */    public DERObject getPublicKey()		throws IOException    {		ByteArrayInputStream    bIn = new ByteArrayInputStream(keyData.getBytes());		DERInputStream          dIn = new DERInputStream(bIn);		return (DERObject)dIn.readObject();    }	/**	 * for when the public key is raw bits...	 */    public DERBitString getPublicKeyData()    {        return keyData;    }    /**     * <pre>     * SubjectPublicKeyInfo ::= SEQUENCE {     *                          algorithm AlgorithmIdentifier,     *                          publicKey BIT STRING }     * </pre>     */    public DERObject getDERObject()    {        DERConstructedSequence  seq = new DERConstructedSequence();        seq.addObject(algId);		seq.addObject(keyData);        return seq;    }}

⌨️ 快捷键说明

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