Package net.i2p.crypto.eddsa
Class EdDSAPublicKey
- java.lang.Object
-
- net.i2p.crypto.eddsa.EdDSAPublicKey
-
- All Implemented Interfaces:
Serializable
,Key
,PublicKey
,EdDSAKey
public class EdDSAPublicKey extends Object implements EdDSAKey, PublicKey
An EdDSA public key.For compatibility with older releases, decoding supports both RFC 8410 and an older draft specification.
- Since:
- 0.9.15
- Author:
- str4d
- See Also:
- RFC 8410, Older draft specification, Serialized Form
-
-
Field Summary
-
Fields inherited from interface net.i2p.crypto.eddsa.EdDSAKey
KEY_ALGORITHM
-
-
Constructor Summary
Constructors Constructor Description EdDSAPublicKey(X509EncodedKeySpec spec)
EdDSAPublicKey(EdDSAPublicKeySpec spec)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
GroupElement
getA()
byte[]
getAbyte()
String
getAlgorithm()
byte[]
getEncoded()
Returns the public key in its canonical encoding.String
getFormat()
GroupElement
getNegativeA()
EdDSAParameterSpec
getParams()
int
hashCode()
-
-
-
Constructor Detail
-
EdDSAPublicKey
public EdDSAPublicKey(EdDSAPublicKeySpec spec)
-
EdDSAPublicKey
public EdDSAPublicKey(X509EncodedKeySpec spec) throws InvalidKeySpecException
- Throws:
InvalidKeySpecException
- Since:
- 0.9.25
-
-
Method Detail
-
getAlgorithm
public String getAlgorithm()
- Specified by:
getAlgorithm
in interfaceKey
-
getEncoded
public byte[] getEncoded()
Returns the public key in its canonical encoding.This implements the following specs:
- General encoding: https://tools.ietf.org/html/rfc8410
- Key encoding: https://tools.ietf.org/html/rfc8032
For keys in older formats, decoding and then re-encoding is sufficient to migrate them to the canonical encoding.
Relevant spec quotes:
In the X.509 certificate, the subjectPublicKeyInfo field has the SubjectPublicKeyInfo type, which has the following ASN.1 syntax: SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } For all of the OIDs, the parameters MUST be absent.
id-Ed25519 OBJECT IDENTIFIER ::= { 1 3 101 112 }
- Specified by:
getEncoded
in interfaceKey
- Returns:
- 44 bytes for Ed25519, null for other curves
- Since:
- implemented in 0.9.25
-
getParams
public EdDSAParameterSpec getParams()
-
getA
public GroupElement getA()
-
getNegativeA
public GroupElement getNegativeA()
-
getAbyte
public byte[] getAbyte()
-
-