Class Ed448Algorithm
Ed448 Digital Signature Algorithm
Implementation of the Edwards-curve Digital Signature Algorithm over the Curve448 curve, commonly referred to as Ed448.Ed448 is a modern elliptic curve signature scheme standardized in RFC 8032. It provides high security margins (224-bit classical strength) and is designed for simplicity, determinism, and resilience against common implementation pitfalls such as malleability.
Roles
KeyUsage.SIGN: Contexts that sign messages using a private key, producing fixed-length Ed448 signatures.KeyUsage.VERIFY: Contexts that verify Ed448 signatures using the corresponding public key.
Key material
Ed448KeyGenSpec: Generation of new key pairs with defined parameters.Ed448PublicKeySpec: Encoded form of Ed448 public keys (X.509 format).Ed448PrivateKeySpec: Encoded form of Ed448 private keys (PKCS#8 format).
Thread-safety
Instances of this class are immutable and safe to reuse across threads. Context objects created through capabilities are not necessarily thread-safe.// Example: generate a key pair and sign data
CryptoAlgorithm ed448 = new Ed448Algorithm();
KeyPair kp = ed448.asymmetricKeyPairGenerator(Ed448KeyGenSpec.class)
.generateKeyPair(Ed448KeyGenSpec.defaultSpec());
SignatureContext signer = ed448.createContext(KeyUsage.SIGN, kp.getPrivate(), null);
byte[] sig = signer.sign(data);
SignatureContext verifier = ed448.createContext(KeyUsage.VERIFY, kp.getPublic(), null);
boolean ok = verifier.verify(data, sig);
- Since:
- 1.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionList<ParameterSetDescriptor<? extends AlgorithmKeySpec>> Returns the discoverable parameter sets (or parameterized templates) supported by this algorithm.Methods inherited from class AbstractCryptoAlgorithm
capabilityMethods inherited from class CryptoAlgorithm
addCapability, asymmetricKeyPairGenerator, bindContext, createContext, displayName, id, keyOperations, listCapabilities, priority, privateKeyImporter, providerName, publicKeyImporter, registerAsymmetricKeyPairGenerator, registerPrivateKeyImporter, registerPublicKeyImporter, registerSymmetricKeyGenerator, registerSymmetricKeyImporter, requiresStatefulSigning, roles, supports, symmetricKeyGenerator, symmetricKeyImporter
-
Constructor Details
-
Ed448Algorithm
public Ed448Algorithm()Constructs and wires the Ed448 algorithm definition.The constructor registers:
- Roles:
KeyUsage.SIGNusingSignatureContextwith aPrivateKeyandVoidSpec(no additional parameters).KeyUsage.VERIFYusingSignatureContextwith aPublicKeyandVoidSpec.
- Asymmetric key builders:
Ed448KeyGenSpecviaEd448KeyGenBuilder, defaulting toEd448KeyGenSpec.defaultSpec().Ed448PublicKeySpecviaEd448PublicKeyBuilder.Ed448PrivateKeySpecviaEd448PrivateKeyBuilder.
No exceptions are thrown by this constructor. Any provider initialization needed for signing or verification is deferred to the creation of
SignatureContextinstances.// Example: instantiate and obtain a signer CryptoAlgorithm ed448 = new Ed448Algorithm(); SignatureContext signer = ed448.createContext(KeyUsage.SIGN, privateKey, null); - Roles:
-
-
Method Details
-
parameterSets
Description copied from class:CryptoAlgorithmReturns the discoverable parameter sets (or parameterized templates) supported by this algorithm.Callers (UIs, provisioning tools, policy engines) use this list to present users with valid, named key-generation options without prior knowledge of the concrete algorithm. Each entry is either a pre-built
ParameterSetDescriptor.Concrete(ready spec) or aParameterSetDescriptor.Template(user-supplied arguments produce the spec).The default implementation returns an empty list. Algorithms with finite, enumerable parameter sets should override this method. Overrides must return immutable lists in stable order, with unique nonblank descriptor identifiers. Registry loading validates a snapshot; external providers remain responsible for maintaining the contract on subsequent calls. Implementations may use
ParameterSetDescriptor.snapshot(List)to validate and copy their list.- Overrides:
parameterSetsin classCryptoAlgorithm- Returns:
- immutable list of parameter set descriptors; never
null
-