Browse Source

Merge #10793: Changing &var[0] to var.data()

592404f03 Changing &vec[0] to vec.data(), what 9804 missed (MeshCollider)

Pull request description:

  This just continues the work of https://github.com/bitcoin/bitcoin/pull/9804

  Modifies a lot of `&vector[]`'s to `vector.data()`'s across all the files including tests, just the stuff that 9804 missed

Tree-SHA512: dd1a9dffb999dea4fba78dcc91fe02f90250db86f5c74948e1ff3e8b4036b2154b600555eaa04dece5368920aae3513bc36425dc96e4319ca1041b0928a6b656
0.16
Wladimir J. van der Laan 7 years ago
parent
commit
efb4383ef6
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D
  1. 2
      src/bench/crypto_hash.cpp
  2. 2
      src/qt/signverifymessagedialog.cpp
  3. 14
      src/qt/test/paymentservertests.cpp
  4. 2
      src/rpc/misc.cpp
  5. 2
      src/script/interpreter.cpp
  6. 2
      src/test/bip32_tests.cpp
  7. 4
      src/test/bloom_tests.cpp
  8. 44
      src/test/crypto_tests.cpp
  9. 2
      src/test/getarg_tests.cpp
  10. 4
      src/test/skiplist_tests.cpp
  11. 2
      src/test/test_bitcoin_fuzzy.cpp
  12. 2
      src/uint256.cpp
  13. 11
      src/wallet/crypter.cpp
  14. 2
      src/wallet/rpcwallet.cpp
  15. 2
      src/wallet/test/crypto_tests.cpp

2
src/bench/crypto_hash.cpp

@ -47,7 +47,7 @@ static void SHA256_32b(benchmark::State& state)
std::vector<uint8_t> in(32,0); std::vector<uint8_t> in(32,0);
while (state.KeepRunning()) { while (state.KeepRunning()) {
for (int i = 0; i < 1000000; i++) { for (int i = 0; i < 1000000; i++) {
CSHA256().Write(in.data(), in.size()).Finalize(&in[0]); CSHA256().Write(in.data(), in.size()).Finalize(in.data());
} }
} }
} }

2
src/qt/signverifymessagedialog.cpp

@ -162,7 +162,7 @@ void SignVerifyMessageDialog::on_signMessageButton_SM_clicked()
ui->statusLabel_SM->setStyleSheet("QLabel { color: green; }"); ui->statusLabel_SM->setStyleSheet("QLabel { color: green; }");
ui->statusLabel_SM->setText(QString("<nobr>") + tr("Message signed.") + QString("</nobr>")); ui->statusLabel_SM->setText(QString("<nobr>") + tr("Message signed.") + QString("</nobr>"));
ui->signatureOut_SM->setText(QString::fromStdString(EncodeBase64(&vchSig[0], vchSig.size()))); ui->signatureOut_SM->setText(QString::fromStdString(EncodeBase64(vchSig.data(), vchSig.size())));
} }
void SignVerifyMessageDialog::on_copySignatureButton_SM_clicked() void SignVerifyMessageDialog::on_copySignatureButton_SM_clicked()

14
src/qt/test/paymentservertests.cpp

@ -24,7 +24,7 @@ X509 *parse_b64der_cert(const char* cert_data)
{ {
std::vector<unsigned char> data = DecodeBase64(cert_data); std::vector<unsigned char> data = DecodeBase64(cert_data);
assert(data.size() > 0); assert(data.size() > 0);
const unsigned char* dptr = &data[0]; const unsigned char* dptr = data.data();
X509 *cert = d2i_X509(nullptr, &dptr, data.size()); X509 *cert = d2i_X509(nullptr, &dptr, data.size());
assert(cert); assert(cert);
return cert; return cert;
@ -43,7 +43,7 @@ static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsig
// Write data to a temp file: // Write data to a temp file:
QTemporaryFile f; QTemporaryFile f;
f.open(); f.open();
f.write((const char*)&data[0], data.size()); f.write((const char*)data.data(), data.size());
f.close(); f.close();
// Create a QObject, install event filter from PaymentServer // Create a QObject, install event filter from PaymentServer
@ -139,7 +139,7 @@ void PaymentServerTests::paymentServerTests()
// Contains a testnet paytoaddress, so payment request network doesn't match client network: // Contains a testnet paytoaddress, so payment request network doesn't match client network:
data = DecodeBase64(paymentrequest1_cert2_BASE64); data = DecodeBase64(paymentrequest1_cert2_BASE64);
byteArray = QByteArray((const char*)&data[0], data.size()); byteArray = QByteArray((const char*)data.data(), data.size());
r.paymentRequest.parse(byteArray); r.paymentRequest.parse(byteArray);
// Ensure the request is initialized, because network "main" is default, even for // Ensure the request is initialized, because network "main" is default, even for
// uninitialized payment requests and that will fail our test here. // uninitialized payment requests and that will fail our test here.
@ -148,7 +148,7 @@ void PaymentServerTests::paymentServerTests()
// Expired payment request (expires is set to 1 = 1970-01-01 00:00:01): // Expired payment request (expires is set to 1 = 1970-01-01 00:00:01):
data = DecodeBase64(paymentrequest2_cert2_BASE64); data = DecodeBase64(paymentrequest2_cert2_BASE64);
byteArray = QByteArray((const char*)&data[0], data.size()); byteArray = QByteArray((const char*)data.data(), data.size());
r.paymentRequest.parse(byteArray); r.paymentRequest.parse(byteArray);
// Ensure the request is initialized // Ensure the request is initialized
QVERIFY(r.paymentRequest.IsInitialized()); QVERIFY(r.paymentRequest.IsInitialized());
@ -159,7 +159,7 @@ void PaymentServerTests::paymentServerTests()
// 9223372036854775807 (uint64), 9223372036854775807 (int64_t) and -1 (int32_t) // 9223372036854775807 (uint64), 9223372036854775807 (int64_t) and -1 (int32_t)
// -1 is 1969-12-31 23:59:59 (for a 32 bit time values) // -1 is 1969-12-31 23:59:59 (for a 32 bit time values)
data = DecodeBase64(paymentrequest3_cert2_BASE64); data = DecodeBase64(paymentrequest3_cert2_BASE64);
byteArray = QByteArray((const char*)&data[0], data.size()); byteArray = QByteArray((const char*)data.data(), data.size());
r.paymentRequest.parse(byteArray); r.paymentRequest.parse(byteArray);
// Ensure the request is initialized // Ensure the request is initialized
QVERIFY(r.paymentRequest.IsInitialized()); QVERIFY(r.paymentRequest.IsInitialized());
@ -170,7 +170,7 @@ void PaymentServerTests::paymentServerTests()
// 9223372036854775808 (uint64), -9223372036854775808 (int64_t) and 0 (int32_t) // 9223372036854775808 (uint64), -9223372036854775808 (int64_t) and 0 (int32_t)
// 0 is 1970-01-01 00:00:00 (for a 32 bit time values) // 0 is 1970-01-01 00:00:00 (for a 32 bit time values)
data = DecodeBase64(paymentrequest4_cert2_BASE64); data = DecodeBase64(paymentrequest4_cert2_BASE64);
byteArray = QByteArray((const char*)&data[0], data.size()); byteArray = QByteArray((const char*)data.data(), data.size());
r.paymentRequest.parse(byteArray); r.paymentRequest.parse(byteArray);
// Ensure the request is initialized // Ensure the request is initialized
QVERIFY(r.paymentRequest.IsInitialized()); QVERIFY(r.paymentRequest.IsInitialized());
@ -190,7 +190,7 @@ void PaymentServerTests::paymentServerTests()
// Payment request with amount overflow (amount is set to 21000001 BTC): // Payment request with amount overflow (amount is set to 21000001 BTC):
data = DecodeBase64(paymentrequest5_cert2_BASE64); data = DecodeBase64(paymentrequest5_cert2_BASE64);
byteArray = QByteArray((const char*)&data[0], data.size()); byteArray = QByteArray((const char*)data.data(), data.size());
r.paymentRequest.parse(byteArray); r.paymentRequest.parse(byteArray);
// Ensure the request is initialized // Ensure the request is initialized
QVERIFY(r.paymentRequest.IsInitialized()); QVERIFY(r.paymentRequest.IsInitialized());

2
src/rpc/misc.cpp

@ -371,7 +371,7 @@ UniValue signmessagewithprivkey(const JSONRPCRequest& request)
if (!key.SignCompact(ss.GetHash(), vchSig)) if (!key.SignCompact(ss.GetHash(), vchSig))
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Sign failed"); throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Sign failed");
return EncodeBase64(&vchSig[0], vchSig.size()); return EncodeBase64(vchSig.data(), vchSig.size());
} }
UniValue setmocktime(const JSONRPCRequest& request) UniValue setmocktime(const JSONRPCRequest& request)

2
src/script/interpreter.cpp

@ -1366,7 +1366,7 @@ static bool VerifyWitnessProgram(const CScriptWitness& witness, int witversion,
stack = std::vector<std::vector<unsigned char> >(witness.stack.begin(), witness.stack.end() - 1); stack = std::vector<std::vector<unsigned char> >(witness.stack.begin(), witness.stack.end() - 1);
uint256 hashScriptPubKey; uint256 hashScriptPubKey;
CSHA256().Write(&scriptPubKey[0], scriptPubKey.size()).Finalize(hashScriptPubKey.begin()); CSHA256().Write(&scriptPubKey[0], scriptPubKey.size()).Finalize(hashScriptPubKey.begin());
if (memcmp(hashScriptPubKey.begin(), &program[0], 32)) { if (memcmp(hashScriptPubKey.begin(), program.data(), 32)) {
return set_error(serror, SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH); return set_error(serror, SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH);
} }
} else if (program.size() == 20) { } else if (program.size() == 20) {

2
src/test/bip32_tests.cpp

@ -91,7 +91,7 @@ void RunTest(const TestVector &test) {
std::vector<unsigned char> seed = ParseHex(test.strHexMaster); std::vector<unsigned char> seed = ParseHex(test.strHexMaster);
CExtKey key; CExtKey key;
CExtPubKey pubkey; CExtPubKey pubkey;
key.SetMaster(&seed[0], seed.size()); key.SetMaster(seed.data(), seed.size());
pubkey = key.Neuter(); pubkey = key.Neuter();
for (const TestDerivation &derive : test.vDerive) { for (const TestDerivation &derive : test.vDerive) {
unsigned char data[74]; unsigned char data[74];

4
src/test/bloom_tests.cpp

@ -154,8 +154,8 @@ BOOST_AUTO_TEST_CASE(bloom_match)
COutPoint prevOutPoint(uint256S("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0); COutPoint prevOutPoint(uint256S("0x90c122d70786e899529d71dbeba91ba216982fb6ba58f3bdaab65e73b7e9260b"), 0);
{ {
std::vector<unsigned char> data(32 + sizeof(unsigned int)); std::vector<unsigned char> data(32 + sizeof(unsigned int));
memcpy(&data[0], prevOutPoint.hash.begin(), 32); memcpy(data.data(), prevOutPoint.hash.begin(), 32);
memcpy(&data[32], &prevOutPoint.n, sizeof(unsigned int)); memcpy(data.data()+32, &prevOutPoint.n, sizeof(unsigned int));
filter.insert(data); filter.insert(data);
} }
BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match manually serialized COutPoint"); BOOST_CHECK_MESSAGE(filter.IsRelevantAndUpdate(tx), "Simple Bloom filter didn't match manually serialized COutPoint");

44
src/test/crypto_tests.cpp

@ -58,12 +58,12 @@ void TestRIPEMD160(const std::string &in, const std::string &hexout) { TestVecto
void TestHMACSHA256(const std::string &hexkey, const std::string &hexin, const std::string &hexout) { void TestHMACSHA256(const std::string &hexkey, const std::string &hexin, const std::string &hexout) {
std::vector<unsigned char> key = ParseHex(hexkey); std::vector<unsigned char> key = ParseHex(hexkey);
TestVector(CHMAC_SHA256(&key[0], key.size()), ParseHex(hexin), ParseHex(hexout)); TestVector(CHMAC_SHA256(key.data(), key.size()), ParseHex(hexin), ParseHex(hexout));
} }
void TestHMACSHA512(const std::string &hexkey, const std::string &hexin, const std::string &hexout) { void TestHMACSHA512(const std::string &hexkey, const std::string &hexin, const std::string &hexout) {
std::vector<unsigned char> key = ParseHex(hexkey); std::vector<unsigned char> key = ParseHex(hexkey);
TestVector(CHMAC_SHA512(&key[0], key.size()), ParseHex(hexin), ParseHex(hexout)); TestVector(CHMAC_SHA512(key.data(), key.size()), ParseHex(hexin), ParseHex(hexout));
} }
void TestAES128(const std::string &hexkey, const std::string &hexin, const std::string &hexout) void TestAES128(const std::string &hexkey, const std::string &hexin, const std::string &hexout)
@ -76,13 +76,13 @@ void TestAES128(const std::string &hexkey, const std::string &hexin, const std::
assert(key.size() == 16); assert(key.size() == 16);
assert(in.size() == 16); assert(in.size() == 16);
assert(correctout.size() == 16); assert(correctout.size() == 16);
AES128Encrypt enc(&key[0]); AES128Encrypt enc(key.data());
buf.resize(correctout.size()); buf.resize(correctout.size());
buf2.resize(correctout.size()); buf2.resize(correctout.size());
enc.Encrypt(&buf[0], &in[0]); enc.Encrypt(buf.data(), in.data());
BOOST_CHECK_EQUAL(HexStr(buf), HexStr(correctout)); BOOST_CHECK_EQUAL(HexStr(buf), HexStr(correctout));
AES128Decrypt dec(&key[0]); AES128Decrypt dec(key.data());
dec.Decrypt(&buf2[0], &buf[0]); dec.Decrypt(buf2.data(), buf.data());
BOOST_CHECK_EQUAL(HexStr(buf2), HexStr(in)); BOOST_CHECK_EQUAL(HexStr(buf2), HexStr(in));
} }
@ -96,12 +96,12 @@ void TestAES256(const std::string &hexkey, const std::string &hexin, const std::
assert(key.size() == 32); assert(key.size() == 32);
assert(in.size() == 16); assert(in.size() == 16);
assert(correctout.size() == 16); assert(correctout.size() == 16);
AES256Encrypt enc(&key[0]); AES256Encrypt enc(key.data());
buf.resize(correctout.size()); buf.resize(correctout.size());
enc.Encrypt(&buf[0], &in[0]); enc.Encrypt(buf.data(), in.data());
BOOST_CHECK(buf == correctout); BOOST_CHECK(buf == correctout);
AES256Decrypt dec(&key[0]); AES256Decrypt dec(key.data());
dec.Decrypt(&buf[0], &buf[0]); dec.Decrypt(buf.data(), buf.data());
BOOST_CHECK(buf == in); BOOST_CHECK(buf == in);
} }
@ -114,16 +114,16 @@ void TestAES128CBC(const std::string &hexkey, const std::string &hexiv, bool pad
std::vector<unsigned char> realout(in.size() + AES_BLOCKSIZE); std::vector<unsigned char> realout(in.size() + AES_BLOCKSIZE);
// Encrypt the plaintext and verify that it equals the cipher // Encrypt the plaintext and verify that it equals the cipher
AES128CBCEncrypt enc(&key[0], &iv[0], pad); AES128CBCEncrypt enc(key.data(), iv.data(), pad);
int size = enc.Encrypt(&in[0], in.size(), &realout[0]); int size = enc.Encrypt(in.data(), in.size(), realout.data());
realout.resize(size); realout.resize(size);
BOOST_CHECK(realout.size() == correctout.size()); BOOST_CHECK(realout.size() == correctout.size());
BOOST_CHECK_MESSAGE(realout == correctout, HexStr(realout) + std::string(" != ") + hexout); BOOST_CHECK_MESSAGE(realout == correctout, HexStr(realout) + std::string(" != ") + hexout);
// Decrypt the cipher and verify that it equals the plaintext // Decrypt the cipher and verify that it equals the plaintext
std::vector<unsigned char> decrypted(correctout.size()); std::vector<unsigned char> decrypted(correctout.size());
AES128CBCDecrypt dec(&key[0], &iv[0], pad); AES128CBCDecrypt dec(key.data(), iv.data(), pad);
size = dec.Decrypt(&correctout[0], correctout.size(), &decrypted[0]); size = dec.Decrypt(correctout.data(), correctout.size(), decrypted.data());
decrypted.resize(size); decrypted.resize(size);
BOOST_CHECK(decrypted.size() == in.size()); BOOST_CHECK(decrypted.size() == in.size());
BOOST_CHECK_MESSAGE(decrypted == in, HexStr(decrypted) + std::string(" != ") + hexin); BOOST_CHECK_MESSAGE(decrypted == in, HexStr(decrypted) + std::string(" != ") + hexin);
@ -133,12 +133,12 @@ void TestAES128CBC(const std::string &hexkey, const std::string &hexiv, bool pad
{ {
std::vector<unsigned char> sub(i, in.end()); std::vector<unsigned char> sub(i, in.end());
std::vector<unsigned char> subout(sub.size() + AES_BLOCKSIZE); std::vector<unsigned char> subout(sub.size() + AES_BLOCKSIZE);
int _size = enc.Encrypt(&sub[0], sub.size(), &subout[0]); int _size = enc.Encrypt(sub.data(), sub.size(), subout.data());
if (_size != 0) if (_size != 0)
{ {
subout.resize(_size); subout.resize(_size);
std::vector<unsigned char> subdecrypted(subout.size()); std::vector<unsigned char> subdecrypted(subout.size());
_size = dec.Decrypt(&subout[0], subout.size(), &subdecrypted[0]); _size = dec.Decrypt(subout.data(), subout.size(), subdecrypted.data());
subdecrypted.resize(_size); subdecrypted.resize(_size);
BOOST_CHECK(decrypted.size() == in.size()); BOOST_CHECK(decrypted.size() == in.size());
BOOST_CHECK_MESSAGE(subdecrypted == sub, HexStr(subdecrypted) + std::string(" != ") + HexStr(sub)); BOOST_CHECK_MESSAGE(subdecrypted == sub, HexStr(subdecrypted) + std::string(" != ") + HexStr(sub));
@ -155,16 +155,16 @@ void TestAES256CBC(const std::string &hexkey, const std::string &hexiv, bool pad
std::vector<unsigned char> realout(in.size() + AES_BLOCKSIZE); std::vector<unsigned char> realout(in.size() + AES_BLOCKSIZE);
// Encrypt the plaintext and verify that it equals the cipher // Encrypt the plaintext and verify that it equals the cipher
AES256CBCEncrypt enc(&key[0], &iv[0], pad); AES256CBCEncrypt enc(key.data(), iv.data(), pad);
int size = enc.Encrypt(&in[0], in.size(), &realout[0]); int size = enc.Encrypt(in.data(), in.size(), realout.data());
realout.resize(size); realout.resize(size);
BOOST_CHECK(realout.size() == correctout.size()); BOOST_CHECK(realout.size() == correctout.size());
BOOST_CHECK_MESSAGE(realout == correctout, HexStr(realout) + std::string(" != ") + hexout); BOOST_CHECK_MESSAGE(realout == correctout, HexStr(realout) + std::string(" != ") + hexout);
// Decrypt the cipher and verify that it equals the plaintext // Decrypt the cipher and verify that it equals the plaintext
std::vector<unsigned char> decrypted(correctout.size()); std::vector<unsigned char> decrypted(correctout.size());
AES256CBCDecrypt dec(&key[0], &iv[0], pad); AES256CBCDecrypt dec(key.data(), iv.data(), pad);
size = dec.Decrypt(&correctout[0], correctout.size(), &decrypted[0]); size = dec.Decrypt(correctout.data(), correctout.size(), decrypted.data());
decrypted.resize(size); decrypted.resize(size);
BOOST_CHECK(decrypted.size() == in.size()); BOOST_CHECK(decrypted.size() == in.size());
BOOST_CHECK_MESSAGE(decrypted == in, HexStr(decrypted) + std::string(" != ") + hexin); BOOST_CHECK_MESSAGE(decrypted == in, HexStr(decrypted) + std::string(" != ") + hexin);
@ -174,12 +174,12 @@ void TestAES256CBC(const std::string &hexkey, const std::string &hexiv, bool pad
{ {
std::vector<unsigned char> sub(i, in.end()); std::vector<unsigned char> sub(i, in.end());
std::vector<unsigned char> subout(sub.size() + AES_BLOCKSIZE); std::vector<unsigned char> subout(sub.size() + AES_BLOCKSIZE);
int _size = enc.Encrypt(&sub[0], sub.size(), &subout[0]); int _size = enc.Encrypt(sub.data(), sub.size(), subout.data());
if (_size != 0) if (_size != 0)
{ {
subout.resize(_size); subout.resize(_size);
std::vector<unsigned char> subdecrypted(subout.size()); std::vector<unsigned char> subdecrypted(subout.size());
_size = dec.Decrypt(&subout[0], subout.size(), &subdecrypted[0]); _size = dec.Decrypt(subout.data(), subout.size(), subdecrypted.data());
subdecrypted.resize(_size); subdecrypted.resize(_size);
BOOST_CHECK(decrypted.size() == in.size()); BOOST_CHECK(decrypted.size() == in.size());
BOOST_CHECK_MESSAGE(subdecrypted == sub, HexStr(subdecrypted) + std::string(" != ") + HexStr(sub)); BOOST_CHECK_MESSAGE(subdecrypted == sub, HexStr(subdecrypted) + std::string(" != ") + HexStr(sub));

2
src/test/getarg_tests.cpp

@ -27,7 +27,7 @@ static void ResetArgs(const std::string& strArg)
for (std::string& s : vecArg) for (std::string& s : vecArg)
vecChar.push_back(s.c_str()); vecChar.push_back(s.c_str());
gArgs.ParseParameters(vecChar.size(), &vecChar[0]); gArgs.ParseParameters(vecChar.size(), vecChar.data());
} }
BOOST_AUTO_TEST_CASE(boolarg) BOOST_AUTO_TEST_CASE(boolarg)

4
src/test/skiplist_tests.cpp

@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(skiplist_test)
BOOST_CHECK(vIndex[SKIPLIST_LENGTH - 1].GetAncestor(from) == &vIndex[from]); BOOST_CHECK(vIndex[SKIPLIST_LENGTH - 1].GetAncestor(from) == &vIndex[from]);
BOOST_CHECK(vIndex[from].GetAncestor(to) == &vIndex[to]); BOOST_CHECK(vIndex[from].GetAncestor(to) == &vIndex[to]);
BOOST_CHECK(vIndex[from].GetAncestor(0) == &vIndex[0]); BOOST_CHECK(vIndex[from].GetAncestor(0) == vIndex.data());
} }
} }
@ -64,7 +64,7 @@ BOOST_AUTO_TEST_CASE(getlocator_test)
for (unsigned int i=0; i<vBlocksSide.size(); i++) { for (unsigned int i=0; i<vBlocksSide.size(); i++) {
vHashSide[i] = ArithToUint256(i + 50000 + (arith_uint256(1) << 128)); // Add 1<<128 to the hashes, so GetLow64() still returns the height. vHashSide[i] = ArithToUint256(i + 50000 + (arith_uint256(1) << 128)); // Add 1<<128 to the hashes, so GetLow64() still returns the height.
vBlocksSide[i].nHeight = i + 50000; vBlocksSide[i].nHeight = i + 50000;
vBlocksSide[i].pprev = i ? &vBlocksSide[i - 1] : &vBlocksMain[49999]; vBlocksSide[i].pprev = i ? &vBlocksSide[i - 1] : (vBlocksMain.data()+49999);
vBlocksSide[i].phashBlock = &vHashSide[i]; vBlocksSide[i].phashBlock = &vHashSide[i];
vBlocksSide[i].BuildSkip(); vBlocksSide[i].BuildSkip();
BOOST_CHECK_EQUAL((int)UintToArith256(vBlocksSide[i].GetBlockHash()).GetLow64(), vBlocksSide[i].nHeight); BOOST_CHECK_EQUAL((int)UintToArith256(vBlocksSide[i].GetBlockHash()).GetLow64(), vBlocksSide[i].nHeight);

2
src/test/test_bitcoin_fuzzy.cpp

@ -67,7 +67,7 @@ int do_fuzz()
if (buffer.size() < sizeof(uint32_t)) return 0; if (buffer.size() < sizeof(uint32_t)) return 0;
uint32_t test_id = 0xffffffff; uint32_t test_id = 0xffffffff;
memcpy(&test_id, &buffer[0], sizeof(uint32_t)); memcpy(&test_id, buffer.data(), sizeof(uint32_t));
buffer.erase(buffer.begin(), buffer.begin() + sizeof(uint32_t)); buffer.erase(buffer.begin(), buffer.begin() + sizeof(uint32_t));
if (test_id >= TEST_ID_END) return 0; if (test_id >= TEST_ID_END) return 0;

2
src/uint256.cpp

@ -14,7 +14,7 @@ template <unsigned int BITS>
base_blob<BITS>::base_blob(const std::vector<unsigned char>& vch) base_blob<BITS>::base_blob(const std::vector<unsigned char>& vch)
{ {
assert(vch.size() == sizeof(data)); assert(vch.size() == sizeof(data));
memcpy(data, &vch[0], sizeof(data)); memcpy(data, vch.data(), sizeof(data));
} }
template <unsigned int BITS> template <unsigned int BITS>

11
src/wallet/crypter.cpp

@ -27,8 +27,7 @@ int CCrypter::BytesToKeySHA512AES(const std::vector<unsigned char>& chSalt, cons
CSHA512 di; CSHA512 di;
di.Write((const unsigned char*)strKeyData.c_str(), strKeyData.size()); di.Write((const unsigned char*)strKeyData.c_str(), strKeyData.size());
if(chSalt.size()) di.Write(chSalt.data(), chSalt.size());
di.Write(&chSalt[0], chSalt.size());
di.Finalize(buf); di.Finalize(buf);
for(int i = 0; i != count - 1; i++) for(int i = 0; i != count - 1; i++)
@ -82,7 +81,7 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned
vchCiphertext.resize(vchPlaintext.size() + AES_BLOCKSIZE); vchCiphertext.resize(vchPlaintext.size() + AES_BLOCKSIZE);
AES256CBCEncrypt enc(vchKey.data(), vchIV.data(), true); AES256CBCEncrypt enc(vchKey.data(), vchIV.data(), true);
size_t nLen = enc.Encrypt(&vchPlaintext[0], vchPlaintext.size(), &vchCiphertext[0]); size_t nLen = enc.Encrypt(&vchPlaintext[0], vchPlaintext.size(), vchCiphertext.data());
if(nLen < vchPlaintext.size()) if(nLen < vchPlaintext.size())
return false; return false;
vchCiphertext.resize(nLen); vchCiphertext.resize(nLen);
@ -101,7 +100,7 @@ bool CCrypter::Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingM
vchPlaintext.resize(nLen); vchPlaintext.resize(nLen);
AES256CBCDecrypt dec(vchKey.data(), vchIV.data(), true); AES256CBCDecrypt dec(vchKey.data(), vchIV.data(), true);
nLen = dec.Decrypt(&vchCiphertext[0], vchCiphertext.size(), &vchPlaintext[0]); nLen = dec.Decrypt(vchCiphertext.data(), vchCiphertext.size(), &vchPlaintext[0]);
if(nLen == 0) if(nLen == 0)
return false; return false;
vchPlaintext.resize(nLen); vchPlaintext.resize(nLen);
@ -113,7 +112,7 @@ static bool EncryptSecret(const CKeyingMaterial& vMasterKey, const CKeyingMateri
{ {
CCrypter cKeyCrypter; CCrypter cKeyCrypter;
std::vector<unsigned char> chIV(WALLET_CRYPTO_IV_SIZE); std::vector<unsigned char> chIV(WALLET_CRYPTO_IV_SIZE);
memcpy(&chIV[0], &nIV, WALLET_CRYPTO_IV_SIZE); memcpy(chIV.data(), &nIV, WALLET_CRYPTO_IV_SIZE);
if(!cKeyCrypter.SetKey(vMasterKey, chIV)) if(!cKeyCrypter.SetKey(vMasterKey, chIV))
return false; return false;
return cKeyCrypter.Encrypt(*((const CKeyingMaterial*)&vchPlaintext), vchCiphertext); return cKeyCrypter.Encrypt(*((const CKeyingMaterial*)&vchPlaintext), vchCiphertext);
@ -123,7 +122,7 @@ static bool DecryptSecret(const CKeyingMaterial& vMasterKey, const std::vector<u
{ {
CCrypter cKeyCrypter; CCrypter cKeyCrypter;
std::vector<unsigned char> chIV(WALLET_CRYPTO_IV_SIZE); std::vector<unsigned char> chIV(WALLET_CRYPTO_IV_SIZE);
memcpy(&chIV[0], &nIV, WALLET_CRYPTO_IV_SIZE); memcpy(chIV.data(), &nIV, WALLET_CRYPTO_IV_SIZE);
if(!cKeyCrypter.SetKey(vMasterKey, chIV)) if(!cKeyCrypter.SetKey(vMasterKey, chIV))
return false; return false;
return cKeyCrypter.Decrypt(vchCiphertext, *((CKeyingMaterial*)&vchPlaintext)); return cKeyCrypter.Decrypt(vchCiphertext, *((CKeyingMaterial*)&vchPlaintext));

2
src/wallet/rpcwallet.cpp

@ -614,7 +614,7 @@ UniValue signmessage(const JSONRPCRequest& request)
if (!key.SignCompact(ss.GetHash(), vchSig)) if (!key.SignCompact(ss.GetHash(), vchSig))
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Sign failed"); throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Sign failed");
return EncodeBase64(&vchSig[0], vchSig.size()); return EncodeBase64(vchSig.data(), vchSig.size());
} }
UniValue getreceivedbyaddress(const JSONRPCRequest& request) UniValue getreceivedbyaddress(const JSONRPCRequest& request)

2
src/wallet/test/crypto_tests.cpp

@ -80,7 +80,7 @@ BOOST_AUTO_TEST_CASE(passphrase) {
std::string hash(GetRandHash().ToString()); std::string hash(GetRandHash().ToString());
std::vector<unsigned char> vchSalt(8); std::vector<unsigned char> vchSalt(8);
GetRandBytes(&vchSalt[0], vchSalt.size()); GetRandBytes(vchSalt.data(), vchSalt.size());
uint32_t rounds = InsecureRand32(); uint32_t rounds = InsecureRand32();
if (rounds > 30000) if (rounds > 30000)
rounds = 30000; rounds = 30000;

Loading…
Cancel
Save