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

Org.BouncyCastle.Crypto.Digests.TupleHash

public class TupleHash : IXof, IDigest
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(); } }