|
||||||||||
| 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 the PKIX internet draft
draft-ietf-pkix-ipki-part1-07:
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 Form| Field 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 |
| Fields inherited from interface java.security.Key |
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(java.io.InputStream is)
Creates a new PublicKeyInfo from an InputStream. |
| Method Summary | |
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(java.lang.Object obj)
Compares this public key to another public key. |
abstract java.lang.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. |
java.lang.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. |
ASN1Object |
toASN1Object()
Returns this PublicKeyInfo as ASN1Object. |
java.lang.String |
toString()
Returns a string that represents the contents of this public key. |
void |
writeTo(java.io.OutputStream os)
Writes this public key to an output stream. |
| Methods inherited from class java.lang.Object |
clone,
finalize,
getClass,
hashCode,
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 ASN1Object
public PublicKeyInfo(java.io.InputStream is)
throws InvalidKeyException,
java.io.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 read
public 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 PublicKeyInfo| Method Detail |
protected abstract void decode(byte[] publicKey)
throws InvalidKeyException
publicKey - the public key as DER encoded ASN.1 objectprotected abstract byte[] encode()
public abstract java.lang.String getAlgorithm()
public void decode(ASN1Object obj)
throws CodingException
PublicKeyInfo object
for parsing the internal structure.
This method implements the ASN1Type interface.
obj - the PublicKeyInfo as ASN1Objectprotected 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 in the PKIX internet draft draft-ietf-pkix-ipki-part1-07:
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 ASN1Object
public 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 arraypublic ASN1Object toASN1Object()
public boolean equals(java.lang.Object obj)
public byte[] getEncoded()
public java.lang.String getFormat()
public byte[] getFingerprint()
public void writeTo(java.io.OutputStream os)
throws java.io.IOException
os - the output streampublic java.lang.String toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||