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

DilithiumEngine

public const int CrhBytes = 64

public const int D = 13

public const int N = 256

public const int PolyT0PackedBytes = 416

public const int PolyT1PackedBytes = 320

public const int Q = 8380417

public const int QInv = 58728449

public const int RootOfUnity = 1753

public const int SeedBytes = 32

public int Beta { get; }

public int CryptoBytes { get; }

public int CryptoPublicKeyBytes { get; }

public int CryptoSecretKeyBytes { get; }

public int Eta { get; }

public int Gamma1 { get; }

public int Gamma2 { get; }

public int K { get; }

public int L { get; }

public int Mode { get; }

public int Omega { get; }

public int PolyEtaPackedBytes { get; }

public int PolyUniformGamma1NBytes { get; }

public int PolyVecHPackedBytes { get; }

public int PolyW1PackedBytes { get; }

public int PolyZPackedBytes { get; }

public Symmetric Symmetric { get; }

public int Tau { 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 Sign(byte[] sig, int siglen, byte[] msg, int mlen, byte[] rho, byte[] key, byte[] tr, byte[] t0, byte[] s1, byte[] s2)

public bool SignOpen(byte[] msg, byte[] sig, int siglen, byte[] rho, byte[] t1)

public void SignSignature(byte[] sig, int siglen, byte[] msg, int msglen, byte[] rho, byte[] key, byte[] tr, byte[] t0Enc, byte[] s1Enc, byte[] s2Enc)

public bool SignVerify(byte[] sig, int siglen, byte[] msg, int msglen, byte[] rho, byte[] encT1)