<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

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); } } }