Class KeyPairGeneratorSpi
- java.lang.Object
-
- java.security.KeyPairGeneratorSpi
-
- org.bouncycastle.jcajce.provider.asymmetric.compositekem.KeyPairGeneratorSpi
-
- Direct Known Subclasses:
KeyPairGeneratorSpi.MLKEM1024_ECDH_BP384_SHA3_256,KeyPairGeneratorSpi.MLKEM1024_ECDH_P384_SHA3_256,KeyPairGeneratorSpi.MLKEM1024_ECDH_P521_SHA3_256,KeyPairGeneratorSpi.MLKEM1024_RSA3072_SHA3_256,KeyPairGeneratorSpi.MLKEM1024_X448_SHA3_256,KeyPairGeneratorSpi.MLKEM768_ECDH_BP256_SHA3_256,KeyPairGeneratorSpi.MLKEM768_ECDH_P256_SHA3_256,KeyPairGeneratorSpi.MLKEM768_ECDH_P384_SHA3_256,KeyPairGeneratorSpi.MLKEM768_RSA2048_SHA3_256,KeyPairGeneratorSpi.MLKEM768_RSA3072_SHA3_256,KeyPairGeneratorSpi.MLKEM768_RSA4096_SHA3_256,KeyPairGeneratorSpi.MLKEM768_X25519_SHA3_256
public class KeyPairGeneratorSpi extends java.security.KeyPairGeneratorSpiKeyPairGenerator for Composite ML-KEM (draft-ietf-lamps-pq-composite-kem). The concrete composite is selected by the subclasses at the end of this file. The generated keys are aCompositePublicKey/CompositePrivateKeypair whose components are, in order, the ML-KEM key and the traditional (RSA / ECDH / X25519 / X448) key.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classKeyPairGeneratorSpi.MLKEM1024_ECDH_BP384_SHA3_256static classKeyPairGeneratorSpi.MLKEM1024_ECDH_P384_SHA3_256static classKeyPairGeneratorSpi.MLKEM1024_ECDH_P521_SHA3_256static classKeyPairGeneratorSpi.MLKEM1024_RSA3072_SHA3_256static classKeyPairGeneratorSpi.MLKEM1024_X448_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_ECDH_BP256_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_ECDH_P256_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_ECDH_P384_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_RSA2048_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_RSA3072_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_RSA4096_SHA3_256static classKeyPairGeneratorSpi.MLKEM768_X25519_SHA3_256
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.security.KeyPairgenerateKeyPair()voidinitialize(int keySize, java.security.SecureRandom random)There is no notion of a key size for composite KEMs - the parameter set is fixed by the algorithm.voidinitialize(java.security.spec.AlgorithmParameterSpec paramSpec, java.security.SecureRandom secureRandom)A custom AlgorithmParameterSpec is not supported - the composite parameter set is determined by the algorithm name.
-
-
-
Method Detail
-
initialize
public void initialize(int keySize, java.security.SecureRandom random)There is no notion of a key size for composite KEMs - the parameter set is fixed by the algorithm. Useinitialize(AlgorithmParameterSpec, SecureRandom)(with a null spec) only to supply a custom SecureRandom.- Specified by:
initializein classjava.security.KeyPairGeneratorSpi
-
initialize
public void initialize(java.security.spec.AlgorithmParameterSpec paramSpec, java.security.SecureRandom secureRandom) throws java.security.InvalidAlgorithmParameterExceptionA custom AlgorithmParameterSpec is not supported - the composite parameter set is determined by the algorithm name. This method only serves to set a custom SecureRandom on the component generators.- Overrides:
initializein classjava.security.KeyPairGeneratorSpi- Parameters:
paramSpec- must be null.secureRandom- a SecureRandom used by the component key generators.- Throws:
java.security.InvalidAlgorithmParameterException
-
generateKeyPair
public java.security.KeyPair generateKeyPair()
- Specified by:
generateKeyPairin classjava.security.KeyPairGeneratorSpi
-
-