|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--iaik.x509.PublicKeyInfo
This class implements a PublicKeyInfo
as used within X.509 certificates
for representing the subject´s public key in the SubjectPublicKeyInfo
field.
The subject is the entity claiming for certification of its public key. The subject´s
public key is of type subjectPublicKeyInfo
including a BIT-STRING
representation of the public key together with an identification of the public-key
algorithm being used, as defined in RFC 2459:
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
where:
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }
This class has to be extended by any class implementing some particular public key (e.g. RSAPublicKey, DSAPublicKey, DHPublicKey) for being used within the X.509 certificate environment.
This class provides a variety of methods for creating, parsing, de- and encoding public key informations.
As an example, for creating an instance of java.security.PublicKey
from an ASN1Object representation, or a DER encoding, use the static getPublicKey(ASN1Object)
respectively getPublicKey(byte[])
methods, e.g.:
byte[] encoding = ...; PublicKey publicKey = PublicKeyInfo(encoding);
X509Certificate
,
RSAPublicKey
,
DSAPublicKey
,
DHPublicKey
,
AlgorithmID
, Serialized FormField Summary | |
protected AlgorithmID |
public_key_algorithm
The algorithm identifier of the public key algorithm belonging to the particular public key implemeting this PublicKeyInfo. |
Fields inherited from interface java.security.PublicKey |
serialVersionUID |
Constructor Summary | |
protected |
PublicKeyInfo()
Default Constructor for derived classes. |
|
PublicKeyInfo(ASN1Object obj)
Creates a new PublicKeyInfo from an ASN1Object. |
|
PublicKeyInfo(byte[] arr)
Creates a new PublicKeyInfo from a DER byte array. |
|
PublicKeyInfo(InputStream is)
Creates a new PublicKeyInfo from an InputStream. |
Method Summary | |
Object |
clone()
Return a clone of this private key object. |
protected void |
createPublicKeyInfo()
Creates a PublicKeyInfo data structure (X.509). |
void |
decode(ASN1Object obj)
Decodes the given ASN.1 PublicKeyInfo object
for parsing the internal structure.
|
protected abstract void |
decode(byte[] publicKey)
Abstract method to be implemented for decoding a DER encoded public key. |
protected abstract byte[] |
encode()
Abstract method to be implemented for DER encoding the particular public key extending this PublicKeyInfo. |
boolean |
equals(Object obj)
Compares this public key to another public key. |
abstract String |
getAlgorithm()
Returns the name of the appertaining algorithm. |
byte[] |
getEncoded()
Returns this PublicKeyInfo as a DER encoded ASN.1 data structure. |
byte[] |
getFingerprint()
Returns a fingerprint of the public key. |
String |
getFormat()
Returns the name of the encoding format. |
static PublicKey |
getPublicKey(ASN1Object publicKey)
Creates a PublicKey from an ASN1Object. |
static PublicKey |
getPublicKey(byte[] publicKeyInfo)
Creates a PublicKey from a DER encoded byte array. |
int |
hashCode()
Returns a hash code for this object. |
ASN1Object |
toASN1Object()
Returns this PublicKeyInfo as ASN1Object. |
String |
toString()
Returns a string that represents the contents of this public key. |
void |
writeTo(OutputStream os)
Writes this public key to an output stream. |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
protected AlgorithmID public_key_algorithm
Constructor Detail |
protected PublicKeyInfo()
public PublicKeyInfo(ASN1Object obj) throws InvalidKeyException
This constructor may be used for parsing an
already exisiting PublicKeyInfo
object, supplied as
ASN1Object that may have been created by calling
toASN1Object
.
obj
- the PublicKeyInfo as ASN1ObjectInvalidKeyException
- if the data can not be parsedpublic PublicKeyInfo(InputStream is) throws InvalidKeyException, IOException
This constructor reads a DER or PEM encoded PublicKeyInfo which previously
may have been written with method writeTo(OutputStream)
.
This constructor cannot be used to read a serialized object.
is
- the input stream from where the encoded PublicKeyInfo shall be readInvalidKeyException
- if the data can not be parsedIOException
- if an I/O error occurspublic PublicKeyInfo(byte[] arr) throws InvalidKeyException
This constructor may be used for parsing an
already exisiting PublicKeyInfo
ASN1 object, supplied as DER encoded
byte array, which may have been created by calling the
getEncoded
method.
arr
- the array containing the encoded PublicKeyInfoInvalidKeyException
- if the data can not be parsedMethod Detail |
protected abstract void decode(byte[] publicKey) throws InvalidKeyException
publicKey
- the public key as DER encoded ASN.1 objectInvalidKeyException
- if something is wrong with the encoding of the keyprotected abstract byte[] encode()
public abstract String getAlgorithm()
getAlgorithm
in interface Key
public Object clone()
clone
in class Object
public void decode(ASN1Object obj) throws CodingException
PublicKeyInfo
object
for parsing the internal structure.
This method implements the ASN1Type interface.
decode
in interface ASN1Type
obj
- the PublicKeyInfo as ASN1ObjectCodingException
- if the ASN1Object could not be parsedprotected void createPublicKeyInfo()
This method is called by extending classes for creating a PublicKeyInfo. This method creates a PublicKeyInfo as an ASN.1 SEQUENCE object with components as specified in RFC 2459:
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
public static PublicKey getPublicKey(ASN1Object publicKey) throws InvalidKeyException
This is a static method and therefore may be called for creating a PublicKeyInfo from the given ASN1Object without explicitly instantiating this class, e.g:
PublicKey pub_ki = PublicKeyInfo.getPublicKey(asn1_obj);
The given ASN1Object represents an already exisiting
PrublicKeyInfo
object, and may have been created by calling
toASN1Object
.
publicKey
- the PublicKey as ASN1ObjectInvalidKeyException
- if the ASN1Object cannot be parsed or the inherent
AlgorithmID does not match to any implemented
public-key algorithmpublic static PublicKey getPublicKey(byte[] publicKeyInfo) throws InvalidKeyException
This is a static method and therefore may be called for creating a PublicKeyInfo from the given DER encoded ASN1Object without explicitly instantiating this class, e.g:
PublicKey pub_key = PublicKeyInfo.getPublicKey(key_array);
The given DER encoded ASN1Object represents an already exisiting
PublicKeyInfo
object, and may have been created by calling
getEncoded
.
publicKeyInfo
- the PublicKey as DER encoded byte arrayInvalidKeyException
- if the publicKeyInfo cannot be parsedpublic ASN1Object toASN1Object()
toASN1Object
in interface ASN1Type
public boolean equals(Object obj)
equals
in class Object
public int hashCode()
hashCode
in class Object
public byte[] getEncoded()
getEncoded
in interface Key
public String getFormat()
getFormat
in interface Key
public byte[] getFingerprint()
public void writeTo(OutputStream os) throws IOException
os
- the output streamIOException
- if an I/O error occurspublic String toString()
toString
in class Object
|
This Javadoc may contain text parts from Internet Standard specifications (RFC 2459, 3280, 3039, 2560, 1521, 821, 822, 2253, 1319, 1321, ,2630, 2631, 2268, 3058, 2984, 2104, 2144, 2040, 2311, 2279, see copyright note) and RSA Data Security Public-Key Cryptography Standards (PKCS#1,3,5,7,8,9,10,12, see copyright note). | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |