Click or drag to resize

XofBytes Method

Generate bytes using an eXtendable-Output Function (XOF).

Namespace: CryptoSysPKI
Assembly: diCrSysPKINet (in diCrSysPKINet.dll) Version: 23.0.0.25611 (23.0.0.0)
Syntax
public static byte[] Bytes(
	int numBytes,
	byte[] message,
	XofAlg xofAlg
)

Parameters

numBytes  Int32
Required number of output bytes.
message  Byte
Input message data.
xofAlg  XofAlg
XOF algorithm.

Return Value

Byte
Output data in byte array.
Example
C#
// 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
See Also