// Copyright 2025 The Dawn & Tint Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
//    list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
//    this list of conditions and the following disclaimer in the documentation
//    and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
//    contributors may be used to endorse or promote products derived from
//    this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#include <variant>
#include <vector>

#include "dawn/common/Sha3.h"
#include "gtest/gtest.h"

namespace dawn {
namespace {

// Below test vectors are taken from
// https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/example-values

// Check that the internal Keccak function computes the correct update for the state.
// The test vectors are taken from intermediate results in
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/SHA3-384_1600.pdf
TEST(Sha3, CheckKeccak) {
    // Initial state and the end of page 2.
    Sha3State initial = {
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
        0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
        0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
        0x0000000000000000,
    };

    // State after one round of Keccak page 38.
    Sha3State expected = {
        0x160a71930ca2a8a3, 0x51ddb3b2c251d927, 0xdc9aa0e4bcc6ad64, 0xf8a14407bd495cd1,
        0xf17b866f4d85efd0, 0x82d81704476a121c, 0x7cfa31f915062efa, 0x247ec6d41845f643,
        0x1dc24a64defcf173, 0xdcfed5e4a19d5574, 0xbcae93fcba107740, 0x65c3c92d3e365e0c,
        0x368cad882027066c, 0xea7e1cd53bf20792, 0x0daa532dce42e107, 0x2cb333822af5990b,
        0x8b2bb75c6d627045, 0x4f550b11db349feb, 0x8bd8bdb493854b0c, 0x5386b7c92346dcc6,
        0xcc3f58bf9c237342, 0xb3658927a749b560, 0x294fd2abede42c19, 0xb3fb1448aef7d65c,
        0x644f5649d63f5404,
    };

    Sha3State transformed = KeccakForTesting(initial);

    for (size_t i = 0; i < transformed.size(); i++) {
        EXPECT_EQ(expected[i], transformed[i]);
    }
}

template <size_t N>
void ExpectOutput(const std::array<uint8_t, N>& actual, const std::array<uint8_t, N>& expected) {
    for (size_t i = 0; i < N; i++) {
        EXPECT_EQ(actual[i], expected[i]);
    }
}

// Check that the correct values are computed in all by all the hash functions on the 1600 bit test
// vectors for each SHA3 version. (we don't use the other ones because they are not byte aligned).
TEST(Sha3, AllSizesOn1600BitTestVector) {
    std::array<uint64_t, 25> message = {
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3, 0xa3a3a3a3a3a3a3a3,
        0xa3a3a3a3a3a3a3a3,
    };

    Sha3_224::Output sha224Expected = {0x93, 0x76, 0x81, 0x6A, 0xBA, 0x50, 0x3F, 0x72, 0xF9, 0x6C,
                                       0xE7, 0xEB, 0x65, 0xAC, 0x09, 0x5D, 0xEE, 0xE3, 0xBE, 0x4B,
                                       0xF9, 0xBB, 0xC2, 0xA1, 0xCB, 0x7E, 0x11, 0xE0};

    Sha3_224::Output sha224Actual = Sha3_224::Hash(&message, sizeof(message));
    ExpectOutput(sha224Actual, sha224Expected);

    Sha3_256::Output sha256Expected = {0x79, 0xF3, 0x8A, 0xDE, 0xC5, 0xC2, 0x03, 0x07,
                                       0xA9, 0x8E, 0xF7, 0x6E, 0x83, 0x24, 0xAF, 0xBF,
                                       0xD4, 0x6C, 0xFD, 0x81, 0xB2, 0x2E, 0x39, 0x73,
                                       0xC6, 0x5F, 0xA1, 0xBD, 0x9D, 0xE3, 0x17, 0x87};

    Sha3_256::Output sha256Actual = Sha3_256::Hash(&message, sizeof(message));
    ExpectOutput(sha256Actual, sha256Expected);

    Sha3_384::Output sha384Expected = {0x18, 0x81, 0xDE, 0x2C, 0xA7, 0xE4, 0x1E, 0xF9, 0x5D, 0xC4,
                                       0x73, 0x2B, 0x8F, 0x5F, 0x00, 0x2B, 0x18, 0x9C, 0xC1, 0xE4,
                                       0x2B, 0x74, 0x16, 0x8E, 0xD1, 0x73, 0x26, 0x49, 0xCE, 0x1D,
                                       0xBC, 0xDD, 0x76, 0x19, 0x7A, 0x31, 0xFD, 0x55, 0xEE, 0x98,
                                       0x9F, 0x2D, 0x70, 0x50, 0xDD, 0x47, 0x3E, 0x8F};

    Sha3_384::Output sha384Actual = Sha3_384::Hash(&message, sizeof(message));
    ExpectOutput(sha384Actual, sha384Expected);

    Sha3_512::Output sha512Expected = {
        0xE7, 0x6D, 0xFA, 0xD2, 0x20, 0x84, 0xA8, 0xB1, 0x46, 0x7F, 0xCF, 0x2F, 0xFA,
        0x58, 0x36, 0x1B, 0xEC, 0x76, 0x28, 0xED, 0xF5, 0xF3, 0xFD, 0xC0, 0xE4, 0x80,
        0x5D, 0xC4, 0x8C, 0xAE, 0xEC, 0xA8, 0x1B, 0x7C, 0x13, 0xC3, 0x0A, 0xDF, 0x52,
        0xA3, 0x65, 0x95, 0x84, 0x73, 0x9A, 0x2D, 0xF4, 0x6B, 0xE5, 0x89, 0xC5, 0x1C,
        0xA1, 0xA4, 0xA8, 0x41, 0x6D, 0xF6, 0x54, 0x5A, 0x1C, 0xE8, 0xBA, 0x00};

    Sha3_512::Output sha512Actual = Sha3_512::Hash(&message, sizeof(message));
    ExpectOutput(sha512Actual, sha512Expected);
}

// Check that the correct values are computed by various non-1600 sizes for one of the variants
TEST(Sha3, VariousMessageSizes) {
    // Test what happens with no data provided.
    {
        Sha3_224::Output sha224Expected = {
            0x6B, 0x4E, 0x03, 0x42, 0x36, 0x67, 0xDB, 0xB7, 0x3B, 0x6E, 0x15, 0x45, 0x4F, 0x0E,
            0xB1, 0xAB, 0xD4, 0x59, 0x7F, 0x9A, 0x1B, 0x07, 0x8E, 0x3F, 0x5B, 0x5A, 0x6B, 0xC7};

        Sha3_224::Output sha224Actual = Sha3_224::Hash(nullptr, 0);
        ExpectOutput(sha224Actual, sha224Expected);
    }

    // Test any amount of data that doesn't require any Keccak other than the final one.
    {
        std::array<char, 42> data;
        data.fill('a');

        Sha3_224::Output sha224Expected = {
            0xF4, 0xFB, 0x9A, 0x8F, 0xA2, 0x04, 0x0F, 0x8C, 0x72, 0xC2, 0x2D, 0x6B, 0x26, 0xEE,
            0xE5, 0xA9, 0xF2, 0x2F, 0xC4, 0x9B, 0x86, 0x01, 0xC6, 0xCD, 0xAB, 0xE2, 0x3E, 0x0D};

        Sha3_224::Output sha224Actual = Sha3_224::Hash(&data, sizeof(data));
        ExpectOutput(sha224Actual, sha224Expected);
    }

    // Test a "long" message that requires many internal Keccaks
    {
        std::array<char, 4000> data;
        data.fill('a');

        Sha3_224::Output sha224Expected = {
            0xB5, 0xBF, 0x09, 0x7A, 0x65, 0xB3, 0xC9, 0x42, 0x72, 0x6E, 0x16, 0x77, 0xD8, 0xEE,
            0x5A, 0x59, 0x39, 0x6F, 0xD2, 0xEB, 0xBF, 0xB4, 0xCB, 0x2E, 0x9F, 0xBA, 0x2F, 0x67};

        Sha3_224::Output sha224Actual = Sha3_224::Hash(&data, sizeof(data));
        ExpectOutput(sha224Actual, sha224Expected);
    }
}

// Check that using Update at any byte boundary produces the same result
TEST(Sha3, UpdateAnyByteBoundary) {
    // 500 bytes need at least three different Keccak transforms so we should cover all the special
    // values of the internal insertion offset in Sha3.
    std::array<char, 500> data;
    data.fill('a');

    Sha3_224::Output sha224Expected = {0xB3, 0x36, 0x37, 0x5B, 0xF8, 0xE6, 0x2A, 0x2F, 0x34, 0xF8,
                                       0xC4, 0xE3, 0xF9, 0xFD, 0xD5, 0x34, 0x1E, 0x85, 0xB0, 0x23,
                                       0x49, 0xD9, 0x18, 0x73, 0xC5, 0x9D, 0x70, 0x36};

    for (size_t offset = 0; offset < sizeof(data); offset++) {
        Sha3_224 sha;
        sha.Update(&data[0], offset);
        sha.Update(&data[offset], sizeof(data) - offset);
        Sha3_224::Output sha224Actual = sha.Finalize();

        ExpectOutput(sha224Actual, sha224Expected);
    }
}

enum class HasherType {
    Sha3_224,
    Sha3_256,
    Sha3_384,
    Sha3_512,
};

// Helper class to provide uniform interface for all Sha3 variants.
class Sha3Proxy {
  public:
    explicit Sha3Proxy(HasherType type) : mType(type) {
        switch (type) {
            case HasherType::Sha3_224:
                mHasher = Sha3_224();
                break;
            case HasherType::Sha3_256:
                mHasher = Sha3_256();
                break;
            case HasherType::Sha3_384:
                mHasher = Sha3_384();
                break;
            case HasherType::Sha3_512:
                mHasher = Sha3_512();
                break;
            default:
                // Unreachable
                []() { ASSERT_TRUE(false); }();
                break;
        }
    }

    size_t OutputByteSize() const {
        switch (mType) {
            case HasherType::Sha3_224:
                return 224 / 8;
            case HasherType::Sha3_256:
                return 256 / 8;
            case HasherType::Sha3_384:
                return 384 / 8;
            case HasherType::Sha3_512:
                return 512 / 8;
            default:
                // Unreachable
                []() { ASSERT_TRUE(false); }();
                break;
        }
    }

    std::vector<uint8_t> Hash(const void* data, size_t size) {
        switch (mType) {
            case HasherType::Sha3_224:
                return HashImpl<224>(data, size);
            case HasherType::Sha3_256:
                return HashImpl<256>(data, size);
            case HasherType::Sha3_384:
                return HashImpl<384>(data, size);
            case HasherType::Sha3_512:
                return HashImpl<512>(data, size);
            default:
                // Unreachable
                []() { ASSERT_TRUE(false); }();
                break;
        }
    }

    void Update(const void* data, size_t size) {
        switch (mType) {
            case HasherType::Sha3_224:
                return UpdateImpl<224>(data, size);
            case HasherType::Sha3_256:
                return UpdateImpl<256>(data, size);
            case HasherType::Sha3_384:
                return UpdateImpl<384>(data, size);
            case HasherType::Sha3_512:
                return UpdateImpl<512>(data, size);
            default:
                // Unreachable
                ASSERT_TRUE(false);
                break;
        }
    }
    std::vector<uint8_t> Finalize() {
        switch (mType) {
            case HasherType::Sha3_224:
                return FinalizeImpl<224>();
            case HasherType::Sha3_256:
                return FinalizeImpl<256>();
            case HasherType::Sha3_384:
                return FinalizeImpl<384>();
            case HasherType::Sha3_512:
                return FinalizeImpl<512>();
            default:
                // Unreachable
                []() { ASSERT_TRUE(false); }();
                break;
        }
    }

  private:
    const HasherType mType;
    std::variant<Sha3_224, Sha3_256, Sha3_384, Sha3_512> mHasher;

    template <size_t N>
    std::vector<uint8_t> HashImpl(const void* data, size_t size) {
        auto& hasher = std::get<Sha3<N>>(mHasher);
        auto resultArray = hasher.Hash(data, size);
        std::vector<uint8_t> resultVector;
        static_assert(resultArray.size() == N / 8);
        resultVector.reserve(N / 8);
        for (size_t i = 0; i < N / 8; i++) {
            resultVector.push_back(resultArray[i]);
        }
        return resultVector;
    }

    template <size_t N>
    void UpdateImpl(const void* data, size_t size) {
        auto& hasher = std::get<Sha3<N>>(mHasher);
        hasher.Update(data, size);
    }

    template <size_t N>
    std::vector<uint8_t> FinalizeImpl() {
        auto& hasher = std::get<Sha3<N>>(mHasher);
        auto resultArray = hasher.Finalize();
        std::vector<uint8_t> resultVector;
        static_assert(resultArray.size() == N / 8);
        resultVector.reserve(N / 8);
        for (size_t i = 0; i < N / 8; i++) {
            resultVector.push_back(resultArray[i]);
        }
        return resultVector;
    }
};

struct Sha3LongMessageTestingVector {
    HasherType type;
    const size_t inputByteSize;
    const std::vector<uint8_t> input;
    const std::initializer_list<uint8_t> expectedOutput;
};

using Sha3LongMessageTestingVectors = std::initializer_list<Sha3LongMessageTestingVector>;

// Below testing vectors are from FIPS 202 SHA-3 Hash Function Test Vectors for Hashing
// Byte-Oriented Messages, NIST CAVP.
// https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/Secure-Hashing
// https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Algorithm-Validation-Program/documents/sha3/sha-3bytetestvectors.zip
// These testing vectors are much longer than the byte rate of performing Keccak, and avoid using
// trivially repeating bytes pattern which might be unable to detect wrong input reading.
Sha3LongMessageTestingVectors longMessageTestingVectors{
    // From SHA3_224LongMsg.rsp
    Sha3LongMessageTestingVector{
        HasherType::Sha3_224,
        5792 / 8,
        {0xa6, 0x3e, 0xbf, 0x8f, 0x97, 0xc6, 0x52, 0x92, 0x98, 0xe4, 0xd4, 0xb5, 0x73, 0xca, 0x01,
         0xd6, 0x5d, 0x67, 0x58, 0x83, 0x7b, 0xde, 0xc4, 0x0f, 0xa4, 0x36, 0x7c, 0xe5, 0x69, 0x53,
         0x28, 0x1d, 0x52, 0x25, 0x45, 0x4d, 0x6b, 0x1f, 0xca, 0xa2, 0xff, 0xeb, 0x0c, 0x2f, 0xa4,
         0x5c, 0xdf, 0x84, 0x77, 0xa4, 0xfe, 0x83, 0xa9, 0xc7, 0xad, 0x6f, 0x3b, 0x4f, 0x9c, 0x46,
         0x05, 0x42, 0x0f, 0x51, 0xfd, 0x51, 0x3c, 0xf9, 0xb6, 0x52, 0xf4, 0xdc, 0x27, 0xf0, 0x86,
         0x20, 0xae, 0xa1, 0xe1, 0x07, 0x55, 0xd9, 0xf8, 0xc4, 0x53, 0x7e, 0x6b, 0x8e, 0xd6, 0x9b,
         0x63, 0xf2, 0xff, 0x58, 0xbd, 0x6d, 0x2e, 0x2a, 0x6c, 0x3a, 0x81, 0x47, 0x18, 0x69, 0x97,
         0x5d, 0x0b, 0x31, 0x9a, 0x83, 0x4e, 0x87, 0x7c, 0x70, 0x0f, 0xef, 0x80, 0xea, 0x46, 0x93,
         0xfd, 0x82, 0x99, 0x92, 0x5f, 0x7f, 0x7c, 0x9a, 0x6e, 0x18, 0x9c, 0xb9, 0xd3, 0xe6, 0x7e,
         0x70, 0xd7, 0x98, 0x63, 0x0a, 0x6f, 0xe9, 0x70, 0x2b, 0x76, 0xcf, 0x0b, 0xac, 0x39, 0xf5,
         0x88, 0xa6, 0x38, 0x6c, 0x05, 0xcd, 0x2b, 0x9e, 0x92, 0x00, 0x44, 0x83, 0x96, 0x1e, 0xb4,
         0x17, 0x6e, 0x1a, 0x70, 0x0b, 0x56, 0x52, 0x35, 0xba, 0x8d, 0x1c, 0xc9, 0x60, 0xb4, 0xa2,
         0x85, 0x86, 0x77, 0xf1, 0x10, 0xc1, 0x70, 0x4c, 0x6d, 0x9c, 0x48, 0xc6, 0x38, 0xd3, 0x20,
         0x10, 0x2c, 0xc2, 0x2f, 0x8f, 0xe9, 0x1c, 0xac, 0xb1, 0xf4, 0xe0, 0xee, 0x82, 0x00, 0x89,
         0xd2, 0x7a, 0x6c, 0x86, 0x5d, 0x99, 0x0c, 0xe9, 0xa2, 0xb7, 0x2c, 0x63, 0xe6, 0x15, 0xd2,
         0x70, 0x03, 0x37, 0x44, 0xcf, 0x0a, 0xf6, 0xca, 0x35, 0x2c, 0xd1, 0xb5, 0x42, 0xdb, 0x84,
         0xa0, 0xb4, 0x2c, 0xdc, 0xf6, 0xdb, 0x80, 0xc9, 0xb5, 0x4d, 0x63, 0xb5, 0x71, 0xda, 0xb4,
         0x14, 0x9b, 0xc2, 0x07, 0x3c, 0x03, 0x26, 0x47, 0x77, 0x9c, 0xbd, 0xa0, 0x57, 0x7f, 0xc8,
         0x9b, 0x4a, 0x33, 0x48, 0x8b, 0x6e, 0x2c, 0x6e, 0x29, 0xa7, 0x91, 0x53, 0x7b, 0xee, 0x43,
         0xe9, 0xfa, 0xec, 0x1a, 0x32, 0xf3, 0xc7, 0x72, 0xaf, 0x2e, 0x3c, 0xe6, 0x1c, 0xce, 0xee,
         0x5b, 0x5a, 0x78, 0xfd, 0x41, 0xad, 0xb7, 0xdb, 0x15, 0x27, 0x9f, 0x5b, 0x2a, 0x64, 0xb1,
         0x0b, 0xaa, 0x78, 0xff, 0xc4, 0xd7, 0x26, 0x91, 0x7f, 0x97, 0x53, 0x06, 0x6a, 0x30, 0xb9,
         0x7e, 0x3c, 0x50, 0xe0, 0xb8, 0xc5, 0x50, 0x4a, 0x78, 0xc9, 0xb9, 0xee, 0x2c, 0x0e, 0x08,
         0xe9, 0xce, 0xb4, 0xae, 0x6f, 0x0c, 0xc5, 0x5b, 0x07, 0xa7, 0x0d, 0x7c, 0xf8, 0x19, 0x2c,
         0x03, 0xfe, 0x7a, 0xe9, 0x66, 0x42, 0xa4, 0xc9, 0xea, 0x89, 0x96, 0xe1, 0x21, 0xac, 0x16,
         0xe8, 0xb1, 0x48, 0x9b, 0x90, 0x58, 0xb6, 0x69, 0x16, 0x2d, 0x3e, 0xfe, 0x18, 0x29, 0x87,
         0xad, 0xa8, 0xe5, 0x52, 0x89, 0x9e, 0xa5, 0x68, 0x84, 0x32, 0x96, 0xd1, 0xd8, 0xca, 0x54,
         0x47, 0xa6, 0x10, 0xaf, 0xeb, 0xdd, 0x48, 0xaf, 0x36, 0x5e, 0xe1, 0xd6, 0x31, 0x5e, 0x49,
         0xa4, 0xe9, 0x0b, 0x06, 0x61, 0x1d, 0x72, 0x03, 0x16, 0x3b, 0xa0, 0x27, 0xdd, 0x8b, 0x07,
         0x2c, 0x5a, 0xa9, 0x24, 0xaf, 0x8a, 0x38, 0x5f, 0x83, 0xbb, 0xd5, 0x33, 0x4b, 0xdc, 0x4a,
         0x8e, 0x48, 0xf7, 0x04, 0x7b, 0x6f, 0xfc, 0xc8, 0xfe, 0xbf, 0xc0, 0xa1, 0x3f, 0xd1, 0x45,
         0x1d, 0xeb, 0xb1, 0x3c, 0xb8, 0xd8, 0xec, 0xc8, 0x99, 0xe8, 0xea, 0x85, 0x7c, 0x2f, 0x7e,
         0xc9, 0xf0, 0x58, 0xbc, 0x2a, 0xc2, 0x44, 0x0b, 0x40, 0xb9, 0xf5, 0x7b, 0xac, 0x83, 0xab,
         0x58, 0x58, 0xf0, 0x4c, 0xff, 0x01, 0x5e, 0x09, 0xf0, 0xf3, 0x75, 0x3f, 0x25, 0x14, 0x14,
         0x9b, 0xa2, 0x24, 0x8a, 0x82, 0x4e, 0x43, 0x0a, 0xb0, 0x01, 0xb4, 0x59, 0x1f, 0xde, 0xe0,
         0xca, 0x2a, 0xe3, 0x9e, 0x6c, 0xf2, 0xbe, 0xb1, 0x82, 0x01, 0xe2, 0x92, 0x33, 0x2d, 0xdb,
         0x71, 0x83, 0xbf, 0xde, 0x76, 0x82, 0xd5, 0xa5, 0x4c, 0xc3, 0x05, 0x7a, 0xe0, 0x10, 0x43,
         0x91, 0x66, 0x5c, 0x05, 0x9a, 0x9e, 0xf9, 0xa5, 0x97, 0x55, 0x0c, 0x06, 0xeb, 0x2e, 0x3d,
         0x7a, 0xb4, 0xa2, 0xb3, 0xe3, 0x5b, 0x46, 0x3f, 0x19, 0x6a, 0x4c, 0xd7, 0x8c, 0x9d, 0x4d,
         0x47, 0x2b, 0x3b, 0x46, 0x23, 0x84, 0xa6, 0xe0, 0x00, 0x2c, 0x31, 0xf4, 0xe3, 0x61, 0x33,
         0x4e, 0xfa, 0xee, 0x5a, 0xb1, 0x8a, 0x4f, 0x41, 0x1c, 0x29, 0x16, 0x44, 0x4c, 0x2d, 0x8d,
         0x93, 0x82, 0x64, 0x9d, 0x85, 0x86, 0x06, 0xee, 0x2f, 0xec, 0xe7, 0x50, 0x36, 0x96, 0xf1,
         0x5a, 0xe1, 0x7a, 0xd2, 0x50, 0x72, 0xa5, 0xf2, 0x4a, 0xb7, 0x80, 0xa8, 0x93, 0xdc, 0x53,
         0xad, 0x50, 0x83, 0x07, 0xd1, 0x62, 0x16, 0x30, 0xec, 0x8d, 0x5c, 0x4b, 0x18, 0xd9, 0x4b,
         0x43, 0x1d, 0x38, 0x1e, 0x3b, 0x2d, 0x6a, 0xa7, 0x87, 0xd2, 0x1e, 0xe5, 0xfb, 0x24, 0x5a,
         0xd9, 0x69, 0x3f, 0x1c, 0x96, 0x65, 0xf4, 0x42, 0x98, 0x4b, 0xbf, 0xa7, 0x56, 0x84, 0xf9,
         0x8f, 0x1a, 0x04, 0x4f, 0x45, 0x11, 0x17, 0x73, 0x02, 0x9e, 0x5e, 0x11, 0x11, 0xf4, 0x14,
         0x05, 0x31, 0xe4, 0x96, 0xcb, 0x3b, 0xf3, 0x23, 0x37, 0x04, 0xb0, 0xe0, 0x66, 0x85, 0x45,
         0x1f, 0xf4, 0x39, 0x4b},
        {0xc0, 0x9d, 0x92, 0x6e, 0xae, 0xf3, 0x4c, 0xfa, 0xcc, 0x70, 0x14, 0x34, 0xda, 0x80,
         0xc3, 0x40, 0x33, 0x7b, 0xa4, 0x8e, 0x8b, 0x04, 0x4b, 0x1a, 0x60, 0xda, 0x9c, 0xda}},
    // From SHA3_256LongMsg.rsp
    {HasherType::Sha3_256,
     6568 / 8,
     {0xa6, 0x5d, 0xa8, 0x27, 0x7a, 0x3b, 0x37, 0x38, 0x43, 0x2b, 0xca, 0x98, 0x22, 0xd4, 0x3b,
      0x3d, 0x81, 0x0c, 0xda, 0xd3, 0xb0, 0xed, 0x24, 0x68, 0xd0, 0x2b, 0xd2, 0x69, 0xf1, 0xa4,
      0x16, 0xcd, 0x77, 0x39, 0x21, 0x90, 0xc2, 0xdd, 0xe8, 0x63, 0x0e, 0xeb, 0x28, 0xa2, 0x97,
      0xbd, 0xa7, 0x86, 0x01, 0x7a, 0xbe, 0x9c, 0xf8, 0x2f, 0x14, 0x75, 0x14, 0x22, 0xac, 0x9f,
      0xff, 0x63, 0x22, 0xd5, 0xd9, 0xa3, 0x31, 0x73, 0xdb, 0x49, 0x79, 0x2d, 0x3b, 0xc3, 0x7f,
      0xff, 0x50, 0x1a, 0xf6, 0x67, 0xf7, 0xca, 0x3d, 0xd3, 0x35, 0xd0, 0x28, 0x55, 0x1e, 0x04,
      0x03, 0x9e, 0xf5, 0xa9, 0xd4, 0x2a, 0x94, 0x43, 0xe1, 0xb8, 0x0e, 0xa8, 0x72, 0xfd, 0x94,
      0x5a, 0xd8, 0x99, 0x95, 0x14, 0xae, 0x4a, 0x29, 0xa3, 0x5f, 0x60, 0xb0, 0xf7, 0xe9, 0x71,
      0xb6, 0x7a, 0xe0, 0x4d, 0x1b, 0xa1, 0xb5, 0x34, 0x70, 0xc0, 0x38, 0x47, 0xa3, 0x22, 0x5c,
      0x3d, 0xdf, 0x59, 0x3a, 0x57, 0xae, 0xd3, 0x59, 0x96, 0x61, 0xae, 0x2d, 0x2b, 0xb1, 0xcd,
      0xdd, 0x2f, 0xa6, 0x2c, 0x4a, 0x94, 0xb8, 0x70, 0x4c, 0x5c, 0x35, 0xc3, 0x3e, 0x08, 0xe2,
      0xde, 0xbe, 0x54, 0xe5, 0x67, 0xae, 0x21, 0xe2, 0x7e, 0x7e, 0xb3, 0x65, 0x93, 0xae, 0x1c,
      0x80, 0x7a, 0x8e, 0xf8, 0xb5, 0xc1, 0x49, 0x5b, 0x15, 0x41, 0x21, 0x08, 0xaa, 0xf3, 0xfc,
      0xe4, 0x13, 0x05, 0x20, 0xaa, 0x6e, 0x2d, 0x3b, 0xdf, 0x7b, 0x3e, 0xa6, 0x09, 0xfd, 0xf9,
      0xea, 0x1c, 0x64, 0x25, 0x84, 0x35, 0xaa, 0xe2, 0xe5, 0x8a, 0x7b, 0x3a, 0xbd, 0xa1, 0x98,
      0xf9, 0x79, 0xc1, 0x7d, 0xbe, 0x0a, 0xa7, 0x42, 0x53, 0xe9, 0x79, 0xbf, 0x3a, 0x58, 0x00,
      0xf3, 0x88, 0xea, 0x11, 0xa7, 0xf7, 0x45, 0x4c, 0x4e, 0x36, 0x27, 0x0a, 0x30, 0x83, 0xa7,
      0x90, 0xc7, 0x7c, 0xbe, 0x89, 0x69, 0x32, 0x05, 0xb3, 0x28, 0x80, 0xc0, 0xd8, 0xf7, 0x9b,
      0x1c, 0x00, 0x0e, 0xe9, 0xb5, 0xe5, 0x8f, 0x17, 0x5b, 0xa7, 0x69, 0x66, 0x16, 0xc1, 0x7c,
      0x45, 0x67, 0x3c, 0xff, 0x25, 0xd1, 0x22, 0x1f, 0x89, 0x98, 0x36, 0xe9, 0x5c, 0xc9, 0xe2,
      0x6a, 0x88, 0x7a, 0x71, 0x15, 0xc4, 0x53, 0x7e, 0x65, 0xad, 0x4e, 0xac, 0xc3, 0x19, 0xba,
      0x98, 0xa9, 0xa8, 0x86, 0x0c, 0x08, 0x9c, 0xbc, 0x76, 0xe7, 0xea, 0x4c, 0x98, 0x4d, 0x90,
      0x0b, 0x80, 0x62, 0x2a, 0xfb, 0xbb, 0xd1, 0xc0, 0xcd, 0xc6, 0x70, 0xe3, 0xa4, 0xc5, 0x23,
      0xf8, 0x1c, 0x77, 0xfe, 0xd3, 0x8b, 0x6a, 0xa9, 0x88, 0x87, 0x6b, 0x09, 0x7d, 0xa8, 0x41,
      0x1c, 0xc4, 0x8e, 0x9b, 0x25, 0xa8, 0x26, 0x46, 0x0a, 0x86, 0x2a, 0xa3, 0xfa, 0xdf, 0xe7,
      0x59, 0x52, 0xaa, 0x43, 0x47, 0xc2, 0xef, 0xfe, 0xbd, 0xac, 0x91, 0x38, 0xeb, 0xcc, 0x6c,
      0x34, 0x99, 0x1e, 0x9f, 0x5b, 0x19, 0xfc, 0x2b, 0x84, 0x7a, 0x87, 0xbe, 0x72, 0xff, 0x49,
      0xc9, 0x9e, 0xcf, 0x19, 0xd8, 0x37, 0xee, 0x3e, 0x23, 0x68, 0x6c, 0xd7, 0x60, 0xd9, 0xdd,
      0x7a, 0xdc, 0x78, 0x09, 0x1b, 0xca, 0x79, 0xe4, 0x2f, 0xdb, 0x9b, 0xc0, 0x12, 0x0f, 0xae,
      0xc1, 0xa6, 0xca, 0x52, 0x91, 0x3e, 0x2a, 0x01, 0x56, 0xba, 0x98, 0x50, 0xe1, 0xf3, 0x9d,
      0x71, 0x28, 0x59, 0xf7, 0xfd, 0xf7, 0xda, 0xed, 0xf0, 0xe2, 0x06, 0xdf, 0xf6, 0x7e, 0x71,
      0x21, 0xe5, 0xd1, 0x59, 0x0a, 0x8a, 0x06, 0x89, 0x47, 0xa8, 0x65, 0x7d, 0x75, 0x3e, 0x83,
      0xc7, 0xf0, 0x09, 0xb6, 0xb2, 0xe5, 0x4a, 0xcc, 0x24, 0xaf, 0xc9, 0xfd, 0xc9, 0x60, 0x1a,
      0x1d, 0x6d, 0x9d, 0x1f, 0x17, 0xaa, 0xb0, 0xce, 0x96, 0xc4, 0xd8, 0x34, 0x05, 0xd1, 0xe3,
      0xba, 0xba, 0x1d, 0xff, 0xa8, 0x6e, 0xcc, 0xce, 0xe7, 0xf1, 0xc1, 0xb8, 0x0b, 0x1b, 0xbf,
      0x85, 0x91, 0x06, 0xce, 0x2b, 0x64, 0x7a, 0xe1, 0xe4, 0xa6, 0xa9, 0xb5, 0x84, 0xae, 0x1d,
      0xfc, 0x0a, 0x4d, 0xee, 0xbb, 0x75, 0x56, 0x38, 0xf1, 0xd9, 0x5d, 0xcc, 0x79, 0xb1, 0xbe,
      0x26, 0x31, 0x77, 0xe2, 0xa0, 0x5c, 0x72, 0xbd, 0xe5, 0x45, 0xd0, 0x9b, 0xa7, 0x26, 0xf4,
      0x1d, 0x95, 0x47, 0x11, 0x7e, 0x87, 0x6a, 0xf8, 0x1b, 0xfc, 0x67, 0x2e, 0x33, 0xc7, 0x14,
      0x42, 0xeb, 0x05, 0x67, 0x5d, 0x95, 0x52, 0xdf, 0x1b, 0x31, 0x3d, 0x1f, 0x99, 0x34, 0xf9,
      0xdd, 0xd0, 0x89, 0x55, 0xfa, 0x21, 0xd6, 0xed, 0xf2, 0x30, 0x00, 0xa2, 0x77, 0xf6, 0xf1,
      0x49, 0x59, 0x12, 0x99, 0xa0, 0xa9, 0x60, 0x32, 0x86, 0x1e, 0xcd, 0xc9, 0x6b, 0xb7, 0x6a,
      0xfa, 0x05, 0xa2, 0xbf, 0xfb, 0x44, 0x5d, 0x61, 0xdc, 0x89, 0x1b, 0xc7, 0x0c, 0x13, 0x69,
      0x59, 0x20, 0xb9, 0x11, 0xca, 0xd0, 0xdf, 0x3f, 0xa8, 0x42, 0xa3, 0xe2, 0x31, 0x8c, 0x57,
      0x55, 0x69, 0x74, 0x34, 0x3f, 0x69, 0x79, 0x4c, 0xb8, 0xfa, 0x18, 0xc1, 0xad, 0x62, 0x48,
      0x35, 0x85, 0x7e, 0x47, 0x81, 0x04, 0x11, 0x98, 0xaa, 0x70, 0x5c, 0x4d, 0x11, 0xf3, 0xef,
      0x82, 0xe9, 0x41, 0xbe, 0x2a, 0xee, 0x7a, 0x77, 0x0e, 0x54, 0x52, 0x13, 0x12, 0xfe, 0x6f,
      0xac, 0xba, 0xf1, 0x13, 0x8e, 0xee, 0x08, 0xfa, 0x90, 0xfa, 0xe9, 0x86, 0xa5, 0xd9, 0x37,
      0x19, 0xae, 0xb3, 0x0a, 0xc2, 0x92, 0xa4, 0x9c, 0x1d, 0x91, 0xbf, 0x45, 0x74, 0xd5, 0x53,
      0xa9, 0x2a, 0x4a, 0x6c, 0x30, 0x5a, 0xb0, 0x9d, 0xb6, 0xbb, 0xef, 0xfd, 0x84, 0xc7, 0xaa,
      0x70, 0x7f, 0x1c, 0x16, 0x28, 0xa0, 0x22, 0x0d, 0x6b, 0xa4, 0xee, 0x5e, 0x96, 0x05, 0x66,
      0x68, 0x62, 0x28, 0xa6, 0xe7, 0x66, 0xd8, 0xa3, 0x0d, 0xdd, 0xf3, 0x0e, 0xd5, 0xaa, 0x63,
      0x7c, 0x94, 0x99, 0x50, 0xc3, 0xd0, 0xe8, 0x94, 0xa7, 0x56, 0x06, 0x70, 0xb6, 0x87, 0x9a,
      0x7d, 0x70, 0xf3, 0xc7, 0xe5, 0xab, 0x29, 0xae, 0xd2, 0x36, 0xcc, 0x35, 0x27, 0xbd, 0xea,
      0x07, 0x6f, 0xec, 0x8a, 0xdd, 0x12, 0xd7, 0x84, 0xfb, 0xcf, 0x9a},
     {0x68, 0xf6, 0x2c, 0x41, 0x8a, 0x6b, 0x97, 0x02, 0x6c, 0xc7, 0x0f,
      0x6a, 0xbf, 0x84, 0x19, 0xb6, 0x71, 0xee, 0x37, 0x37, 0x09, 0xfa,
      0x13, 0x07, 0x4e, 0x37, 0xbd, 0x39, 0xf0, 0xa5, 0x0f, 0xcb}},
    // From SHA3_384LongMsg.rsp
    {HasherType::Sha3_384,
     6712 / 8,
     {0x42, 0x26, 0x25, 0x15, 0xac, 0x21, 0xc5, 0xc2, 0x3e, 0xdf, 0x72, 0x49, 0x42, 0x50, 0xe8,
      0xc5, 0x71, 0x16, 0xd6, 0x7c, 0x0c, 0x45, 0x8f, 0xc2, 0x28, 0x67, 0x02, 0x1a, 0x4a, 0xc4,
      0xec, 0x9f, 0x33, 0xe0, 0x4c, 0xa2, 0xfd, 0x44, 0x18, 0x95, 0x67, 0x81, 0x2e, 0x27, 0x6e,
      0x73, 0x8d, 0xb1, 0x1d, 0xc3, 0xc5, 0xd1, 0xa5, 0xaf, 0xac, 0x54, 0xb0, 0x0e, 0x53, 0x5a,
      0xf3, 0x8e, 0x38, 0xb4, 0x02, 0x41, 0xbd, 0x91, 0x69, 0x58, 0xd9, 0x5a, 0xf8, 0x2e, 0x0e,
      0xda, 0x5e, 0x88, 0x9b, 0xa2, 0xfa, 0x1b, 0xf2, 0xac, 0xed, 0x4e, 0x6c, 0x3e, 0x74, 0x42,
      0x3c, 0x11, 0x75, 0x0f, 0xa2, 0xb3, 0x57, 0x51, 0x61, 0x2a, 0x17, 0xe4, 0x72, 0xda, 0x98,
      0xeb, 0xfa, 0xa9, 0x3b, 0x17, 0x7a, 0x60, 0xb0, 0x26, 0x45, 0x54, 0x0c, 0xa9, 0x38, 0x47,
      0x1b, 0x0b, 0xa5, 0x89, 0xf7, 0xcf, 0x90, 0x62, 0xd9, 0x19, 0x1e, 0xb5, 0x30, 0x70, 0x4a,
      0xdd, 0xf0, 0xc2, 0xda, 0xdb, 0x2d, 0xa8, 0x91, 0xb3, 0xe8, 0xec, 0xa7, 0x13, 0x29, 0x49,
      0x76, 0x36, 0x4e, 0x71, 0x76, 0x08, 0xa2, 0x55, 0x6b, 0x8b, 0x31, 0xa0, 0xdd, 0x79, 0xdb,
      0x84, 0xc9, 0x2b, 0xa8, 0xba, 0x96, 0xb9, 0x5b, 0xc4, 0x4a, 0x63, 0x4a, 0x76, 0xfe, 0x2f,
      0x6c, 0xb4, 0x90, 0xd4, 0xb4, 0x7d, 0x97, 0xd7, 0x9d, 0x29, 0x9c, 0xf4, 0x07, 0xee, 0x87,
      0xbf, 0x41, 0xa9, 0x57, 0x8b, 0x67, 0xdb, 0x16, 0x8b, 0xee, 0xf2, 0x0c, 0x37, 0x7d, 0xcb,
      0x34, 0xf1, 0xfe, 0x74, 0xec, 0xe9, 0xf6, 0x36, 0xf0, 0x3e, 0x11, 0xd3, 0x89, 0x66, 0x02,
      0x0c, 0x02, 0xcf, 0x89, 0x66, 0x5c, 0xc6, 0xd5, 0x2e, 0x43, 0x99, 0x0d, 0xbb, 0x40, 0xf8,
      0x2a, 0xf3, 0x2f, 0xa1, 0x07, 0x11, 0xf4, 0x3d, 0xbb, 0xa5, 0x6a, 0x84, 0x26, 0xdb, 0x9c,
      0xa8, 0xca, 0x01, 0x38, 0xf1, 0xdc, 0x44, 0x40, 0xa4, 0x9b, 0xba, 0x03, 0x2a, 0xe1, 0xa6,
      0x4c, 0x6e, 0xf8, 0xf7, 0xd9, 0x87, 0xae, 0x11, 0x0e, 0x97, 0xac, 0xd0, 0xeb, 0xf3, 0x03,
      0xca, 0x3c, 0x84, 0x08, 0xd5, 0x0f, 0x6d, 0x62, 0xca, 0x6b, 0xed, 0x61, 0x88, 0x3f, 0x87,
      0x92, 0x3b, 0x99, 0x61, 0x90, 0xde, 0x18, 0xeb, 0x1c, 0xfe, 0xa4, 0xc0, 0x70, 0xc1, 0x5c,
      0xd1, 0xd1, 0x28, 0xd0, 0xc0, 0x64, 0x91, 0x71, 0x8a, 0x42, 0x80, 0x46, 0x69, 0xce, 0x9e,
      0xe0, 0xf9, 0x47, 0x02, 0x8f, 0x99, 0x99, 0xb0, 0xd6, 0x14, 0x79, 0x5f, 0x1d, 0x81, 0xb0,
      0x80, 0xa6, 0x67, 0xb7, 0x7b, 0xc2, 0x25, 0x85, 0x3c, 0x45, 0x91, 0xa5, 0xee, 0x37, 0xe0,
      0x8b, 0x06, 0xcc, 0xc6, 0x28, 0x84, 0x96, 0xdd, 0xbc, 0x75, 0xfa, 0x4b, 0xec, 0xbd, 0xe1,
      0xa0, 0x14, 0x13, 0xaf, 0xfd, 0xde, 0x4d, 0x79, 0x7b, 0x14, 0xde, 0x73, 0xca, 0xb2, 0x9d,
      0xa7, 0x19, 0x40, 0xc8, 0xed, 0x36, 0x5e, 0x48, 0x17, 0xf7, 0xa1, 0x36, 0x6c, 0xd8, 0x9d,
      0x9f, 0x58, 0xe5, 0x43, 0x84, 0x61, 0xdb, 0x6e, 0x25, 0x5d, 0x8a, 0xb8, 0x80, 0xe2, 0x7d,
      0x92, 0x14, 0xff, 0xdd, 0x94, 0xea, 0x29, 0x93, 0x11, 0xd6, 0x78, 0xad, 0xef, 0xfb, 0x14,
      0x03, 0xb5, 0x8d, 0xea, 0x1a, 0xe6, 0xdb, 0xa3, 0x48, 0x8e, 0x8c, 0xd6, 0x19, 0x1a, 0x28,
      0x7c, 0xf2, 0x6c, 0xdb, 0xa5, 0xf4, 0x2f, 0x76, 0x6a, 0x23, 0x68, 0xb7, 0x23, 0xc8, 0x4e,
      0xca, 0xda, 0x14, 0x5c, 0x0f, 0xff, 0x05, 0xa4, 0x1e, 0x5c, 0x8e, 0x66, 0x09, 0x4c, 0xf2,
      0xe1, 0xe1, 0x28, 0x71, 0x69, 0x7b, 0x03, 0x26, 0xba, 0x73, 0x97, 0x30, 0x8c, 0x72, 0x7e,
      0x10, 0x68, 0xad, 0xa6, 0x52, 0xb9, 0xae, 0xff, 0x70, 0x26, 0x57, 0x76, 0xf3, 0x1f, 0x24,
      0x27, 0xdb, 0xb6, 0xb0, 0xce, 0x41, 0xb1, 0x7b, 0x7f, 0x3b, 0xdd, 0xea, 0x98, 0x00, 0xa5,
      0x8f, 0xf3, 0x4c, 0xe2, 0xab, 0x60, 0x06, 0xf5, 0xf1, 0x52, 0x21, 0x14, 0x8d, 0xd8, 0xc0,
      0xe1, 0x65, 0xcf, 0x9d, 0x41, 0x9f, 0x57, 0xab, 0x6b, 0x63, 0x83, 0xfa, 0x3f, 0xe2, 0x55,
      0xdb, 0xda, 0x97, 0xe9, 0x46, 0x67, 0xcc, 0xf0, 0x78, 0x37, 0x61, 0x60, 0xe0, 0x15, 0xc9,
      0x6a, 0x3c, 0xd3, 0x55, 0xad, 0x00, 0x29, 0xb5, 0xa9, 0xf7, 0xc0, 0xbc, 0x76, 0x2c, 0x89,
      0x63, 0xb5, 0x0b, 0x53, 0x11, 0xc8, 0xc4, 0x9d, 0x19, 0x3e, 0xf0, 0xa8, 0x84, 0x91, 0x77,
      0xd1, 0x12, 0x14, 0xb1, 0x1e, 0x7b, 0x27, 0xcb, 0x17, 0xfa, 0xad, 0x6d, 0xd7, 0x0c, 0xc0,
      0x99, 0x62, 0x76, 0xa3, 0xd7, 0x39, 0x85, 0xf7, 0x8f, 0x2c, 0x99, 0x32, 0xb6, 0x70, 0xe5,
      0x4e, 0xac, 0xf1, 0x70, 0xbe, 0x65, 0xe9, 0x5f, 0xa6, 0xc8, 0xb2, 0x77, 0x4b, 0x54, 0xd9,
      0xde, 0xc9, 0x09, 0x73, 0x21, 0x04, 0x86, 0xb4, 0x7b, 0xe0, 0x6f, 0xbd, 0x55, 0xb5, 0x11,
      0xb6, 0x09, 0xfd, 0x49, 0x1d, 0xeb, 0x50, 0xa1, 0x5d, 0x8a, 0x93, 0xbd, 0xa3, 0x33, 0x6c,
      0xf6, 0xed, 0xb7, 0xf8, 0x44, 0x64, 0x6e, 0xc1, 0x61, 0xeb, 0x7c, 0xea, 0x2b, 0xf8, 0x53,
      0xad, 0x4b, 0xa2, 0x7a, 0x08, 0x14, 0xfc, 0x8c, 0xb2, 0xad, 0xa2, 0x83, 0x54, 0x73, 0x91,
      0x36, 0xf6, 0x99, 0x3c, 0x21, 0xb7, 0x11, 0xdc, 0x65, 0xc2, 0xb0, 0x07, 0x0f, 0x7d, 0x8d,
      0x84, 0x9d, 0x04, 0xaa, 0x5e, 0xbf, 0xd5, 0xd6, 0x37, 0x5a, 0xcd, 0xd1, 0xdf, 0xd2, 0x53,
      0xb2, 0x25, 0x89, 0xd3, 0x86, 0xed, 0xa3, 0x6e, 0x3a, 0x83, 0x0d, 0xef, 0xbb, 0x2f, 0xbd,
      0x01, 0x5b, 0x0a, 0x3b, 0xa0, 0x77, 0x0f, 0x60, 0xce, 0x56, 0x75, 0x5d, 0x87, 0x55, 0x3d,
      0x00, 0xf6, 0x41, 0x07, 0x33, 0xe9, 0x05, 0x29, 0xc6, 0x83, 0x85, 0x02, 0x6e, 0x30, 0xc9,
      0x8c, 0x0d, 0xde, 0x5e, 0x31, 0x33, 0x6b, 0xf9, 0xe0, 0xe5, 0x59, 0x5e, 0x5f, 0x9e, 0xc9,
      0x80, 0xe3, 0x94, 0xa7, 0xea, 0xde, 0x3c, 0x22, 0x5d, 0x18, 0x10, 0x5f, 0xbb, 0x01, 0x90,
      0x6e, 0x23, 0x46, 0x87, 0x7d, 0x5e, 0xa2, 0x8f, 0x4b, 0x7a, 0xf7, 0xd7, 0xe0, 0xb4, 0x9d,
      0x24, 0x7c, 0x9c, 0xf9, 0x16, 0xcd, 0x73, 0x52, 0xad, 0x64, 0xd8, 0xe1, 0x0b, 0x6a},
     {0x69, 0x4b, 0x79, 0x14, 0x8a, 0x8b, 0x6a, 0x32, 0x78, 0xb9, 0x08, 0x84,
      0x67, 0xc5, 0xf6, 0x2e, 0x29, 0x52, 0x75, 0x25, 0x4c, 0x62, 0xec, 0xe9,
      0xba, 0x35, 0x86, 0xdd, 0x09, 0xf4, 0x79, 0x1c, 0xea, 0xe4, 0x44, 0x59,
      0x99, 0x19, 0x9f, 0x42, 0x1e, 0xb5, 0xad, 0x6d, 0x04, 0xff, 0xf5, 0x2e}},
    // From SHA3_512LongMsg.rsp
    {HasherType::Sha3_512,
     7000 / 8,
     {0x09, 0xab, 0x78, 0x27, 0x47, 0x14, 0x14, 0x0e, 0x9e, 0x25, 0xd8, 0x1c, 0xa9, 0xa1, 0xcb,
      0x47, 0x59, 0x45, 0x09, 0x4f, 0x39, 0xfb, 0x22, 0x96, 0xf6, 0x51, 0xbd, 0x31, 0x1e, 0x29,
      0x81, 0x3f, 0x28, 0xb2, 0x35, 0x79, 0xb5, 0x97, 0x25, 0x0b, 0x15, 0x76, 0xc8, 0xa3, 0x0d,
      0x93, 0xa1, 0xc7, 0xd7, 0xce, 0x63, 0x6b, 0x6b, 0xd2, 0x58, 0xc3, 0xfd, 0x90, 0x03, 0x56,
      0xc7, 0xec, 0x05, 0x54, 0x08, 0xb5, 0x3d, 0x29, 0x4d, 0xdb, 0x33, 0x52, 0xef, 0xdc, 0xb7,
      0x6f, 0xdd, 0x80, 0xc5, 0x9a, 0x9b, 0xc6, 0xac, 0xf8, 0x8b, 0x1e, 0x6f, 0x8d, 0x6c, 0xd8,
      0x6c, 0x55, 0x20, 0xdd, 0x3b, 0x90, 0xb2, 0x9d, 0xd9, 0x5d, 0x97, 0x48, 0x06, 0x8a, 0x34,
      0x41, 0xeb, 0xab, 0xa1, 0xd0, 0x00, 0x69, 0xad, 0x17, 0x2d, 0x1d, 0x22, 0x47, 0x30, 0x9e,
      0x4a, 0x13, 0x3e, 0x56, 0xb1, 0x65, 0xed, 0x9c, 0x2d, 0x50, 0x51, 0x3e, 0x1c, 0x47, 0x65,
      0x5c, 0xed, 0x8c, 0xad, 0x7d, 0xe2, 0xea, 0x1a, 0xdc, 0x13, 0xa7, 0x2e, 0x03, 0xb7, 0xb5,
      0x60, 0x9b, 0x9f, 0x28, 0xc2, 0x83, 0x03, 0xed, 0xe1, 0x1f, 0x81, 0xb8, 0xed, 0xf3, 0x63,
      0x3e, 0x1a, 0x70, 0x21, 0xa5, 0x45, 0x0d, 0x26, 0x38, 0xdb, 0x9a, 0xd7, 0x60, 0xf7, 0xd1,
      0xd2, 0xcf, 0xca, 0x2f, 0x73, 0xff, 0x40, 0x02, 0x9d, 0xdb, 0xe0, 0xc2, 0xb7, 0xbc, 0xf5,
      0xa4, 0xf4, 0x96, 0xeb, 0x6d, 0xd8, 0x74, 0xfb, 0x84, 0xf8, 0x21, 0x0b, 0x4c, 0x01, 0x28,
      0xcf, 0xb0, 0xfb, 0xff, 0x35, 0x00, 0xcf, 0x80, 0x00, 0xfb, 0x07, 0x98, 0xb2, 0x2d, 0xd6,
      0x43, 0xb0, 0x7b, 0x58, 0xb8, 0xa1, 0xfc, 0x1a, 0xe0, 0x17, 0x0a, 0xdd, 0x0d, 0x71, 0x99,
      0x97, 0xe9, 0x00, 0xc8, 0xbb, 0xad, 0x68, 0xb6, 0xba, 0x93, 0x49, 0x97, 0xca, 0x8d, 0x1f,
      0x07, 0xe6, 0x37, 0x67, 0x9d, 0x16, 0x0a, 0x04, 0xc4, 0xf0, 0xd3, 0xe0, 0xc6, 0x5f, 0x64,
      0xd6, 0x2a, 0xa3, 0x8a, 0xd0, 0x40, 0x99, 0x3f, 0x2c, 0xfa, 0x3d, 0x20, 0x65, 0xfd, 0x6d,
      0x21, 0xef, 0xf8, 0xf0, 0x7f, 0x62, 0x35, 0xb6, 0xf6, 0xdb, 0x6e, 0x61, 0x35, 0x9f, 0xe1,
      0x05, 0x8f, 0x02, 0xa6, 0x2c, 0xf3, 0x88, 0x41, 0x1e, 0x1e, 0x49, 0x74, 0x5f, 0x0f, 0x9a,
      0x57, 0x78, 0xbb, 0xe9, 0xaa, 0xfa, 0x03, 0xe9, 0x69, 0xc1, 0xe3, 0xf0, 0xa1, 0x76, 0xec,
      0x9d, 0x83, 0x57, 0xf4, 0xbd, 0xb6, 0x3b, 0x0c, 0x6f, 0xf2, 0xd0, 0xb2, 0x87, 0xcb, 0x28,
      0x48, 0x31, 0xca, 0x74, 0xc5, 0xd7, 0xc2, 0x0f, 0xab, 0x44, 0x61, 0xbe, 0x39, 0x09, 0x06,
      0x36, 0xe1, 0x1f, 0xd2, 0xde, 0xfc, 0xcf, 0x02, 0xd7, 0xbd, 0xcf, 0x7c, 0x3a, 0x63, 0xae,
      0xa7, 0xa0, 0xb3, 0x71, 0x80, 0xe8, 0xa6, 0x7f, 0xeb, 0x34, 0x5f, 0xba, 0x46, 0x35, 0x5f,
      0xef, 0x44, 0xa9, 0xfc, 0x70, 0xf9, 0x21, 0x0f, 0xff, 0x31, 0x08, 0xee, 0xee, 0x06, 0xe1,
      0x9a, 0x85, 0xb2, 0xd0, 0x39, 0xa4, 0xa1, 0x5c, 0xc6, 0xa9, 0xcb, 0x73, 0x07, 0x94, 0x40,
      0xae, 0xbf, 0x6a, 0x04, 0xd7, 0x26, 0xd7, 0x1e, 0xa9, 0x96, 0x16, 0xec, 0xd6, 0x87, 0x16,
      0xb9, 0x4f, 0xbd, 0xd5, 0x91, 0xbf, 0xc0, 0x10, 0x54, 0x58, 0x8d, 0x1f, 0x0a, 0xd3, 0x8b,
      0x1b, 0x76, 0xb2, 0xc0, 0x41, 0xee, 0xc9, 0x45, 0x9b, 0x6a, 0xfc, 0xf7, 0xdd, 0xda, 0x4a,
      0x70, 0x8d, 0xbd, 0x0b, 0x36, 0x66, 0xef, 0x75, 0x31, 0xff, 0xc2, 0x65, 0x63, 0xa8, 0x51,
      0x5d, 0xd3, 0x94, 0x11, 0xc8, 0xca, 0x3e, 0xa9, 0x86, 0x42, 0x05, 0x04, 0xa4, 0x9c, 0x19,
      0xa4, 0x6b, 0x91, 0x9b, 0x39, 0x9d, 0x6b, 0x00, 0x72, 0xfb, 0x75, 0xb7, 0x13, 0x0a, 0xb0,
      0x0b, 0x48, 0x17, 0xc7, 0x4a, 0x38, 0x79, 0x45, 0x27, 0xde, 0x16, 0x06, 0x5d, 0x14, 0x29,
      0xeb, 0x95, 0xf1, 0x42, 0xd2, 0x8a, 0x55, 0x8e, 0xc6, 0x6b, 0xc2, 0x58, 0x72, 0x81, 0x6e,
      0xd0, 0xdc, 0x11, 0x96, 0x0b, 0x50, 0x84, 0x14, 0x4c, 0x99, 0xc5, 0x34, 0x82, 0x78, 0xeb,
      0xc4, 0x11, 0x4e, 0x18, 0x6a, 0xd5, 0x1c, 0xa0, 0x3b, 0x64, 0xad, 0x6e, 0x88, 0x94, 0x12,
      0xa4, 0xfb, 0x3e, 0x4f, 0x82, 0xe3, 0x41, 0x54, 0x89, 0xcd, 0xc9, 0x2f, 0xe0, 0x54, 0xd1,
      0x7f, 0xf6, 0x3a, 0xe6, 0x2c, 0x69, 0xb7, 0x2e, 0x55, 0x27, 0x10, 0xaa, 0x8a, 0xd3, 0x6c,
      0xb8, 0x3c, 0x6a, 0xe4, 0xdc, 0x71, 0x26, 0xd9, 0xbf, 0xbc, 0xa2, 0x8a, 0x78, 0x6d, 0x40,
      0xe5, 0x0b, 0x05, 0xc8, 0x9e, 0x2f, 0xed, 0x51, 0x7f, 0x55, 0x67, 0x65, 0xff, 0xe5, 0xc4,
      0x60, 0x15, 0xcb, 0xd8, 0x19, 0x4e, 0x32, 0xab, 0xc4, 0x1e, 0x8f, 0x71, 0x17, 0x73, 0xe2,
      0xbc, 0xac, 0x90, 0x39, 0xf1, 0xa7, 0x19, 0x75, 0xf8, 0x98, 0x6a, 0x50, 0x38, 0xa3, 0x2d,
      0x9f, 0xc3, 0xde, 0x2c, 0xd5, 0xcd, 0xfa, 0x63, 0xc9, 0x63, 0x26, 0x5a, 0xb9, 0x5a, 0x30,
      0xb2, 0x8e, 0x85, 0xed, 0xfd, 0x61, 0x2b, 0xdc, 0xd3, 0x3f, 0xb7, 0x06, 0x22, 0x29, 0xb2,
      0x28, 0xc5, 0x5f, 0xef, 0x14, 0x58, 0xdf, 0x05, 0x55, 0x4b, 0x28, 0x02, 0x12, 0x36, 0x43,
      0x5e, 0x35, 0x6c, 0x04, 0x2e, 0xcb, 0xd3, 0x8e, 0x9a, 0xae, 0xf3, 0x15, 0x91, 0x62, 0x4c,
      0xe8, 0xbc, 0x3e, 0xed, 0xae, 0xb0, 0xcc, 0x42, 0xef, 0x67, 0x72, 0x2e, 0xd7, 0xf1, 0x51,
      0x59, 0x37, 0x67, 0x6d, 0xcc, 0xcd, 0x21, 0x0e, 0xbb, 0xc5, 0x28, 0x67, 0xa1, 0x7f, 0xee,
      0x76, 0x93, 0x93, 0x3d, 0x2b, 0xcd, 0x13, 0x6e, 0xcc, 0x92, 0x10, 0xdb, 0x98, 0x33, 0x5f,
      0x97, 0xab, 0x6d, 0x9c, 0x5c, 0x21, 0xf7, 0x70, 0xc4, 0x7e, 0x5c, 0x10, 0xbc, 0x4e, 0x07,
      0x06, 0x36, 0x08, 0x9c, 0x34, 0x1f, 0x38, 0x8f, 0x16, 0x91, 0xdd, 0xef, 0x47, 0x49, 0x10,
      0x82, 0x47, 0x5b, 0xe7, 0x17, 0x7b, 0x24, 0x99, 0x18, 0x75, 0x81, 0xe3, 0x5f, 0x76, 0x3e,
      0xaa, 0x4a, 0x31, 0xd2, 0xe1, 0x12, 0xd2, 0x49, 0xad, 0x58, 0x3f, 0x81, 0xc7, 0x01, 0x9e,
      0x99, 0x23, 0x44, 0x17, 0xa7, 0xcf, 0x01, 0xdb, 0xa9, 0x1d, 0x55, 0x65, 0xbf, 0x04, 0x6b,
      0x00, 0x97, 0xc4, 0x95, 0x89, 0x28, 0xc9, 0x9b, 0x76, 0xa3, 0xd2, 0x53, 0x17, 0xa6, 0x52,
      0x71, 0x1c, 0xb3, 0x16, 0xa1, 0x58, 0xe2, 0x29, 0xd3, 0xc4, 0xd2, 0xf5, 0xd6, 0xc7, 0xe5,
      0xaa, 0x29, 0xb4, 0xad, 0xe4},
     {0x2c, 0x11, 0x82, 0xee, 0xe0, 0xa9, 0x0b, 0x68, 0x6a, 0x14, 0xe5, 0xc7, 0xf7,
      0xbd, 0x47, 0xf8, 0x9d, 0x44, 0xd5, 0x31, 0xa5, 0x3c, 0x84, 0xe8, 0x8c, 0x45,
      0x9c, 0x14, 0x60, 0xac, 0x7d, 0x2c, 0xc7, 0x92, 0x2b, 0x7b, 0xe6, 0x72, 0x59,
      0x6d, 0x55, 0x65, 0x4c, 0xb3, 0x88, 0xcf, 0x9b, 0x33, 0x00, 0xa9, 0xf3, 0x1f,
      0x18, 0xfb, 0xb4, 0x5f, 0x89, 0xa7, 0xdb, 0xee, 0x27, 0xed, 0x46, 0x2d}},
};

void ExpectOutput(const std::vector<uint8_t>& actual,
                  const std::initializer_list<uint8_t>& expected) {
    ASSERT_EQ(actual.size(), expected.size());
    size_t i = 0;
    for (auto expectedElem : expected) {
        EXPECT_EQ(actual[i], expectedElem);
        i++;
    }
}

// Check that hashing the long non-trivial message produces the expected output
TEST(Sha3, LongMessage) {
    for (const auto& test : longMessageTestingVectors) {
        ASSERT_EQ(test.input.size(), test.inputByteSize);
        Sha3Proxy sha3(test.type);
        ASSERT_EQ(test.expectedOutput.size(), sha3.OutputByteSize());
        auto result = sha3.Hash(test.input.data(), test.input.size());
        ExpectOutput(result, test.expectedOutput);
    }
}

// Check that using Update at any byte boundary produces the same result
TEST(Sha3, LongMessageUpdate) {
    for (const auto& test : longMessageTestingVectors) {
        ASSERT_EQ(test.input.size(), test.inputByteSize);
        for (size_t offset = 0; offset <= test.inputByteSize; offset++) {
            Sha3Proxy sha3(test.type);
            ASSERT_EQ(test.expectedOutput.size(), sha3.OutputByteSize());
            sha3.Update(test.input.data(), offset);
            sha3.Update(test.input.data() + offset, test.inputByteSize - offset);
            auto result = sha3.Finalize();
            ExpectOutput(result, test.expectedOutput);
        }
    }
}

}  // anonymous namespace
}  // namespace dawn
