Package org.bouncycastle.pqc.crypto.mayo
Class MayoKeyPairGenerator
- java.lang.Object
-
- org.bouncycastle.pqc.crypto.mayo.MayoKeyPairGenerator
-
- All Implemented Interfaces:
AsymmetricCipherKeyPairGenerator
public class MayoKeyPairGenerator extends java.lang.Object implements AsymmetricCipherKeyPairGenerator
Implementation of the MAYO asymmetric key pair generator following the MAYO signature scheme specifications.This generator produces
MayoPublicKeyParametersandMayoPrivateKeyParametersbased on the MAYO algorithm parameters. The implementation follows the specification defined in the official MAYO documentation and reference implementation.References:
-
-
Constructor Summary
Constructors Constructor Description MayoKeyPairGenerator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AsymmetricCipherKeyPairgenerateKeyPair()Generates a new asymmetric key pair following the MAYO algorithm specifications.voidinit(KeyGenerationParameters param)intialise the key pair generator.
-
-
-
Method Detail
-
init
public void init(KeyGenerationParameters param)
Description copied from interface:AsymmetricCipherKeyPairGeneratorintialise the key pair generator.- Specified by:
initin interfaceAsymmetricCipherKeyPairGenerator- Parameters:
param- the parameters the key pair is to be initialised with.
-
generateKeyPair
public AsymmetricCipherKeyPair generateKeyPair()
Generates a new asymmetric key pair following the MAYO algorithm specifications.The key generation process follows these steps:
- Initializes parameter dimensions from
MayoParameters - Generates secret key seed using a secure random generator
- Derives public key seed using SHAKE-256
- Expands matrix parameters P1 and P2
- Performs GF(16) matrix operations for key material generation
- Assembles and packages the public key components
- Securely clears temporary buffers containing sensitive data
- Specified by:
generateKeyPairin interfaceAsymmetricCipherKeyPairGenerator- Returns:
- A valid MAYO key pair containing public and private key parameters
- Initializes parameter dimensions from
-
-