Fix namespaces, copyright and magic numbers
This commit is contained in:
parent
d3731253e4
commit
327d93a6a4
3 changed files with 27 additions and 24 deletions
|
@ -1,30 +1,28 @@
|
||||||
/* Copyright 2015, Michele Santullo
|
/* Copyright 2016-2021, Michele Santullo
|
||||||
* This file is part of DoorKeeper.
|
* This file is part of "duckhandy".
|
||||||
*
|
*
|
||||||
* DoorKeeper is free software: you can redistribute it and/or modify
|
* "duckhandy" is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* DoorKeeper is distributed in the hope that it will be useful,
|
* "duckhandy" is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with DoorKeeper. If not, see <http://www.gnu.org/licenses/>.
|
* along with "duckhandy". If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef id1E6CCE44307549A9B6C9E4E5923AC002
|
#ifndef id1E6CCE44307549A9B6C9E4E5923AC002
|
||||||
#define id1E6CCE44307549A9B6C9E4E5923AC002
|
#define id1E6CCE44307549A9B6C9E4E5923AC002
|
||||||
|
|
||||||
//#include "doorkeeper/helpers/hashing.hpp"
|
|
||||||
//#include "doorkeeper/implem/compatibility.h"
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <ciso646>
|
#include <ciso646>
|
||||||
#include <climits>
|
#include <climits>
|
||||||
|
|
||||||
namespace dk {
|
namespace dhandy::bt {
|
||||||
struct HashType {
|
struct HashType {
|
||||||
constexpr HashType ( uint64_t parA, uint64_t parB, uint64_t parC ) :
|
constexpr HashType ( uint64_t parA, uint64_t parB, uint64_t parC ) :
|
||||||
a(parA), b(parB), c(parC)
|
a(parA), b(parB), c(parC)
|
||||||
|
@ -50,9 +48,12 @@ namespace dk {
|
||||||
uint64_t c;
|
uint64_t c;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline const constexpr char TigerPaddingV1 = 0x01;
|
||||||
|
inline const constexpr char TigerPaddingV2 = 0x80;
|
||||||
|
|
||||||
[[gnu::const]]
|
[[gnu::const]]
|
||||||
constexpr HashType tiger ( const char* parStr, uint64_t parLen, char parPad );
|
constexpr HashType tiger ( const char* parStr, uint64_t parLen, char parPad );
|
||||||
} //namespace dk
|
} //namespace dhandy::bt
|
||||||
|
|
||||||
#include "tiger_bt.inl"
|
#include "tiger_bt.inl"
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
/* Copyright 2015, Michele Santullo
|
/* Copyright 2016-2021, Michele Santullo
|
||||||
* This file is part of DoorKeeper.
|
* This file is part of "duckhandy".
|
||||||
*
|
*
|
||||||
* DoorKeeper is free software: you can redistribute it and/or modify
|
* "duckhandy" is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* DoorKeeper is distributed in the hope that it will be useful,
|
* "duckhandy" is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with DoorKeeper. If not, see <http://www.gnu.org/licenses/>.
|
* along with "duckhandy". If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lengthof
|
#ifndef lengthof
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
# define UNDEF_lengthof
|
# define UNDEF_lengthof
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace dk {
|
namespace dhandy::bt {
|
||||||
namespace implem {
|
namespace implem {
|
||||||
constexpr const uint64_t table[4*256] = {0x02AAB17CF7E90C5EULL, 0xAC424B03E243A8ECULL,
|
constexpr const uint64_t table[4*256] = {0x02AAB17CF7E90C5EULL, 0xAC424B03E243A8ECULL,
|
||||||
0x72CD5BE30DD5FCD3ULL, 0x6D019B93F6F97F3AULL, 0xCD9978FFD21F9193ULL, 0x7573A1C9708029E2ULL,
|
0x72CD5BE30DD5FCD3ULL, 0x6D019B93F6F97F3AULL, 0xCD9978FFD21F9193ULL, 0x7573A1C9708029E2ULL,
|
||||||
|
@ -490,7 +490,7 @@ namespace dk {
|
||||||
parPad
|
parPad
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} //namespace dk
|
} //namespace dhandy::bt
|
||||||
|
|
||||||
#if defined UNDEF_lengthof
|
#if defined UNDEF_lengthof
|
||||||
# undef lengthof
|
# undef lengthof
|
||||||
|
|
|
@ -19,35 +19,37 @@
|
||||||
#include "duckhandy/tiger_bt.hpp"
|
#include "duckhandy/tiger_bt.hpp"
|
||||||
|
|
||||||
TEST_CASE("Build-time Tiger hash tests", "[hash][bt][tiger]") {
|
TEST_CASE("Build-time Tiger hash tests", "[hash][bt][tiger]") {
|
||||||
using dk::tiger;
|
using dhandy::bt::tiger;
|
||||||
using dk::HashType;
|
using dhandy::bt::HashType;
|
||||||
|
using dhandy::bt::TigerPaddingV1;
|
||||||
|
using dhandy::bt::TigerPaddingV2;
|
||||||
|
|
||||||
constexpr HashType h1 = tiger("", 0, 0x80); //v2
|
constexpr HashType h1 = tiger("", 0, TigerPaddingV2);
|
||||||
CHECK(h1.a == 0x738701f675be4144);
|
CHECK(h1.a == 0x738701f675be4144);
|
||||||
CHECK(h1.b == 0x924b374527c206c2);
|
CHECK(h1.b == 0x924b374527c206c2);
|
||||||
CHECK(h1.c == 0x419f91ef3f31a84a);
|
CHECK(h1.c == 0x419f91ef3f31a84a);
|
||||||
|
|
||||||
constexpr HashType h2 = tiger("", 0, 0x01); //v1
|
constexpr HashType h2 = tiger("", 0, TigerPaddingV1);
|
||||||
CHECK(h2.a == 0x24f0130c63ac9332);
|
CHECK(h2.a == 0x24f0130c63ac9332);
|
||||||
CHECK(h2.b == 0x16166e76b1bb925f);
|
CHECK(h2.b == 0x16166e76b1bb925f);
|
||||||
CHECK(h2.c == 0xf373de2d49584e7a);
|
CHECK(h2.c == 0xf373de2d49584e7a);
|
||||||
|
|
||||||
constexpr HashType h3 = tiger("message digest", 14, 0x80); //v2
|
constexpr HashType h3 = tiger("message digest", 14, TigerPaddingV2);
|
||||||
CHECK(h3.a == 0x9d25fab5a11994e2);
|
CHECK(h3.a == 0x9d25fab5a11994e2);
|
||||||
CHECK(h3.b == 0xea7850e77d5e00e8);
|
CHECK(h3.b == 0xea7850e77d5e00e8);
|
||||||
CHECK(h3.c == 0x2d465225ef42a581);
|
CHECK(h3.c == 0x2d465225ef42a581);
|
||||||
|
|
||||||
constexpr HashType h4 = tiger("message digest", 14, 0x01); //v1
|
constexpr HashType h4 = tiger("message digest", 14, TigerPaddingV1);
|
||||||
CHECK(h4.a == 0x951a2078cbf881d9);
|
CHECK(h4.a == 0x951a2078cbf881d9);
|
||||||
CHECK(h4.b == 0x1c441e754830cf0d);
|
CHECK(h4.b == 0x1c441e754830cf0d);
|
||||||
CHECK(h4.c == 0xf6295aa51aca7f51);
|
CHECK(h4.c == 0xf6295aa51aca7f51);
|
||||||
|
|
||||||
constexpr HashType h5 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, 0x80); //v2
|
constexpr HashType h5 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, TigerPaddingV2);
|
||||||
CHECK(h5.a == 0x517bee8c22b69aea);
|
CHECK(h5.a == 0x517bee8c22b69aea);
|
||||||
CHECK(h5.b == 0x8c6c06a6fc4475b7);
|
CHECK(h5.b == 0x8c6c06a6fc4475b7);
|
||||||
CHECK(h5.c == 0xcd059531e6ba5bbb);
|
CHECK(h5.c == 0xcd059531e6ba5bbb);
|
||||||
|
|
||||||
constexpr HashType h6 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, 0x01); //v1
|
constexpr HashType h6 = tiger("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 62, TigerPaddingV1);
|
||||||
CHECK(h6.a == 0xee8375a180a6ce8d);
|
CHECK(h6.a == 0xee8375a180a6ce8d);
|
||||||
CHECK(h6.b == 0x5186363c8aa32b50);
|
CHECK(h6.b == 0x5186363c8aa32b50);
|
||||||
CHECK(h6.c == 0xcca849dcccfb0f89);
|
CHECK(h6.c == 0xcca849dcccfb0f89);
|
||||||
|
|
Loading…
Reference in a new issue