Generate bytes using an eXtendable-Output Function (XOF).
public static byte[] Bytes( int numBytes, byte[] message, Xof.Alg xofAlg )
Public Shared Function Bytes ( numBytes As Integer, message As Byte(), xofAlg As Xof.Alg ) As Byte()
// Ref: "SHA-3 XOF Test Vectors for Byte-Oriented Output" // File `SHAKE256VariableOut.rsp` COUNT = 1244 byte[] msg = "6ae23f058f0f2264a18cd609acc26dd4dbc00f5c3ee9e13ecaea2bb5a2f0bb6b".FromHex(); int nbytes = 2000 / 8; // 2000 bits == 250 bytes byte[] b = Xof.Bytes(nbytes, msg, Xof.Alg.Shake256); Console.WriteLine(b.ToHex()); /* B9B92544FB25CFE4EC6FE437D8DA2BBE 00F7BDAFACE3DE97B8775A44D753C3AD CA3F7C6F183CC8647E229070439AA953 9AE1F8F13470C9D3527FFFDEEF6C94F9 F0520FF0C1BA8B16E16014E1AF43AC6D 94CB7929188CCE9D7B02F81A2746F52B A16988E5F6D93298D778DFE05EA0EF25 6AE3728643CE3E29C794A0370E9CA6A8 BF3E7A41E86770676AC106F7AE79E670 27CE7B7B38EFE27D253A52B5CB54D6EB 4367A87736ED48CB45EF27F42683DA14 0ED3295DFC575D3EA38CFC2A3697CC92 864305407369B4ABAC054E497378DD9F D0C4B352EA3185CE1178B3DC1599DF69 DB29259D4735320C8E7D33E8226620C9 A1D22761F1D35BDFF79A*/ // Using MGF1-SHA-256. From SPHINCS+ test vectors r.3 int nbytes = 34; byte[] msg = "3b5c056af3ebba70d4c805380420585562b32410a778f558ff951252407647e3".FromHex(); byte[] b = Xof.Bytes(nbytes, msg, Xof.Alg.Mgf1_Sha256); Console.WriteLine(b.ToHex()); // 5B7EB772AECF04C74AF07D9D9C1C1F8D3A90DCDA00D5BAB1DC28DAECDC86EB87611
VB6/C equivalent: XOF_Bytes