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

Org.BouncyCastle.Math.Raw.Nat256

static class Nat256
namespace Org.BouncyCastle.Math.Raw { internal static class Nat256 { public static uint Add(uint[] x, uint[] y, uint[] z); public static uint Add(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static uint AddBothTo(uint[] x, uint[] y, uint[] z); public static uint AddBothTo(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static uint AddTo(uint[] x, uint[] z, uint cIn); public static uint AddTo(uint[] x, int xOff, uint[] z, int zOff, uint cIn); public static uint AddToEachOther(uint[] u, int uOff, uint[] v, int vOff); public static void Copy(uint[] x, uint[] z); public static void Copy(uint[] x, int xOff, uint[] z, int zOff); public static void Copy64(ulong[] x, ulong[] z); public static void Copy64(ulong[] x, int xOff, ulong[] z, int zOff); public static uint[] Create(); public static ulong[] Create64(); public static uint[] CreateExt(); public static ulong[] CreateExt64(); public static bool Diff(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static bool Eq(uint[] x, uint[] y); public static bool Eq64(ulong[] x, ulong[] y); public static uint GetBit(uint[] x, int bit); public static bool Gte(uint[] x, uint[] y); public static bool Gte(uint[] x, int xOff, uint[] y, int yOff); public static bool IsOne(uint[] x); public static bool IsOne64(ulong[] x); public static bool IsZero(uint[] x); public static bool IsZero64(ulong[] x); public static void Mul(uint[] x, uint[] y, uint[] zz); public static void Mul(uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff); public static void Mul128(uint[] x, uint[] y128, uint[] zz); public static uint MulAddTo(uint[] x, uint[] y, uint[] zz); public static uint MulAddTo(uint[] x, int xOff, uint[] y, int yOff, uint[] zz, int zzOff); public static ulong Mul33Add(uint w, uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static uint MulByWord(uint x, uint[] z); public static uint MulByWordAddTo(uint x, uint[] y, uint[] z); public static uint MulWordAddTo(uint x, uint[] y, int yOff, uint[] z, int zOff); public static uint Mul33DWordAdd(uint x, ulong y, uint[] z, int zOff); public static uint Mul33WordAdd(uint x, uint y, uint[] z, int zOff); public static uint MulWordDwordAdd(uint x, ulong y, uint[] z, int zOff); public static uint MulWord(uint x, uint[] y, uint[] z, int zOff); public static void Square(uint[] x, uint[] zz); public static void Square(uint[] x, int xOff, uint[] zz, int zzOff); public static int Sub(uint[] x, uint[] y, uint[] z); public static int Sub(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static int SubBothFrom(uint[] x, uint[] y, uint[] z); public static int SubFrom(uint[] x, uint[] z, int cIn); public static int SubFrom(uint[] x, int xOff, uint[] z, int zOff, int cIn); public static BigInteger ToBigInteger(uint[] x); public static BigInteger ToBigInteger64(ulong[] x); public static void Xor(uint[] x, int xOff, uint[] y, int yOff, uint[] z, int zOff); public static void Zero(uint[] z); } }