Updated documentation
parent
cc6702a434
commit
7c73f25f12
10
siphash.h
10
siphash.h
|
|
@ -33,6 +33,9 @@
|
|||
|
||||
NAMESPACE_BEGIN(CryptoPP)
|
||||
|
||||
//! \class SipHash_Info
|
||||
//! \brief SipHash message authentication code information
|
||||
//! \tparam T_128bit flag indicating 128-bit (true) versus 64-bit (false) digest size
|
||||
template <bool T_128bit>
|
||||
class SipHash_Info : public FixedKeyLength<16>
|
||||
{
|
||||
|
|
@ -41,6 +44,11 @@ public:
|
|||
CRYPTOPP_CONSTANT(DIGESTSIZE = (T_128bit ? 16 : 8))
|
||||
};
|
||||
|
||||
//! \class SipHash_Base
|
||||
//! \brief SipHash message authentication code base class
|
||||
//! \tparam C the number of compression rounds
|
||||
//! \tparam D the number of finalization rounds
|
||||
//! \tparam T_128bit flag indicating 128-bit (true) versus 64-bit (false) digest size
|
||||
template <unsigned int C, unsigned int D, bool T_128bit>
|
||||
class SipHash_Base : public MessageAuthenticationCode, public SipHash_Info<T_128bit>
|
||||
{
|
||||
|
|
@ -105,7 +113,7 @@ private:
|
|||
};
|
||||
|
||||
//! \class SipHash
|
||||
//! \brief A family of pseudorandom functions optimized for speed on short messages
|
||||
//! \brief SipHash message authentication code
|
||||
//! \tparam C the number of compression rounds
|
||||
//! \tparam D the number of finalization rounds
|
||||
//! \tparam T_128bit flag indicating 128-bit (true) versus 64-bit (false) digest size
|
||||
|
|
|
|||
70
validat3.cpp
70
validat3.cpp
|
|
@ -963,41 +963,6 @@ bool ValidateSipHash()
|
|||
pass = pass1 && pass;
|
||||
}
|
||||
|
||||
// Siphash-4-8, 64-bit MAC
|
||||
{
|
||||
const byte key[] = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
|
||||
SipHash<4, 8, false> hash(key, 16);
|
||||
byte digest[SipHash<4, 8, false>::DIGESTSIZE];
|
||||
|
||||
hash.Update((const byte*)"", 0);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x41\xDA\x38\x99\x2B\x05\x79\xC8", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00", 1);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x51\xB8\x95\x52\xF9\x14\x59\xC8", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06", 7);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x47\xD7\x3F\x71\x5A\xBE\xFD\x4E", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06\x07", 8);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x20\xB5\x8B\x9C\x07\x2F\xDB\x50", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06\x07\x08", 9);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x36\x31\x9A\xF3\x5E\xE1\x12\x53", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
cout << (pass2 ? "passed " : "FAILED ") << "SipHash-4-8 64-bit MAC\n";
|
||||
pass = pass2 && pass;
|
||||
}
|
||||
|
||||
// Siphash-2-4, 128-bit MAC
|
||||
{
|
||||
const byte key[] = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
|
||||
|
|
@ -1033,6 +998,41 @@ bool ValidateSipHash()
|
|||
pass = pass3 && pass;
|
||||
}
|
||||
|
||||
// Siphash-4-8, 64-bit MAC
|
||||
{
|
||||
const byte key[] = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
|
||||
SipHash<4, 8, false> hash(key, 16);
|
||||
byte digest[SipHash<4, 8, false>::DIGESTSIZE];
|
||||
|
||||
hash.Update((const byte*)"", 0);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x41\xDA\x38\x99\x2B\x05\x79\xC8", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00", 1);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x51\xB8\x95\x52\xF9\x14\x59\xC8", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06", 7);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x47\xD7\x3F\x71\x5A\xBE\xFD\x4E", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06\x07", 8);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x20\xB5\x8B\x9C\x07\x2F\xDB\x50", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
hash.Update((const byte*)"\x00\x01\x02\x03\x04\x05\x06\x07\x08", 9);
|
||||
hash.Final(digest);
|
||||
fail = !!memcmp("\x36\x31\x9A\xF3\x5E\xE1\x12\x53", digest, COUNTOF(digest));
|
||||
pass2 = !fail && pass2;
|
||||
|
||||
cout << (pass2 ? "passed " : "FAILED ") << "SipHash-4-8 64-bit MAC\n";
|
||||
pass = pass2 && pass;
|
||||
}
|
||||
|
||||
// Siphash-4-8, 128-bit MAC
|
||||
{
|
||||
const byte key[] = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F";
|
||||
|
|
|
|||
Loading…
Reference in New Issue