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

Org.BouncyCastle.Crypto.Digests.KeccakDigest

public class KeccakDigest : IDigest, IMemoable
Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
namespace Org.BouncyCastle.Crypto.Digests { public class KeccakDigest : IDigest, IMemoable { protected byte[] dataQueue; protected int rate; protected int bitsInQueue; protected bool squeezing; public virtual string AlgorithmName { get; } public KeccakDigest(); public KeccakDigest(int bitLength); public KeccakDigest(KeccakDigest source); public virtual int GetDigestSize(); public virtual void Update(byte input); public virtual void BlockUpdate(byte[] input, int inOff, int len); public virtual int DoFinal(byte[] output, int outOff); protected virtual int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits); public virtual void Reset(); public virtual int GetByteLength(); protected void Absorb(byte data); protected void Absorb(byte[] data, int off, int len); protected void AbsorbBits(int data, int bits); protected void Squeeze(byte[] output, int offset, long outputLength); public virtual IMemoable Copy(); public virtual void Reset(IMemoable other); } }