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

LMSigParameters

public sealed class LMSigParameters
using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Nist; using Org.BouncyCastle.Utilities.Collections; using System.Collections.Generic; namespace Org.BouncyCastle.Pqc.Crypto.Lms { public sealed class LMSigParameters { public static LMSigParameters lms_sha256_n32_h5 = new LMSigParameters(5, 32, 5, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n32_h10 = new LMSigParameters(6, 32, 10, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n32_h15 = new LMSigParameters(7, 32, 15, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n32_h20 = new LMSigParameters(8, 32, 20, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n32_h25 = new LMSigParameters(9, 32, 25, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n24_h5 = new LMSigParameters(10, 24, 5, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n24_h10 = new LMSigParameters(11, 24, 10, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n24_h15 = new LMSigParameters(12, 24, 15, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n24_h20 = new LMSigParameters(13, 24, 20, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_sha256_n24_h25 = new LMSigParameters(14, 24, 25, NistObjectIdentifiers.IdSha256); public static LMSigParameters lms_shake256_n32_h5 = new LMSigParameters(15, 32, 5, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n32_h10 = new LMSigParameters(16, 32, 10, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n32_h15 = new LMSigParameters(17, 32, 15, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n32_h20 = new LMSigParameters(18, 32, 20, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n32_h25 = new LMSigParameters(19, 32, 25, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n24_h5 = new LMSigParameters(20, 24, 5, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n24_h10 = new LMSigParameters(21, 24, 10, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n24_h15 = new LMSigParameters(22, 24, 15, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n24_h20 = new LMSigParameters(23, 24, 20, NistObjectIdentifiers.IdShake256Len); public static LMSigParameters lms_shake256_n24_h25 = new LMSigParameters(24, 24, 25, NistObjectIdentifiers.IdShake256Len); private static Dictionary<int, LMSigParameters> ParametersByID = new Dictionary<int, LMSigParameters> { { lms_sha256_n32_h5.ID, lms_sha256_n32_h5 }, { lms_sha256_n32_h10.ID, lms_sha256_n32_h10 }, { lms_sha256_n32_h15.ID, lms_sha256_n32_h15 }, { lms_sha256_n32_h20.ID, lms_sha256_n32_h20 }, { lms_sha256_n32_h25.ID, lms_sha256_n32_h25 }, { lms_sha256_n24_h5.ID, lms_sha256_n24_h5 }, { lms_sha256_n24_h10.ID, lms_sha256_n24_h10 }, { lms_sha256_n24_h15.ID, lms_sha256_n24_h15 }, { lms_sha256_n24_h20.ID, lms_sha256_n24_h20 }, { lms_sha256_n24_h25.ID, lms_sha256_n24_h25 }, { lms_shake256_n32_h5.ID, lms_shake256_n32_h5 }, { lms_shake256_n32_h10.ID, lms_shake256_n32_h10 }, { lms_shake256_n32_h15.ID, lms_shake256_n32_h15 }, { lms_shake256_n32_h20.ID, lms_shake256_n32_h20 }, { lms_shake256_n32_h25.ID, lms_shake256_n32_h25 }, { lms_shake256_n24_h5.ID, lms_shake256_n24_h5 }, { lms_shake256_n24_h10.ID, lms_shake256_n24_h10 }, { lms_shake256_n24_h15.ID, lms_shake256_n24_h15 }, { lms_shake256_n24_h20.ID, lms_shake256_n24_h20 }, { lms_shake256_n24_h25.ID, lms_shake256_n24_h25 } }; private readonly int m_id; private readonly int m_m; private readonly int m_h; private readonly DerObjectIdentifier m_digestOid; public DerObjectIdentifier DigestOid => m_digestOid; public int H => m_h; public int ID => m_id; public int M => m_m; public static LMSigParameters GetParametersByID(int id) { return CollectionUtilities.GetValueOrNull(ParametersByID, id); } internal LMSigParameters(int id, int m, int h, DerObjectIdentifier digestOid) { m_id = id; m_m = m; m_h = h; m_digestOid = digestOid; } } }