From bb314142a5259bc431a0c5dbfcb517cae63a38be Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 6 Sep 2017 11:39:03 -0400 Subject: [PATCH] replaced SHA256D by GOSTD --- src/server/shared/Bitcoin/Block.cpp | 6 +++--- src/server/shared/Bitcoin/Transaction.cpp | 2 +- src/server/shared/Crypto.cpp | 23 +---------------------- src/server/shared/Crypto.h | 4 ---- 4 files changed, 5 insertions(+), 30 deletions(-) diff --git a/src/server/shared/Bitcoin/Block.cpp b/src/server/shared/Bitcoin/Block.cpp index ed8cfbf..855c06c 100644 --- a/src/server/shared/Bitcoin/Block.cpp +++ b/src/server/shared/Bitcoin/Block.cpp @@ -16,7 +16,7 @@ namespace Bitcoin for (uint32 i = 0; i < size; i += 2) { uint32 i2 = std::min(i+1, size-1); - merkleTree.push_back(Crypto::SHA256D(Util::Join(merkleTree[j+i], merkleTree[j+i2]))); + merkleTree.push_back(Crypto::GOSTD(Util::Join(merkleTree[j+i], merkleTree[j+i2]))); } j += size; @@ -35,7 +35,7 @@ namespace Bitcoin uint32 j = 0; for (uint32 size = tx.size(); size > 1; size = (size+1)/2) { - merkleTree[j+size] = Crypto::SHA256D(Util::Join(merkleTree[j], merkleTree[j+1])); + merkleTree[j+size] = Crypto::GOSTD(Util::Join(merkleTree[j], merkleTree[j+1])); j += size; } @@ -52,6 +52,6 @@ namespace Bitcoin buf << time; buf << bits; buf << nonce; - return Crypto::SHA256D(buf.Binary()); + return Crypto::GOSTD(buf.Binary()); } } diff --git a/src/server/shared/Bitcoin/Transaction.cpp b/src/server/shared/Bitcoin/Transaction.cpp index 307d44e..2a85d0e 100644 --- a/src/server/shared/Bitcoin/Transaction.cpp +++ b/src/server/shared/Bitcoin/Transaction.cpp @@ -7,6 +7,6 @@ namespace Bitcoin { ByteBuffer buf; buf << *this; - return Crypto::SHA256D(buf.Binary()); + return Crypto::GOSTD(buf.Binary()); } } diff --git a/src/server/shared/Crypto.cpp b/src/server/shared/Crypto.cpp index 3b85c2a..841a17f 100644 --- a/src/server/shared/Crypto.cpp +++ b/src/server/shared/Crypto.cpp @@ -3,32 +3,11 @@ namespace Crypto { - BinaryData SHA256(BinaryData data) - { - std::vector hash; - hash.resize(SHA256_DIGEST_LENGTH); - SHA256_CTX sha256; - SHA256_Init(&sha256); - SHA256_Update(&sha256, &data[0], data.size()); - SHA256_Final(&hash[0], &sha256); - return std::vector(hash.begin(), hash.end()); - } - - BinaryData SHA256(std::string data) - { - return SHA256(BinaryData(data.begin(), data.end())); - } - - BinaryData SHA256D(BinaryData data) - { - return SHA256(SHA256(data)); - } - BinaryData GOSTD(BinaryData data) { uint8_t hash1[64]; i2p::crypto::GOSTR3411_2012_512 (&data[0], data.size (), hash1); - std::vector hash; + std::vector hash(32); i2p::crypto::GOSTR3411_2012_256 (hash1, 64, &hash[0]); return std::vector(hash.begin(), hash.end()); } diff --git a/src/server/shared/Crypto.h b/src/server/shared/Crypto.h index cb70e5b..778de85 100644 --- a/src/server/shared/Crypto.h +++ b/src/server/shared/Crypto.h @@ -9,10 +9,6 @@ namespace Crypto { - BinaryData SHA256(BinaryData data); - BinaryData SHA256(std::string data); - BinaryData SHA256D(BinaryData data); - BinaryData GOSTD(BinaryData data); }