diff --git a/blake2.cpp b/blake2.cpp index 96b5e73b..543a015e 100644 --- a/blake2.cpp +++ b/blake2.cpp @@ -64,7 +64,7 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_IV {}; template<> struct CRYPTOPP_NO_VTABLE BLAKE2_IV { - CRYPTOPP_CONSTANT(IVSIZE = 8); + CRYPTOPP_CONSTANT(IVSIZE = 8) // Always align for NEON and SSE CRYPTOPP_ALIGN_DATA(16) static const word32 iv[8]; }; @@ -79,7 +79,7 @@ const word32 BLAKE2_IV::iv[8] = { template<> struct CRYPTOPP_NO_VTABLE BLAKE2_IV { - CRYPTOPP_CONSTANT(IVSIZE = 8); + CRYPTOPP_CONSTANT(IVSIZE = 8) // Always align for NEON and SSE CRYPTOPP_ALIGN_DATA(16) static const word64 iv[8]; }; @@ -278,7 +278,7 @@ void BLAKE2_Base::UncheckedSetKey(const byte *key, unsigned int leng } // Zero everything except the two trailing strings - ParameterBlock& block = *m_block; + ParameterBlock& block = *m_block.data(); const size_t head = sizeof(block) - sizeof(block.personalization) - sizeof(block.salt); memset(m_block.data(), 0x00, head); @@ -351,7 +351,7 @@ template void BLAKE2_Base::Restart() { static const W zero[2] = {0,0}; - Restart(*m_block, zero); + Restart(*m_block.data(), zero); } template @@ -362,11 +362,11 @@ void BLAKE2_Base::Restart(const BLAKE2_ParameterBlock& bloc if (&block != m_block.data()) { memcpy_s(m_block, sizeof(block), &block, sizeof(block)); - (*m_block).digestLength = (byte)m_digestSize; - (*m_block).keyLength = (byte)m_key.size(); + (*m_block.data()).digestLength = (byte)m_digestSize; + (*m_block.data()).keyLength = (byte)m_key.size(); } - State& state = *m_state; + State& state = *m_state.data(); state.t[0] = state.t[1] = 0, state.f[0] = state.f[1] = 0, state.length = 0; if (counter != NULL) @@ -388,7 +388,7 @@ void BLAKE2_Base::Restart(const BLAKE2_ParameterBlock& bloc template void BLAKE2_Base::Update(const byte *input, size_t length) { - State& state = *m_state; + State& state = *m_state.data(); if (state.length + length > BLOCKSIZE) { // Complete current block @@ -423,7 +423,7 @@ void BLAKE2_Base::TruncatedFinal(byte *hash, size_t size) this->ThrowIfInvalidTruncatedSize(size); // Set last block unconditionally - State& state = *m_state; + State& state = *m_state.data(); state.f[0] = static_cast(-1); // Set last node if tree mode @@ -445,7 +445,7 @@ void BLAKE2_Base::TruncatedFinal(byte *hash, size_t size) template void BLAKE2_Base::IncrementCounter(size_t count) { - State& state = *m_state; + State& state = *m_state.data(); state.t[0] += static_cast(count); state.t[1] += !!(state.t[0] < count); } @@ -455,7 +455,7 @@ void BLAKE2_Base::Compress(const byte *input) { // Selects the most advanced implmentation at runtime static const pfnCompress64 s_pfn = InitializeCompress64Fn(); - s_pfn(input, *m_state); + s_pfn(input, *m_state.data()); } template <> @@ -463,7 +463,7 @@ void BLAKE2_Base::Compress(const byte *input) { // Selects the most advanced implmentation at runtime static const pfnCompress32 s_pfn = InitializeCompress32Fn(); - s_pfn(input, *m_state); + s_pfn(input, *m_state.data()); } void BLAKE2_CXX_Compress64(const byte* input, BLAKE2_State& state) diff --git a/blake2.h b/blake2.h index bcc239df..fe93d7ed 100644 --- a/blake2.h +++ b/blake2.h @@ -30,9 +30,9 @@ template struct CRYPTOPP_NO_VTABLE BLAKE2_Info : public VariableKeyLength<(T_64bit ? 64 : 32),0,(T_64bit ? 64 : 32),1,SimpleKeyingInterface::NOT_RESYNCHRONIZABLE> { typedef VariableKeyLength<(T_64bit ? 64 : 32),0,(T_64bit ? 64 : 32),1,SimpleKeyingInterface::NOT_RESYNCHRONIZABLE> KeyBase; - CRYPTOPP_CONSTANT(MIN_KEYLENGTH = KeyBase::MIN_KEYLENGTH); - CRYPTOPP_CONSTANT(MAX_KEYLENGTH = KeyBase::MAX_KEYLENGTH); - CRYPTOPP_CONSTANT(DEFAULT_KEYLENGTH = KeyBase::DEFAULT_KEYLENGTH); + CRYPTOPP_CONSTANT(MIN_KEYLENGTH = KeyBase::MIN_KEYLENGTH) + CRYPTOPP_CONSTANT(MAX_KEYLENGTH = KeyBase::MAX_KEYLENGTH) + CRYPTOPP_CONSTANT(DEFAULT_KEYLENGTH = KeyBase::DEFAULT_KEYLENGTH) CRYPTOPP_CONSTANT(BLOCKSIZE = (T_64bit ? 128 : 64)) CRYPTOPP_CONSTANT(DIGESTSIZE = (T_64bit ? 64 : 32)) @@ -56,9 +56,9 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock template<> struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock { - CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE); - CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE); - CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE); + CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE) + CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE) + CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE) BLAKE2_ParameterBlock() { @@ -91,9 +91,9 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock template<> struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock { - CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE); - CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE); - CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE); + CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE) + CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE) + CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE) BLAKE2_ParameterBlock() { @@ -131,7 +131,7 @@ struct CRYPTOPP_NO_VTABLE BLAKE2_ParameterBlock template struct CRYPTOPP_NO_VTABLE BLAKE2_State { - CRYPTOPP_CONSTANT(BLOCKSIZE = BLAKE2_Info::BLOCKSIZE); + CRYPTOPP_CONSTANT(BLOCKSIZE = BLAKE2_Info::BLOCKSIZE) BLAKE2_State() { @@ -157,14 +157,14 @@ template class BLAKE2_Base : public SimpleKeyingInterfaceImpl > { public: - CRYPTOPP_CONSTANT(DEFAULT_KEYLENGTH = BLAKE2_Info::DEFAULT_KEYLENGTH); - CRYPTOPP_CONSTANT(MIN_KEYLENGTH = BLAKE2_Info::MIN_KEYLENGTH); - CRYPTOPP_CONSTANT(MAX_KEYLENGTH = BLAKE2_Info::MAX_KEYLENGTH); + CRYPTOPP_CONSTANT(DEFAULT_KEYLENGTH = BLAKE2_Info::DEFAULT_KEYLENGTH) + CRYPTOPP_CONSTANT(MIN_KEYLENGTH = BLAKE2_Info::MIN_KEYLENGTH) + CRYPTOPP_CONSTANT(MAX_KEYLENGTH = BLAKE2_Info::MAX_KEYLENGTH) - CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE); - CRYPTOPP_CONSTANT(BLOCKSIZE = BLAKE2_Info::BLOCKSIZE); - CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE); - CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE); + CRYPTOPP_CONSTANT(DIGESTSIZE = BLAKE2_Info::DIGESTSIZE) + CRYPTOPP_CONSTANT(BLOCKSIZE = BLAKE2_Info::BLOCKSIZE) + CRYPTOPP_CONSTANT(SALTSIZE = BLAKE2_Info::SALTSIZE) + CRYPTOPP_CONSTANT(PERSONALIZATIONSIZE = BLAKE2_Info::PERSONALIZATIONSIZE) typedef BLAKE2_ParameterBlock ParameterBlock; typedef BLAKE2_State State;