Bouncy Castle Cryptography Library 1.81

org.bouncycastle.asn1.pkcs
Class PrivateKeyInfo

java.lang.Object
  extended byorg.bouncycastle.asn1.ASN1Object
      extended byorg.bouncycastle.asn1.pkcs.PrivateKeyInfo
All Implemented Interfaces:
ASN1Encodable, Encodable

public class PrivateKeyInfo
extends ASN1Object

RFC 5958 [IMPLICIT TAGS] OneAsymmetricKey ::= SEQUENCE { version Version, privateKeyAlgorithm PrivateKeyAlgorithmIdentifier, privateKey PrivateKey, attributes [0] Attributes OPTIONAL, [], [[2: publicKey [1] PublicKey OPTIONAL ]], [] } PrivateKeyInfo ::= OneAsymmetricKey Version ::= INTEGER { v1(0), v2(1) } (v1, [], v2) PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier { PUBLIC-KEY, { PrivateKeyAlgorithms } } PrivateKey ::= OCTET STRING -- Content varies based on type of key. The -- algorithm identifier dictates the format of -- the key. PublicKey ::= BIT STRING -- Content varies based on type of key. The -- algorithm identifier dictates the format of -- the key. Attributes ::= SET OF Attribute { { OneAsymmetricKeyAttributes } }


Constructor Summary
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, ASN1Encodable privateKey)
          Construct a PrivateKeyInfo around an ASN.1 structure/primitive.
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, ASN1Encodable privateKey, ASN1Set attributes)
          Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes.
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, ASN1Encodable privateKey, ASN1Set attributes, byte[] publicKey)
          Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes and the public key.
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, byte[] privateKey)
          Construct a PrivateKeyInfo around a raw encoding.
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, byte[] privateKey, ASN1Set attributes)
          Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes.
PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm, byte[] privateKey, ASN1Set attributes, byte[] publicKey)
          Construct a PrivateKeyInfo around a raw encoding with attributes and the public key.
 
Method Summary
 ASN1Set getAttributes()
           
static PrivateKeyInfo getInstance(ASN1TaggedObject obj, boolean explicit)
           
static PrivateKeyInfo getInstance(java.lang.Object obj)
           
 ASN1OctetString getPrivateKey()
           
 AlgorithmIdentifier getPrivateKeyAlgorithm()
           
 int getPrivateKeyLength()
           
 ASN1BitString getPublicKeyData()
          for when the public key is raw bits.
 ASN1Integer getVersion()
           
 boolean hasPublicKey()
          Return true if a public key is present, false otherwise.
 ASN1Encodable parsePrivateKey()
           
 ASN1Encodable parsePublicKey()
          for when the public key is an encoded object - if the bitstring can't be decoded this routine throws an IOException.
 ASN1Primitive toASN1Primitive()
          Method providing a primitive representation of this object suitable for encoding.
 
Methods inherited from class org.bouncycastle.asn1.ASN1Object
encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      byte[] privateKey)
               throws java.io.IOException
Construct a PrivateKeyInfo around a raw encoding.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - byte encoding of the private key, used as a raw encoding.

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      ASN1Encodable privateKey)
               throws java.io.IOException
Construct a PrivateKeyInfo around an ASN.1 structure/primitive.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - the ASN.1 structure/primitive representing the private key.
Throws:
java.io.IOException - if encoding the privateKey object into an OCTET STRING fails.

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      ASN1Encodable privateKey,
                      ASN1Set attributes)
               throws java.io.IOException
Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - the ASN.1 structure/primitive representing the private key.
attributes - attributes associated with private key.
Throws:
java.io.IOException - if encoding the privateKey object into an OCTET STRING fails.

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      byte[] privateKey,
                      ASN1Set attributes)
               throws java.io.IOException
Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - byte encoding of the private key, used as a raw encoding.
attributes - attributes associated with private key.
Throws:
java.io.IOException - if encoding the privateKey object into an OCTET STRING fails.

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      ASN1Encodable privateKey,
                      ASN1Set attributes,
                      byte[] publicKey)
               throws java.io.IOException
Construct a PrivateKeyInfo around an ASN.1 structure/primitive with attributes and the public key.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - the ASN.1 structure/primitive representing the private key.
attributes - attributes associated with private key.
publicKey - public key encoding.
Throws:
java.io.IOException - if encoding the privateKey object into an OCTET STRING fails.

PrivateKeyInfo

public PrivateKeyInfo(AlgorithmIdentifier privateKeyAlgorithm,
                      byte[] privateKey,
                      ASN1Set attributes,
                      byte[] publicKey)
Construct a PrivateKeyInfo around a raw encoding with attributes and the public key.

Parameters:
privateKeyAlgorithm - algorithm identifier for the private key.
privateKey - byte encoding of the private key, used as a raw encoding.
attributes - attributes associated with private key.
publicKey - public key encoding.
Method Detail

getInstance

public static PrivateKeyInfo getInstance(ASN1TaggedObject obj,
                                         boolean explicit)

getInstance

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

getVersion

public ASN1Integer getVersion()

getAttributes

public ASN1Set getAttributes()

getPrivateKeyAlgorithm

public AlgorithmIdentifier getPrivateKeyAlgorithm()

getPrivateKey

public ASN1OctetString getPrivateKey()

getPrivateKeyLength

public int getPrivateKeyLength()

parsePrivateKey

public ASN1Encodable parsePrivateKey()
                              throws java.io.IOException
Throws:
java.io.IOException

hasPublicKey

public boolean hasPublicKey()
Return true if a public key is present, false otherwise.

Returns:
true if public included, otherwise false.

parsePublicKey

public ASN1Encodable parsePublicKey()
                             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.

Returns:
the public key as an ASN.1 primitive.
Throws:
java.io.IOException - - if the bit string doesn't represent a DER encoded object.

getPublicKeyData

public ASN1BitString getPublicKeyData()
for when the public key is raw bits.

Returns:
the public key as the raw bit string[]

toASN1Primitive

public ASN1Primitive toASN1Primitive()
Description copied from class: ASN1Object
Method providing a primitive representation of this object suitable for encoding.

Specified by:
toASN1Primitive in interface ASN1Encodable
Specified by:
toASN1Primitive in class ASN1Object
Returns:
a primitive representation of this object.

Bouncy Castle Cryptography Library 1.81