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

NtruParameters

NTRU cipher parameter sets
using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Pqc.Crypto.Ntru.ParameterSets; namespace Org.BouncyCastle.Pqc.Crypto.Ntru { public sealed class NtruParameters : IKemParameters, ICipherParameters { public static readonly NtruParameters NtruHps2048509 = new NtruParameters("ntruhps2048509", new NtruHps2048509()); public static readonly NtruParameters NtruHps2048677 = new NtruParameters("ntruhps2048677", new NtruHps2048677()); public static readonly NtruParameters NtruHps4096821 = new NtruParameters("ntruhps4096821", new NtruHps4096821()); public static readonly NtruParameters NtruHps40961229 = new NtruParameters("ntruhps40961229", new NtruHps40961229()); public static readonly NtruParameters NtruHrss701 = new NtruParameters("ntruhrss701", new NtruHrss701()); public static readonly NtruParameters NtruHrss1373 = new NtruParameters("ntruhrss1373", new NtruHrss1373()); private readonly string m_name; private readonly NtruParameterSet m_parameterSet; public string Name => m_name; internal NtruParameterSet ParameterSet => m_parameterSet; internal int PrivateKeyLength => ParameterSet.NtruSecretKeyBytes(); internal int PublicKeyLength => ParameterSet.NtruPublicKeyBytes(); public int DefaultKeySize => ParameterSet.SharedKeyBytes * 8; private NtruParameters(string name, NtruParameterSet parameterSet) { m_name = name; m_parameterSet = parameterSet; } } }