Rename HashType to TigerHash
This commit is contained in:
parent
e8467cebe0
commit
094f7fc679
3 changed files with 23 additions and 23 deletions
|
@ -24,18 +24,18 @@
|
|||
#include <climits>
|
||||
|
||||
namespace dhandy::bt {
|
||||
struct HashType {
|
||||
consteval HashType ( uint64_t parA, uint64_t parB, uint64_t parC ) :
|
||||
struct TigerHash {
|
||||
consteval TigerHash ( uint64_t parA, uint64_t parB, uint64_t parC ) :
|
||||
a(parA), b(parB), c(parC)
|
||||
{
|
||||
}
|
||||
consteval HashType ( uint64_t parAP, uint64_t parA, uint64_t parBP, uint64_t parB, uint64_t parCP, uint64_t parC ) :
|
||||
consteval TigerHash ( uint64_t parAP, uint64_t parA, uint64_t parBP, uint64_t parB, uint64_t parCP, uint64_t parC ) :
|
||||
a(0 == parAP ? parA : (0 == parBP ? parB : (0 == parCP ? parC : throw 0))),
|
||||
b(1 == parAP ? parA : (1 == parBP ? parB : (1 == parCP ? parC : throw 0))),
|
||||
c(2 == parAP ? parA : (2 == parBP ? parB : (2 == parCP ? parC : throw 0)))
|
||||
{
|
||||
}
|
||||
consteval HashType ( const HashType& ) = default;
|
||||
consteval TigerHash ( const TigerHash& ) = default;
|
||||
consteval uint64_t operator[] ( uint64_t parIndex ) const {
|
||||
return (parIndex == 0 ? a :
|
||||
(parIndex == 1 ? b :
|
||||
|
@ -53,7 +53,7 @@ namespace dhandy::bt {
|
|||
inline const constexpr char TigerPaddingV2 = 0x80;
|
||||
|
||||
[[gnu::const]]
|
||||
consteval HashType tiger ( const char* parStr, uint64_t parLen, char parPad );
|
||||
consteval TigerHash tiger ( const char* parStr, uint64_t parLen, char parPad );
|
||||
} //namespace dhandy::bt
|
||||
|
||||
#include "tiger_bt.inl"
|
||||
|
|
|
@ -358,8 +358,8 @@ namespace dhandy::bt {
|
|||
return (r >> (a * CHAR_BIT)) bitand 0xff;
|
||||
}
|
||||
|
||||
consteval HashType round (uint64_t mul, uint64_t a, uint64_t b, uint64_t c, uint64_t x, const TigerBlock& block, const HashType& hash) {
|
||||
return HashType(
|
||||
consteval TigerHash round (uint64_t mul, uint64_t a, uint64_t b, uint64_t c, uint64_t x, const TigerBlock& block, const TigerHash& hash) {
|
||||
return TigerHash(
|
||||
a,
|
||||
hash[a] - (
|
||||
table[ gb(hash[c] xor block[x], 0)] xor
|
||||
|
@ -377,7 +377,7 @@ namespace dhandy::bt {
|
|||
);
|
||||
}
|
||||
|
||||
consteval HashType pass (uint64_t a, uint64_t b, uint64_t c, uint64_t mul, const TigerBlock& block, const HashType& hash, uint64_t x=0) {
|
||||
consteval TigerHash pass (uint64_t a, uint64_t b, uint64_t c, uint64_t mul, const TigerBlock& block, const TigerHash& hash, uint64_t x=0) {
|
||||
return (
|
||||
8 == x ?
|
||||
//if 0 == x
|
||||
|
@ -426,15 +426,15 @@ namespace dhandy::bt {
|
|||
);
|
||||
}
|
||||
|
||||
consteval HashType finalize_tiger_step (HashType parOriginal, HashType parPartial) {
|
||||
return HashType(
|
||||
consteval TigerHash finalize_tiger_step (TigerHash parOriginal, TigerHash parPartial) {
|
||||
return TigerHash(
|
||||
parPartial.a ^ parOriginal.a,
|
||||
parPartial.b - parOriginal.b,
|
||||
parPartial.c + parOriginal.c
|
||||
);
|
||||
}
|
||||
|
||||
consteval HashType tiger_block (const TigerBlock& parBlock, HashType parHash) {
|
||||
consteval TigerHash tiger_block (const TigerBlock& parBlock, TigerHash parHash) {
|
||||
return finalize_tiger_step(
|
||||
parHash,
|
||||
pass(1, 2, 0, 9, key_sched(key_sched(parBlock)),
|
||||
|
@ -445,11 +445,11 @@ namespace dhandy::bt {
|
|||
);
|
||||
}
|
||||
|
||||
consteval HashType tiger_block (const char* parStr, HashType parHash) {
|
||||
consteval TigerHash tiger_block (const char* parStr, TigerHash parHash) {
|
||||
return tiger_block(TigerBlock(parStr), parHash);
|
||||
}
|
||||
|
||||
consteval HashType tiger_chunk (const char* parStr, uint64_t parLen, HashType parHash) {
|
||||
consteval TigerHash tiger_chunk (const char* parStr, uint64_t parLen, TigerHash parHash) {
|
||||
return (parLen == 0 ?
|
||||
//if parLen == 0
|
||||
parHash
|
||||
|
@ -459,7 +459,7 @@ namespace dhandy::bt {
|
|||
);
|
||||
}
|
||||
|
||||
consteval HashType tiger_last_chunk (const char* parStr, uint64_t parLen, uint64_t parRealLen, HashType parHash, char parPad) {
|
||||
consteval TigerHash tiger_last_chunk (const char* parStr, uint64_t parLen, uint64_t parRealLen, TigerHash parHash, char parPad) {
|
||||
return (
|
||||
parLen + 1 + ((8 - parLen - 1) bitand 7) == 64 ?
|
||||
tiger_block(
|
||||
|
@ -472,7 +472,7 @@ namespace dhandy::bt {
|
|||
}
|
||||
} //namespace implem
|
||||
|
||||
consteval HashType tiger (const char* parStr, uint64_t parLen, char parPad) {
|
||||
consteval TigerHash tiger (const char* parStr, uint64_t parLen, char parPad) {
|
||||
return implem::tiger_last_chunk(
|
||||
parStr + (parLen bitand ~static_cast<uint64_t>(0x3f)),
|
||||
parLen - (parLen bitand ~static_cast<uint64_t>(0x3f)),
|
||||
|
@ -480,7 +480,7 @@ namespace dhandy::bt {
|
|||
implem::tiger_chunk(
|
||||
parStr,
|
||||
parLen bitand ~static_cast<uint64_t>(0x3f),
|
||||
HashType(0x0123456789ABCDEFULL, 0xFEDCBA9876543210ULL, 0xF096A5B4C3B2E187ULL)
|
||||
TigerHash{0x0123456789ABCDEFULL, 0xFEDCBA9876543210ULL, 0xF096A5B4C3B2E187ULL}
|
||||
),
|
||||
parPad
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue