/* Copyright 2016-2021 Michele Santullo * This file is part of "duckhandy". * * "duckhandy" is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * "duckhandy" is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with "duckhandy". If not, see . */ #include "catch2/catch.hpp" #include "duckhandy/tiger_bt.hpp" TEST_CASE("Build-time Tiger hash tests", "[hash][bt][tiger]") { using dhandy::bt::tiger; using dhandy::bt::TigerHash; using dhandy::bt::TigerPaddingV1; using dhandy::bt::TigerPaddingV2; constexpr TigerHash h1 = tiger("", 0, TigerPaddingV2); CHECK(h1.a == 0x738701f675be4144); CHECK(h1.b == 0x924b374527c206c2); CHECK(h1.c == 0x419f91ef3f31a84a); constexpr TigerHash h2 = tiger("", 0, TigerPaddingV1); CHECK(h2.a == 0x24f0130c63ac9332); CHECK(h2.b == 0x16166e76b1bb925f); CHECK(h2.c == 0xf373de2d49584e7a); constexpr TigerHash h3 = tiger("message digest", 14, TigerPaddingV2); CHECK(h3.a == 0x9d25fab5a11994e2); CHECK(h3.b == 0xea7850e77d5e00e8); CHECK(h3.c == 0x2d465225ef42a581); constexpr TigerHash h4 = tiger("message digest", 14, TigerPaddingV1); CHECK(h4.a == 0x951a2078cbf881d9); CHECK(h4.b == 0x1c441e754830cf0d); CHECK(h4.c == 0xf6295aa51aca7f51); constexpr TigerHash h5 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, TigerPaddingV2); CHECK(h5.a == 0x517bee8c22b69aea); CHECK(h5.b == 0x8c6c06a6fc4475b7); CHECK(h5.c == 0xcd059531e6ba5bbb); constexpr TigerHash h6 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, TigerPaddingV1); CHECK(h6.a == 0xee8375a180a6ce8d); CHECK(h6.b == 0x5186363c8aa32b50); CHECK(h6.c == 0xcca849dcccfb0f89); }