|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--iaik.x509.PublicKeyInfo | +--iaik.security.dh.ESDHPublicKey
This class implements an Ephemeral Static Diffie Hellman public key.
This class extends iaik.x509.PublicKeyInfo
for supporting ESDH public
keys to be used within X.509 certificates .
An ESDH Hellman public key maybe generated using a proper key pair generator, e.g.:
KeyPairGnerator esdh_key_gen = KeyPairGenerator.getInstance("ESDH"); esdh_key_gen.initialize(1024); KeyPair esdh_key_pair = esdh_key_gen.generateKeyPair(); ESDHPublicKey dh_priv_key = (ESDHPublicKey)esdh_key_pair.getPublic();
KeyPairGenerator
,
KeyPair
,
KeyAgreement
,
ESDHPublicKeySpec
,
ESDHPrivateKey
,
ESDHKeyPairGenerator
,
ESDHKeyFactory
,
ESDHParameters
,
ESDHParameterGenerator
,
ESDHKeyAgreement
,
PublicKeyInfo
, Serialized FormFields inherited from class iaik.x509.PublicKeyInfo |
public_key_algorithm |
Fields inherited from interface java.security.PublicKey |
serialVersionUID |
Constructor Summary | |
ESDHPublicKey(ASN1Object obj)
Creates a new ESDHPublicKey from the given ASN.1 object. |
|
ESDHPublicKey(BigInteger y,
ESDHParameterSpec parameters)
Creates a new ESDHPublicKey from public key value and ESDH parameter specification |
|
ESDHPublicKey(byte[] pk)
Creates a new ESDHPublicKey from the given DER encoded byte array. |
|
ESDHPublicKey(ESDHPublicKeySpec keySpec)
Creates a new ESDHPublicKey from the given ESDHPublicKeySpec representing the ESDH public key value y, and the values p, g, q, j (if available) and seed and pgenCounter (if available). |
|
ESDHPublicKey(InputStream is)
Creates a new ESDHPublicKey from an InputStream. |
Method Summary | |
protected void |
decode(byte[] publicKey)
Decodes an ESDHPublicKey, encoded in DER format. |
protected byte[] |
encode()
Returns this ESDH public key as DER encoded ASN.1 object. |
String |
getAlgorithm()
Returns the name of the appertaining algorithm. |
byte[] |
getFingerprint()
Returns the fingerprint of this ESDH public key. |
DHParameterSpec |
getParams()
Returns the key parameters. |
BigInteger |
getY()
Returns the public value y as BigInteger.
|
int |
hashCode()
Returns a hash code for this object. |
String |
toString()
Returns a string that represents the contents of this public key. |
static void |
validatePublicKey(ESDHPublicKey esdhPublicKey)
Validates an ESDH public key. |
Methods inherited from class iaik.x509.PublicKeyInfo |
clone, createPublicKeyInfo, decode, equals, getEncoded, getFormat, getPublicKey, getPublicKey, toASN1Object, writeTo |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.security.Key |
getEncoded, getFormat |
Constructor Detail |
public ESDHPublicKey(BigInteger y, ESDHParameterSpec parameters)
y
- the BigInteger value representing the ESDH public key value yparameters
- the ESDH parameters p (prime modulus), g (base generator),
prime factor q
, the subgroup factor
j
(if available) and the seed seed
and pgenCounter pgenCounter
(if available)
as ESDHParameterSpecpublic ESDHPublicKey(ESDHPublicKeySpec keySpec)
keySpec
- the ESDHPublicKeySpec representing the public key value y
,
the prime modulus p
, the base generator g
,
the subgroup factor j
(if available) and the seed
seed
and pgenCounter pgenCounter
(if available)public ESDHPublicKey(byte[] pk) throws InvalidKeyException
This constructor may be used for parsing an already exisiting
ESDH public key, wrapped into a X.509 PublicKeyInfo
that is supplied as DER encoded byte array.
the
- byte array holding the DER encoded public key infoInvalidKeyException
- if something is wrong with the key encodingpublic ESDHPublicKey(ASN1Object obj) throws InvalidKeyException
PublicKeyInfo
holding the ESDH public key.
obj
- the public key ASN.1 data structureInvalidKeyException
- if something is wrong with the key encodingpublic ESDHPublicKey(InputStream is) throws IOException, InvalidKeyException
This constructor may be used for parsing an already exisiting
ESDH public key, wrapped into a X.509 PublicKeyInfo
that is supplied as DER encoded byte array.
is
- the input stream with the data to be read to initialize the public keyIOException
- if an I/O error occursInvalidKeyException
- if something is wrong with the key encodingMethod Detail |
public static void validatePublicKey(ESDHPublicKey esdhPublicKey) throws InvalidKeyException
esdhPublicKey
- the public key to be validatedInvalidKeyException
- if validation failsprotected void decode(byte[] publicKey) throws InvalidKeyException
From the given DER encoded byte array an ASN.1 object is created and parsed for
the public key value y
and the ESDH parameters prime p
and base g
, prime factor q
, the subgroup factor
j
(if available) and the seed seed
and pgenCounter
pgenCounter
(if available).
This method is protected and typically will not be used by an application. Rather
it is used by the parent X.509 PublicKeyInfo
class for decoding the inherent ESDH public key.
decode
in class PublicKeyInfo
publicKey
- the public key as DER encoded ASN.1 objectInvalidKeyException
- if the given key is not a ESDH public keyprotected byte[] encode()
This method is protected and typically will not be used by an application. Rather
it is used by the parent X.509 PublicKeyInfo
class for encoding the inherent ESDH public key.
encode
in class PublicKeyInfo
public String getAlgorithm()
getAlgorithm
in interface Key
getAlgorithm
in class PublicKeyInfo
public BigInteger getY()
y
as BigInteger.
getY
in interface DHPublicKey
y
as BigIntegerpublic DHParameterSpec getParams()
getParams
in interface DHKey
public byte[] getFingerprint()
getFingerprint
in class PublicKeyInfo
public int hashCode()
hashCode
in class PublicKeyInfo
public String toString()
toString
in class PublicKeyInfo
|
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 |