Package zeroecho.core.alg.common.eddsa
package zeroecho.core.alg.common.eddsa
EdDSA (Edwards-curve Digital Signature Algorithm) key builders and contexts.
This package provides common infrastructure for Ed25519 and Ed448 algorithm support. It focuses on key-pair generation, importing encoded keys, and wiring EdDSA variants into the generic signature context API.
Scope and responsibilities
- Provide abstract builders for EdDSA key-pair generation and encoded key import.
- Offer an abstract signature context that binds an EdDSA variant to the generic JCA-based signature context, with fixed tag lengths.
- Keep provider-specific concerns encapsulated in small, composable building blocks.
Components
- Key generation:
AbstractEdDSAKeyGenBuilderintegrates withKeyPairGeneratorto produce new Ed25519/Ed448 key pairs. - Private key import:
AbstractEncodedPrivateKeyBuilderreconstructs private keys from PKCS#8 encodings viaKeyFactory. - Public key import:
AbstractEncodedPublicKeyBuilderreconstructs public keys from X.509 encodings viaKeyFactory. - Signature contexts:
CommonEdDSASignatureContextdelegates all operations to a generic JCA-backed signature adapter, enforcing a fixed tag length for the selected EdDSA variant.
Design notes
- Builders are stateless and safe for concurrent use; each import or generation creates a fresh JCA engine internally.
- Import methods intentionally throw for unsupported directions (e.g., public import in the private builder) to keep responsibilities clear.
- Signature contexts are not thread-safe; they are expected to be used for a single signing or verification stream at a time.
- Since:
- 1.0
-
ClassesClassDescriptionAbstractEdDSAKeyGenBuilder<S extends AlgorithmKeySpec>Abstract EdDSA Key-Pair BuilderAbstractEncodedPrivateKeyBuilder<S extends AlgorithmKeySpec>Abstract EdDSA Encoded Private Key BuilderAbstractEncodedPublicKeyBuilder<S extends AlgorithmKeySpec>Abstract EdDSA Encoded Public Key BuilderBase class for EdDSA signature contexts that adapts a JCA
Signaturefor streaming sign and verify.