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

SlhDsaParameterSet

public sealed class SlhDsaParameterSet
using Org.BouncyCastle.Pqc.Crypto.SphincsPlus; using Org.BouncyCastle.Utilities.Collections; using System; using System.Collections.Generic; namespace Org.BouncyCastle.Crypto.Parameters { public sealed class SlhDsaParameterSet { public static readonly SlhDsaParameterSet slh_dsa_sha2_128s = new SlhDsaParameterSet("SLH-DSA-SHA2-128s", new Sha2EngineProvider(16, 16, 7, 12, 14, 63)); public static readonly SlhDsaParameterSet slh_dsa_shake_128s = new SlhDsaParameterSet("SLH-DSA-SHAKE-128s", new Shake256EngineProvider(16, 16, 7, 12, 14, 63)); public static readonly SlhDsaParameterSet slh_dsa_sha2_128f = new SlhDsaParameterSet("SLH-DSA-SHA2-128f", new Sha2EngineProvider(16, 16, 22, 6, 33, 66)); public static readonly SlhDsaParameterSet slh_dsa_shake_128f = new SlhDsaParameterSet("SLH-DSA-SHAKE-128f", new Shake256EngineProvider(16, 16, 22, 6, 33, 66)); public static readonly SlhDsaParameterSet slh_dsa_sha2_192s = new SlhDsaParameterSet("SLH-DSA-SHA2-192s", new Sha2EngineProvider(24, 16, 7, 14, 17, 63)); public static readonly SlhDsaParameterSet slh_dsa_shake_192s = new SlhDsaParameterSet("SLH-DSA-SHAKE-192s", new Shake256EngineProvider(24, 16, 7, 14, 17, 63)); public static readonly SlhDsaParameterSet slh_dsa_sha2_192f = new SlhDsaParameterSet("SLH-DSA-SHA2-192f", new Sha2EngineProvider(24, 16, 22, 8, 33, 66)); public static readonly SlhDsaParameterSet slh_dsa_shake_192f = new SlhDsaParameterSet("SLH-DSA-SHAKE-192f", new Shake256EngineProvider(24, 16, 22, 8, 33, 66)); public static readonly SlhDsaParameterSet slh_dsa_sha2_256s = new SlhDsaParameterSet("SLH-DSA-SHA2-256s", new Sha2EngineProvider(32, 16, 8, 14, 22, 64)); public static readonly SlhDsaParameterSet slh_dsa_shake_256s = new SlhDsaParameterSet("SLH-DSA-SHAKE-256s", new Shake256EngineProvider(32, 16, 8, 14, 22, 64)); public static readonly SlhDsaParameterSet slh_dsa_sha2_256f = new SlhDsaParameterSet("SLH-DSA-SHA2-256f", new Sha2EngineProvider(32, 16, 17, 9, 35, 68)); public static readonly SlhDsaParameterSet slh_dsa_shake_256f = new SlhDsaParameterSet("SLH-DSA-SHAKE-256f", new Shake256EngineProvider(32, 16, 17, 9, 35, 68)); private static readonly Dictionary<string, SlhDsaParameterSet> ByName = new Dictionary<string, SlhDsaParameterSet> { { slh_dsa_sha2_128f.Name, slh_dsa_sha2_128f }, { slh_dsa_sha2_128s.Name, slh_dsa_sha2_128s }, { slh_dsa_sha2_192f.Name, slh_dsa_sha2_192f }, { slh_dsa_sha2_192s.Name, slh_dsa_sha2_192s }, { slh_dsa_sha2_256f.Name, slh_dsa_sha2_256f }, { slh_dsa_sha2_256s.Name, slh_dsa_sha2_256s }, { slh_dsa_shake_128f.Name, slh_dsa_shake_128f }, { slh_dsa_shake_128s.Name, slh_dsa_shake_128s }, { slh_dsa_shake_192f.Name, slh_dsa_shake_192f }, { slh_dsa_shake_192s.Name, slh_dsa_shake_192s }, { slh_dsa_shake_256f.Name, slh_dsa_shake_256f }, { slh_dsa_shake_256s.Name, slh_dsa_shake_256s } }; private readonly string m_name; private readonly ISphincsPlusEngineProvider m_engineProvider; public string Name => m_name; internal int PrivateKeyLength => 4 * N; internal int PublicKeyLength => 2 * N; internal int N => m_engineProvider.N; internal static SlhDsaParameterSet FromName(string name) { return CollectionUtilities.GetValueOrNull(ByName, name); } private SlhDsaParameterSet(string name, ISphincsPlusEngineProvider engineProvider) { if (name == null) throw new ArgumentNullException("name"); m_name = name; m_engineProvider = engineProvider; } public override string ToString() { return Name; } internal SphincsPlusEngine GetEngine() { return m_engineProvider.Get(); } } }