Interface AlgorithmKeySpec

All Known Implementing Classes:
AesKeyGenSpec, AesKeyImportSpec, BikeKeyGenSpec, BikePrivateKeySpec, BikePublicKeySpec, ChaChaKeyGenSpec, ChaChaKeyImportSpec, CmceKeyGenSpec, CmcePrivateKeySpec, CmcePublicKeySpec, DhPrivateKeySpec, DhPublicKeySpec, DhSpec, EcdhCurveSpec, EcdsaCurveSpec, EcdsaPrivateKeySpec, EcdsaPublicKeySpec, Ed25519KeyGenSpec, Ed25519PrivateKeySpec, Ed25519PublicKeySpec, Ed448KeyGenSpec, Ed448PrivateKeySpec, Ed448PublicKeySpec, ElgamalKeyGenSpec, ElgamalParamSpec, ElgamalPrivateKeySpec, ElgamalPublicKeySpec, FrodoKeyGenSpec, FrodoPrivateKeySpec, FrodoPublicKeySpec, HmacKeyGenSpec, HmacKeyImportSpec, HqcKeyGenSpec, HqcPrivateKeySpec, HqcPublicKeySpec, KyberKeyGenSpec, KyberPrivateKeySpec, KyberPublicKeySpec, LmsKeyGenSpec, LmsPrivateKeySpec, LmsPublicKeySpec, MldsaKeyGenSpec, MldsaPrivateKeySpec, MldsaPublicKeySpec, NtruKeyGenSpec, NtrulPrimeKeyGenSpec, NtrulPrimePrivateKeySpec, NtrulPrimePublicKeySpec, NtruPrivateKeySpec, NtruPublicKeySpec, RsaKeyGenSpec, RsaPrivateKeySpec, RsaPublicKeySpec, SaberKeyGenSpec, SaberPrivateKeySpec, SaberPublicKeySpec, SlhDsaKeyGenSpec, SlhDsaPrivateKeySpec, SlhDsaPublicKeySpec, SntruPrimeKeyGenSpec, SntruPrimePrivateKeySpec, SntruPrimePublicKeySpec, SphincsPlusKeyGenSpec, SphincsPlusPrivateKeySpec, SphincsPlusPublicKeySpec, XdhPrivateKeySpec, XdhPublicKeySpec, XdhSpec, XmssKeyGenSpec, XmssPrivateKeySpec, XmssPublicKeySpec, XWingKeyGenSpec, XWingPrivateKeySpec, XWingPublicKeySpec

public interface AlgorithmKeySpec
Marker interface for algorithm-specific key specifications.

Implementations carry the parameters required to construct or validate a key for a specific algorithm family (e.g., AES, ChaCha20, HMAC, X25519). Typical fields include key size, algorithm identifier, or the raw key material to be imported.

Design

  • Separates algorithm parameters from key builders such as operation-specific key generator or importer.
  • Provides a type-safe way to pass algorithm requirements around instead of raw integers or opaque byte arrays.
  • Allows higher layers to work generically with AlgorithmKeySpec while still permitting algorithm-specific extensions.

Usage

Applications never implement this interface directly. Instead, use provided spec classes such as AesKeySpec, ChaChaKeySpec, etc. Libraries may extend it when introducing new algorithm families.

Thread safety: Implementations should be immutable and serializable only if necessary for configuration. Raw key material should be handled with care to avoid accidental exposure.

Since:
1.0