Org.BouncyCastle.Pqc.Crypto.Crystals.Dilithium.DilithiumEngine
class DilithiumEngine
namespace Org.BouncyCastle.Pqc.Crypto.Crystals.Dilithium
{
internal class DilithiumEngine
{
public const int N = 256;
public const int Q = 8380417;
public const int QInv = 58728449;
public const int D = 13;
public const int RootOfUnity = 1753;
public const int SeedBytes = 32;
public const int CrhBytes = 64;
public const int RndBytes = 32;
public const int TrBytes = 64;
public const int PolyT1PackedBytes = 320;
public const int PolyT0PackedBytes = 416;
public int Mode { get; }
public int K { get; }
public int L { get; }
public int Eta { get; }
public int Tau { get; }
public int Beta { get; }
public int Gamma1 { get; }
public int Gamma2 { get; }
public int Omega { get; }
public int CTilde { get; }
public int PolyVecHPackedBytes { get; }
public int PolyZPackedBytes { get; }
public int PolyW1PackedBytes { get; }
public int PolyEtaPackedBytes { get; }
public int CryptoPublicKeyBytes { get; }
public int CryptoSecretKeyBytes { get; }
public int CryptoBytes { get; }
public int PolyUniformGamma1NBytes { get; }
public Symmetric Symmetric { get; }
public DilithiumEngine(int mode, SecureRandom random, bool usingAes);
public void GenerateKeyPair(out byte[] rho, out byte[] key, out byte[] tr, out byte[] s1_, out byte[] s2_, out byte[] t0_, out byte[] encT1);
public void SignSignature(byte[] sig, int siglen, byte[] msg, int msglen, byte[] rho, byte[] key, byte[] tr, byte[] t0Enc, byte[] s1Enc, byte[] s2Enc);
public void Sign(byte[] sig, int siglen, byte[] msg, int mlen, byte[] rho, byte[] key, byte[] tr, byte[] t0, byte[] s1, byte[] s2);
public bool SignVerify(byte[] sig, int siglen, byte[] msg, int msglen, byte[] rho, byte[] encT1);
public bool SignOpen(byte[] msg, byte[] sig, int siglen, byte[] rho, byte[] t1);
}
}