DilithiumKeyPairGenerator
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Security;
using System;
namespace Org.BouncyCastle.Pqc.Crypto.Crystals.Dilithium
{
[Obsolete("Use ML-DSA instead")]
public class DilithiumKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
{
private SecureRandom random;
private DilithiumParameters parameters;
public void Init(KeyGenerationParameters param)
{
random = param.Random;
parameters = ((DilithiumKeyGenerationParameters)param).Parameters;
}
public AsymmetricCipherKeyPair GenerateKeyPair()
{
parameters.GetEngine(random).GenerateKeyPair(true, out byte[] rho, out byte[] k, out byte[] tr, out byte[] s, out byte[] s2, out byte[] t, out byte[] encT, out byte[] _);
DilithiumPublicKeyParameters publicParameter = new DilithiumPublicKeyParameters(parameters, rho, encT);
DilithiumPrivateKeyParameters privateParameter = new DilithiumPrivateKeyParameters(parameters, rho, k, tr, s, s2, t, encT);
return new AsymmetricCipherKeyPair(publicParameter, privateParameter);
}
}
}