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 + -
显示快捷键?