Org.BouncyCastle.Crypto.Digests.TupleHash
TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings,
in an unambiguous way with an optional XOF mode.
From NIST Special Publication 800-185 - SHA-3 Derived Functions:cSHAKE, KMAC, TupleHash and ParallelHash
namespace Org.BouncyCastle.Crypto.Digests
{
public class TupleHash : IXof, IDigest
{
public virtual string AlgorithmName { get; }
public TupleHash(int bitLength, byte[] S);
public TupleHash(int bitLength, byte[] S, int outputSize);
public TupleHash(TupleHash original);
public virtual int GetByteLength();
public virtual int GetDigestSize();
public virtual void Update(byte b);
public virtual void BlockUpdate(byte[] inBuf, int inOff, int len);
public virtual int DoFinal(byte[] outBuf, int outOff);
public virtual int OutputFinal(byte[] outBuf, int outOff, int outLen);
public virtual int Output(byte[] outBuf, int outOff, int outLen);
public virtual void Reset();
}
}
namespace Org.BouncyCastle.Math.EC
{
public abstract class ECFieldElement
{
public abstract string FieldName { get; }
public abstract int FieldSize { get; }
public virtual int BitLength { get; }
public virtual bool IsOne { get; }
public virtual bool IsZero { get; }
public abstract BigInteger ToBigInteger();
public abstract ECFieldElement Add(ECFieldElement b);
public abstract ECFieldElement AddOne();
public abstract ECFieldElement Subtract(ECFieldElement b);
public abstract ECFieldElement Multiply(ECFieldElement b);
public abstract ECFieldElement Divide(ECFieldElement b);
public abstract ECFieldElement Negate();
public abstract ECFieldElement Square();
public abstract ECFieldElement Invert();
public abstract ECFieldElement Sqrt();
public virtual ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y);
public virtual ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y);
public virtual ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y);
public virtual ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y);
public virtual ECFieldElement SquarePow(int pow);
public virtual bool TestBitZero();
public virtual bool Equals(ECFieldElement other);
public virtual byte[] GetEncoded();
public virtual int GetEncodedLength();
public virtual void EncodeTo(byte[] buf, int off);
protected ECFieldElement();
}
}