From 7c73f25f12294dbb36b31463a21a7b09160c9b19 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 17 Dec 2016 10:46:59 -0500 Subject: [PATCH] Updated documentation --- siphash.h | 10 +++++++- validat3.cpp | 70 ++++++++++++++++++++++++++-------------------------- 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/siphash.h b/siphash.h index a0d5180b..aa6bc8fa 100644 --- a/siphash.h +++ b/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 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 class SipHash_Base : public MessageAuthenticationCode, public SipHash_Info { @@ -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 diff --git a/validat3.cpp b/validat3.cpp index 4297d886..6fd6ab5e 100644 --- a/validat3.cpp +++ b/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";