diff --git a/SHAMapNodes.cpp b/SHAMapNodes.cpp index 44ff320540..252bc0aa6e 100644 --- a/SHAMapNodes.cpp +++ b/SHAMapNodes.cpp @@ -251,12 +251,7 @@ bool SHAMapTreeNode::updateHash() break; } if(!empty) - { - uint256 j[2]; - SHA512(reinterpret_cast(mHashes), sizeof(mHashes), (unsigned char *) j); - nh=j[0]; - assert(!!nh); - } + nh=Serializer::getSHA512Half(reinterpret_cast(mHashes), sizeof(mHashes)); } else if(mType==ACCOUNT_STATE) { diff --git a/Serializer.cpp b/Serializer.cpp index 4344020953..b487df6919 100644 --- a/Serializer.cpp +++ b/Serializer.cpp @@ -192,6 +192,13 @@ uint256 Serializer::getSHA512Half(const std::vector& data, int si return j[0]; } +uint256 Serializer::getSHA512Half(const unsigned char *data, int len) +{ + uint256 j[2]; + SHA512(data, len, (unsigned char *) j); + return j[0]; +} + bool Serializer::checkSignature(int pubkeyOffset, int signatureOffset) const { std::vector pubkey, signature; diff --git a/Serializer.h b/Serializer.h index e9621b288e..2cb3fe2428 100644 --- a/Serializer.h +++ b/Serializer.h @@ -47,6 +47,7 @@ class Serializer uint256 getSHA256(int size=-1) const; uint256 getSHA512Half(int size=-1) const; static uint256 getSHA512Half(const std::vector& data, int size=-1); + static uint256 getSHA512Half(const unsigned char *data, int len); // totality functions int getLength() const { return mData.size(); }