diff --git a/src/bench/chacha_poly_aead.cpp b/src/bench/chacha_poly_aead.cpp --- a/src/bench/chacha_poly_aead.cpp +++ b/src/bench/chacha_poly_aead.cpp @@ -96,7 +96,7 @@ uint8_t hash[CHash256::OUTPUT_SIZE]; std::vector in(buffersize, 0); while (state.KeepRunning()) { - CHash256().Write(in.data(), in.size()).Finalize(hash); + CHash256().Write(in).Finalize(hash); } } diff --git a/src/blockfilter.cpp b/src/blockfilter.cpp --- a/src/blockfilter.cpp +++ b/src/blockfilter.cpp @@ -289,7 +289,7 @@ const std::vector &data = GetEncodedFilter(); uint256 result; - CHash256().Write(data.data(), data.size()).Finalize(result.begin()); + CHash256().Write(data).Finalize(result.begin()); return result; } @@ -297,9 +297,6 @@ const uint256 &filter_hash = GetHash(); uint256 result; - CHash256() - .Write(filter_hash.begin(), filter_hash.size()) - .Write(prev_header.begin(), prev_header.size()) - .Finalize(result.begin()); + CHash256().Write(filter_hash).Write(prev_header).Finalize(result.begin()); return result; } diff --git a/src/hash.h b/src/hash.h --- a/src/hash.h +++ b/src/hash.h @@ -32,8 +32,8 @@ sha.Reset().Write(buf, CSHA256::OUTPUT_SIZE).Finalize(hash); } - CHash256 &Write(const uint8_t *data, size_t len) { - sha.Write(data, len); + CHash256 &Write(Span input) { + sha.Write(input.data(), input.size()); return *this; } @@ -57,8 +57,8 @@ CRIPEMD160().Write(buf, CSHA256::OUTPUT_SIZE).Finalize(hash); } - CHash160 &Write(const uint8_t *data, size_t len) { - sha.Write(data, len); + CHash160 &Write(Span input) { + sha.Write(input.data(), input.size()); return *this; } @@ -73,8 +73,8 @@ static const uint8_t pblank[1] = {}; uint256 result; CHash256() - .Write(pbegin == pend ? pblank : (const uint8_t *)&pbegin[0], - (pend - pbegin) * sizeof(pbegin[0])) + .Write({pbegin == pend ? pblank : (const uint8_t *)&pbegin[0], + (pend - pbegin) * sizeof(pbegin[0])}) .Finalize((uint8_t *)&result); return result; } @@ -86,10 +86,10 @@ static const uint8_t pblank[1] = {}; uint256 result; CHash256() - .Write(p1begin == p1end ? pblank : (const uint8_t *)&p1begin[0], - (p1end - p1begin) * sizeof(p1begin[0])) - .Write(p2begin == p2end ? pblank : (const uint8_t *)&p2begin[0], - (p2end - p2begin) * sizeof(p2begin[0])) + .Write({p1begin == p1end ? pblank : (const uint8_t *)&p1begin[0], + (p1end - p1begin) * sizeof(p1begin[0])}) + .Write({p2begin == p2end ? pblank : (const uint8_t *)&p2begin[0], + (p2end - p2begin) * sizeof(p2begin[0])}) .Finalize((uint8_t *)&result); return result; } @@ -99,8 +99,8 @@ static uint8_t pblank[1] = {}; uint160 result; CHash160() - .Write(pbegin == pend ? pblank : (const uint8_t *)&pbegin[0], - (pend - pbegin) * sizeof(pbegin[0])) + .Write({pbegin == pend ? pblank : (const uint8_t *)&pbegin[0], + (pend - pbegin) * sizeof(pbegin[0])}) .Finalize((uint8_t *)&result); return result; } @@ -132,7 +132,7 @@ int GetVersion() const { return nVersion; } void write(const char *pch, size_t size) { - ctx.Write((const uint8_t *)pch, size); + ctx.Write({(const uint8_t *)pch, size}); } // invalidates the object diff --git a/src/key.cpp b/src/key.cpp --- a/src/key.cpp +++ b/src/key.cpp @@ -308,10 +308,7 @@ std::string str = "Bitcoin key verification\n"; GetRandBytes(rnd, sizeof(rnd)); uint256 hash; - CHash256() - .Write((uint8_t *)str.data(), str.size()) - .Write(rnd, sizeof(rnd)) - .Finalize(hash.begin()); + CHash256().Write(MakeUCharSpan(str)).Write(rnd).Finalize(hash.begin()); std::vector vchSig; SignECDSA(hash, vchSig); return pubkey.VerifyECDSA(hash, vchSig); diff --git a/src/net.cpp b/src/net.cpp --- a/src/net.cpp +++ b/src/net.cpp @@ -716,7 +716,7 @@ vRecv.resize(std::min(hdr.nMessageSize, nDataPos + nCopy + 256 * 1024)); } - hasher.Write((const uint8_t *)pch, nCopy); + hasher.Write({(const uint8_t *)pch, nCopy}); memcpy(&vRecv[nDataPos], pch, nCopy); nDataPos += nCopy; diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -940,13 +940,9 @@ .Write(vch.data(), vch.size()) .Finalize(vchHash.data()); } else if (opcode == OP_HASH160) { - CHash160() - .Write(vch.data(), vch.size()) - .Finalize(vchHash.data()); + CHash160().Write(vch).Finalize(vchHash.data()); } else if (opcode == OP_HASH256) { - CHash256() - .Write(vch.data(), vch.size()) - .Finalize(vchHash.data()); + CHash256().Write(vch).Finalize(vchHash.data()); } popstack(stack); stack.push_back(vchHash); diff --git a/src/test/crypto_tests.cpp b/src/test/crypto_tests.cpp --- a/src/test/crypto_tests.cpp +++ b/src/test/crypto_tests.cpp @@ -1063,7 +1063,7 @@ in[j] = InsecureRandBits(8); } for (int j = 0; j < i; ++j) { - CHash256().Write(in + 64 * j, 64).Finalize(out1 + 32 * j); + CHash256().Write({in + 64 * j, 64}).Finalize(out1 + 32 * j); } SHA256D64(out2, in, i); BOOST_CHECK(memcmp(out1, out2, 32 * i) == 0); diff --git a/src/test/fuzz/crypto.cpp b/src/test/fuzz/crypto.cpp --- a/src/test/fuzz/crypto.cpp +++ b/src/test/fuzz/crypto.cpp @@ -51,8 +51,8 @@ } } - (void)hash160.Write(data.data(), data.size()); - (void)hash256.Write(data.data(), data.size()); + (void)hash160.Write(data); + (void)hash256.Write(data); (void)hmac_sha256.Write(data.data(), data.size()); (void)hmac_sha512.Write(data.data(), data.size()); (void)ripemd160.Write(data.data(), data.size()); diff --git a/src/test/key_tests.cpp b/src/test/key_tests.cpp --- a/src/test/key_tests.cpp +++ b/src/test/key_tests.cpp @@ -379,10 +379,7 @@ std::string str = "Bitcoin key verification\n"; GetRandBytes(rnd, sizeof(rnd)); uint256 hash; - CHash256() - .Write((uint8_t *)str.data(), str.size()) - .Write(rnd, sizeof(rnd)) - .Finalize(hash.begin()); + CHash256().Write(MakeUCharSpan(str)).Write(rnd).Finalize(hash.begin()); // import the static test key CKey key = DecodeSecret(strSecret1C); diff --git a/src/test/merkle_tests.cpp b/src/test/merkle_tests.cpp --- a/src/test/merkle_tests.cpp +++ b/src/test/merkle_tests.cpp @@ -79,10 +79,7 @@ } } mutated |= (inner[level] == h); - CHash256() - .Write(inner[level].begin(), 32) - .Write(h.begin(), 32) - .Finalize(h.begin()); + CHash256().Write(inner[level]).Write(h).Finalize(h.begin()); } // Store the resulting hash at inner position level. inner[level] = h; @@ -108,10 +105,7 @@ if (pbranch && matchh) { pbranch->push_back(h); } - CHash256() - .Write(h.begin(), 32) - .Write(h.begin(), 32) - .Finalize(h.begin()); + CHash256().Write(h).Write(h).Finalize(h.begin()); // Increment count to the value it would have if two entries at this // level had existed. count += (((uint32_t)1) << level); @@ -126,10 +120,7 @@ matchh = true; } } - CHash256() - .Write(inner[level].begin(), 32) - .Write(h.begin(), 32) - .Finalize(h.begin()); + CHash256().Write(inner[level]).Write(h).Finalize(h.begin()); level++; } } diff --git a/src/test/settings_tests.cpp b/src/test/settings_tests.cpp --- a/src/test/settings_tests.cpp +++ b/src/test/settings_tests.cpp @@ -255,7 +255,7 @@ } desc += "\n"; - out_sha.Write((const uint8_t *)desc.data(), desc.size()); + out_sha.Write(MakeUCharSpan(desc)); if (out_file) { BOOST_REQUIRE(fwrite(desc.data(), 1, desc.size(), out_file) == desc.size()); diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -1177,7 +1177,7 @@ desc += "\n"; - out_sha.Write((const uint8_t *)desc.data(), desc.size()); + out_sha.Write(MakeUCharSpan(desc)); if (out_file) { BOOST_REQUIRE(fwrite(desc.data(), 1, desc.size(), out_file) == desc.size()); @@ -1318,7 +1318,7 @@ } desc += "\n"; - out_sha.Write((const uint8_t *)desc.data(), desc.size()); + out_sha.Write(MakeUCharSpan(desc)); if (out_file) { BOOST_REQUIRE(fwrite(desc.data(), 1, desc.size(), out_file) == desc.size());