org.bouncycastle.asn1.x509

## Class SubjectPublicKeyInfo

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Encodable
  - - org.bouncycastle.asn1.x509.SubjectPublicKeyInfo

All Implemented Interfaces:
  DEREncodable

    public class SubjectPublicKeyInfo
    extends ASN1Encodable

The object that contains the public key stored in a certficate.

The getEncoded() method in the public keys in the JCE produces a DER encoded one of these.

### Field Summary

### Fields inherited from class org.bouncycastle.asn1.ASN1Encodable

`BER, DER`

### Constructor Summary

Constructors
Constructor and Description
`SubjectPublicKeyInfo(AlgorithmIdentifier algId, byte[] publicKey)`
`SubjectPublicKeyInfo(AlgorithmIdentifier algId, DEREncodable publicKey)`
`SubjectPublicKeyInfo(ASN1Sequence seq)`

### Method Summary

Methods
`AlgorithmIdentifier` `getAlgorithmId()`
`static SubjectPublicKeyInfo` `getInstance(ASN1TaggedObject obj, boolean explicit)`
`static SubjectPublicKeyInfo` `getInstance(java.lang.Object obj)`
`DERObject` `getPublicKey()` for when the public key is an encoded object - if the bitstring can't be decoded this routine throws an IOException.
`DERBitString` `getPublicKeyData()` for when the public key is raw bits...
`DERObject` `toASN1Object()` Produce an object suitable for an ASN1OutputStream.

### Methods inherited from class org.bouncycastle.asn1.ASN1Encodable

`equals, getDEREncoded, getDERObject, getEncoded, getEncoded, hashCode`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SubjectPublicKeyInfo

    public SubjectPublicKeyInfo(AlgorithmIdentifier algId,
                        DEREncodable publicKey)

#### SubjectPublicKeyInfo

    public SubjectPublicKeyInfo(AlgorithmIdentifier algId,
                        byte[] publicKey)

#### SubjectPublicKeyInfo

    public SubjectPublicKeyInfo(ASN1Sequence seq)

### Method Detail

#### getInstance

    public static SubjectPublicKeyInfo getInstance(ASN1TaggedObject obj,
                                   boolean explicit)

#### getInstance

    public static SubjectPublicKeyInfo getInstance(java.lang.Object obj)

#### getAlgorithmId

    public AlgorithmIdentifier getAlgorithmId()

#### getPublicKey

    public DERObject getPublicKey()
                           throws java.io.IOException

for when the public key is an encoded object - if the bitstring can't be decoded this routine throws an IOException.

Throws:
  `java.io.IOException` - - if the bit string doesn't represent a DER encoded object.

#### getPublicKeyData

    public DERBitString getPublicKeyData()

for when the public key is raw bits...

#### toASN1Object

    public DERObject toASN1Object()

Produce an object suitable for an ASN1OutputStream.

     SubjectPublicKeyInfo ::= SEQUENCE {
                              algorithm AlgorithmIdentifier,
                              publicKey BIT STRING }

Specified by:
  `toASN1Object` in class `ASN1Encodable`