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

LmsKeyPairGenerator

using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Security; namespace Org.BouncyCastle.Pqc.Crypto.Lms { public sealed class LmsKeyPairGenerator : IAsymmetricCipherKeyPairGenerator { private LmsKeyGenerationParameters m_parameters; public void Init(KeyGenerationParameters parameters) { m_parameters = (LmsKeyGenerationParameters)parameters; } public AsymmetricCipherKeyPair GenerateKeyPair() { SecureRandom random = m_parameters.Random; byte[] nextBytes = SecureRandom.GetNextBytes(random, 16); LmsParameters lmsParameters = m_parameters.LmsParameters; LMSigParameters lMSigParameters = lmsParameters.LMSigParameters; LMOtsParameters lMOtsParameters = lmsParameters.LMOtsParameters; byte[] nextBytes2 = SecureRandom.GetNextBytes(random, lMSigParameters.M); LmsPrivateKeyParameters lmsPrivateKeyParameters = Lms.GenerateKeys(lMSigParameters, lMOtsParameters, 0, nextBytes, nextBytes2); return new AsymmetricCipherKeyPair(lmsPrivateKeyParameters.GetPublicKey(), lmsPrivateKeyParameters); } } }