All Packages Class Hierarchy This Package Previous Next Index
Class netscape.security.x509.X509Key
netscape.security.x509.X509Key
- public class X509Key
Holds an X.509 key, for example a public key found in an X.509
certificate. Includes a description of the algorithm to be used
with the key; these keys normally are used as
"SubjectPublicKeyInfo".
While this class can represent any kind of X.509 key, it may be
desirable to provide subclasses which understand how to parse keying
data. For example, RSA public keys have two members, one for the
public modulus and one for the prime exponent. If such a class is
provided, it is used when parsing X.509 keys. If one is not provided,
the key still parses correctly.
-
algid
-
-
encodedKey
-
-
key
-
-
X509Key()
- Default constructor.
-
X509Key(AlgorithmId, byte[])
-
-
decode(byte[])
-
-
decode(InputStream)
-
Initialize an X509Key object from an input stream.
-
encode()
- Returns the DER-encoded form of the key as a byte array.
-
encode(DerOutputStream)
- Encode SubjectPublicKeyInfo sequence on the DER output stream.
-
equals(Object)
-
-
getAlgorithm()
- Returns the algorithm to be used with this key.
-
getAlgorithmId()
- Returns the algorithm ID to be used with this key.
-
getEncoded()
- Returns the DER-encoded form of the key as a byte array.
-
getFormat()
- Returns the format for this key: "X.509"
-
getKey()
- Returns the raw key as a byte array
-
hashCode()
- Calculates a hash code value for the object.
-
parse(DerValue)
- Construct X.509 subject public key from a DER value.
-
parseKeyBits()
- Parse the key bits.
-
toString()
-
algid
protected AlgorithmId algid
key
protected byte key[]
encodedKey
protected byte encodedKey[]
X509Key
public X509Key()
- Default constructor. The key constructed must have its key
and algorithm initialized before it may be used, for example
by using
decode.
X509Key
public X509Key(AlgorithmId algid,
byte key[]) throws InvalidKeyException
parse
public static X509Key parse(DerValue in) throws IOException
- Construct X.509 subject public key from a DER value. If
the runtime environment is configured with a specific class for
this kind of key, a subclass is returned. Otherwise, a generic
X509Key object is returned.
This mechanism gurantees that keys (and algorithms) may be
freely manipulated and transferred, without risk of losing
information. Also, when a key (or algorithm) needs some special
handling, that specific need can be accomodated.
- Parameters:
- in - the DER-encoded SubjectPublicKeyInfo value
- Throws: IOException
- on data format errors
parseKeyBits
protected void parseKeyBits() throws IOException, InvalidKeyException
- Parse the key bits. This may be redefined by subclasses to take
advantage of structure within the key. For example, RSA public
keys encapsulate two unsigned integers (modulus and exponent) as
DER values within the
key bits; Diffie-Hellman and
DSS/DSA keys encapsulate a single unsigned integer.
This function is called when creating X.509 SubjectPublicKeyInfo
values using the X509Key member functions, such as parse
and decode.
- Throws: IOException
- on parsing errors.
- Throws: InvalidKeyException
- on invalid key encodings.
getAlgorithm
public String getAlgorithm()
- Returns the algorithm to be used with this key.
getAlgorithmId
public AlgorithmId getAlgorithmId()
- Returns the algorithm ID to be used with this key.
encode
public final void encode(DerOutputStream out) throws IOException
- Encode SubjectPublicKeyInfo sequence on the DER output stream.
- Throws: IOException
- on encoding errors.
getEncoded
public synchronized byte[] getEncoded()
- Returns the DER-encoded form of the key as a byte array.
getFormat
public String getFormat()
- Returns the format for this key: "X.509"
getKey
public byte[] getKey()
- Returns the raw key as a byte array
encode
public byte[] encode() throws InvalidKeyException
- Returns the DER-encoded form of the key as a byte array.
- Throws: InvalidKeyException
- on encoding errors.
toString
public String toString()
decode
public void decode(InputStream in) throws InvalidKeyException
- Initialize an X509Key object from an input stream. The data on that
input stream must be encoded using DER, obeying the X.509
SubjectPublicKeyInfo format. That is, the data is a
sequence consisting of an algorithm ID and a bit string which holds
the key. (That bit string is often used to encapsulate another DER
encoded sequence.)
Subclasses should not normally redefine this method; they should
instead provide a parseKeyBits method to parse any
fields inside the key member.
The exception to this rule is that since private keys need not
be encoded using the X.509 SubjectPublicKeyInfo format,
private keys may override this method, encode, and
of course getFormat.
- Parameters:
- in - an input stream with a DER-encoded X.509
SubjectPublicKeyInfo value
- Throws: InvalidKeyException
- on parsing errors.
decode
public void decode(byte encodedKey[]) throws InvalidKeyException
equals
public boolean equals(Object object)
hashCode
public int hashCode()
- Calculates a hash code value for the object. Objects
which are equal will also have the same hashcode.
All Packages Class Hierarchy This Package Previous Next Index