Exemplo n.º 1
0
    private static byte[] blake2bHmacSelfTest()
    {
        using var inc = Blake2b.CreateHashAlgorithm(blake2bCheck.Length);

        foreach (int diglen in new[] { 20, 32, 48, 64 })
        {
            using var halg = Blake2b.CreateHashAlgorithm(diglen);
            using var hmac = Blake2b.CreateHMAC(diglen, getTestSequence(diglen));

            foreach (int msglen in new[] { 0, 3, 128, 129, 255, 1024 })
            {
                var msg = getTestSequence(msglen);

                inc.TransformBlock(halg.ComputeHash(msg), 0, diglen, null, 0);
                inc.TransformBlock(hmac.ComputeHash(msg), 0, diglen, null, 0);
            }
        }

        inc.TransformFinalBlock(Array.Empty <byte>(), 0, 0);
        var hash = inc.Hash;

        return(hash);
    }