From 602fa05825f9fa9ec892275c2e95565354047918 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Fri, 1 Sep 2017 14:19:48 -0400 Subject: [PATCH] Cleared unused variable warning under MSC --- blake2.cpp | 71 +++++++++++++++++++++++------------------------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/blake2.cpp b/blake2.cpp index e5a07cd8..8bac71e0 100644 --- a/blake2.cpp +++ b/blake2.cpp @@ -41,34 +41,24 @@ ANONYMOUS_NAMESPACE_BEGIN template struct BLAKE2_IV { - CRYPTOPP_ALIGN_DATA(16) W iv[8]; + CRYPTOPP_ALIGN_DATA(16) + static const W iv[8]; }; template<> -struct BLAKE2_IV -{ - CRYPTOPP_ALIGN_DATA(16) - const word32 iv[8] = { - 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, - 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL - }; +const word32 BLAKE2_IV::iv[8] = { + 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL, + 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL }; template<> -struct BLAKE2_IV -{ - CRYPTOPP_ALIGN_DATA(16) - const word64 iv[8] = { - W64LIT(0x6a09e667f3bcc908), W64LIT(0xbb67ae8584caa73b), - W64LIT(0x3c6ef372fe94f82b), W64LIT(0xa54ff53a5f1d36f1), - W64LIT(0x510e527fade682d1), W64LIT(0x9b05688c2b3e6c1f), - W64LIT(0x1f83d9abfb41bd6b), W64LIT(0x5be0cd19137e2179) - }; +const word64 BLAKE2_IV::iv[8] = { + W64LIT(0x6a09e667f3bcc908), W64LIT(0xbb67ae8584caa73b), + W64LIT(0x3c6ef372fe94f82b), W64LIT(0xa54ff53a5f1d36f1), + W64LIT(0x510e527fade682d1), W64LIT(0x9b05688c2b3e6c1f), + W64LIT(0x1f83d9abfb41bd6b), W64LIT(0x5be0cd19137e2179) }; -template class BLAKE2_IV; -template class BLAKE2_IV; - CRYPTOPP_ALIGN_DATA(16) const byte BLAKE2S_SIGMA[10][16] = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, @@ -335,10 +325,9 @@ void BLAKE2_Base::Restart(const BLAKE2_ParameterBlock& bloc state.t[1] = counter[1]; } - // const W* IV = BLAKE2_IV.iv; - BLAKE2_IV IV; + const W* iv = BLAKE2_IV::iv; PutBlock put(m_block.data(), &state.h[0]); - put(IV.iv[0])(IV.iv[1])(IV.iv[2])(IV.iv[3])(IV.iv[4])(IV.iv[5])(IV.iv[6])(IV.iv[7]); + put(iv[0])(iv[1])(iv[2])(iv[3])(iv[4])(iv[5])(iv[6])(iv[7]); // When BLAKE2 is keyed, the input stream is simply {key||message}. Key it // during Restart to avoid FirstPut and friends. Key size == 0 means no key. @@ -466,15 +455,15 @@ void BLAKE2_Compress64_CXX(const byte* input, BLAKE2_State& state) GetBlock get2(&state.h[0]); get2(v[0])(v[1])(v[2])(v[3])(v[4])(v[5])(v[6])(v[7]); - BLAKE2_IV IV; - v[ 8] = IV.iv[0]; - v[ 9] = IV.iv[1]; - v[10] = IV.iv[2]; - v[11] = IV.iv[3]; - v[12] = state.t[0] ^ IV.iv[4]; - v[13] = state.t[1] ^ IV.iv[5]; - v[14] = state.f[0] ^ IV.iv[6]; - v[15] = state.f[1] ^ IV.iv[7]; + const word64* iv = BLAKE2_IV::iv; + v[ 8] = iv[0]; + v[ 9] = iv[1]; + v[10] = iv[2]; + v[11] = iv[3]; + v[12] = state.t[0] ^ iv[4]; + v[13] = state.t[1] ^ iv[5]; + v[14] = state.f[0] ^ iv[6]; + v[15] = state.f[1] ^ iv[7]; BLAKE2_ROUND(0); BLAKE2_ROUND(1); @@ -530,15 +519,15 @@ void BLAKE2_Compress32_CXX(const byte* input, BLAKE2_State& state GetBlock get2(&state.h[0]); get2(v[0])(v[1])(v[2])(v[3])(v[4])(v[5])(v[6])(v[7]); - BLAKE2_IV IV; - v[ 8] = IV.iv[0]; - v[ 9] = IV.iv[1]; - v[10] = IV.iv[2]; - v[11] = IV.iv[3]; - v[12] = state.t[0] ^ IV.iv[4]; - v[13] = state.t[1] ^ IV.iv[5]; - v[14] = state.f[0] ^ IV.iv[6]; - v[15] = state.f[1] ^ IV.iv[7]; + const word32* iv = BLAKE2_IV::iv; + v[ 8] = iv[0]; + v[ 9] = iv[1]; + v[10] = iv[2]; + v[11] = iv[3]; + v[12] = state.t[0] ^ iv[4]; + v[13] = state.t[1] ^ iv[5]; + v[14] = state.f[0] ^ iv[6]; + v[15] = state.f[1] ^ iv[7]; BLAKE2_ROUND(0); BLAKE2_ROUND(1);