<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

MLDsaKeyPairGenerator

using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Security; namespace Org.BouncyCastle.Crypto.Generators { public sealed class MLDsaKeyPairGenerator : IAsymmetricCipherKeyPairGenerator { private SecureRandom m_random; private MLDsaParameters m_parameters; public void Init(KeyGenerationParameters parameters) { m_random = parameters.Random; m_parameters = ((MLDsaKeyGenerationParameters)parameters).Parameters; } public AsymmetricCipherKeyPair GenerateKeyPair() { m_parameters.ParameterSet.GetEngine(m_random).GenerateKeyPair(false, out byte[] rho, out byte[] k, out byte[] tr, out byte[] s, out byte[] s2, out byte[] t, out byte[] encT, out byte[] seed); MLDsaPrivateKeyParameters.Format preferredFormat = MLDsaPrivateKeyParameters.Format.SeedAndEncoding; return new AsymmetricCipherKeyPair(new MLDsaPublicKeyParameters(m_parameters, rho, encT), new MLDsaPrivateKeyParameters(m_parameters, rho, k, tr, s, s2, t, encT, seed, preferredFormat)); } } }