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;
}
}
}