Browse Source

Demystify a few magic numbers.

0.8
Doug Huff 14 years ago
parent
commit
a9d3af8821
  1. 2
      src/base58.h
  2. 3
      src/bignum.h

2
src/base58.h

@ -38,6 +38,8 @@ inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char
// Convert bignum to std::string // Convert bignum to std::string
std::string str; std::string str;
// Expected size increase from base58 conversion is approximately 137%
// use 138% to be safe
str.reserve((pend - pbegin) * 138 / 100 + 1); str.reserve((pend - pbegin) * 138 / 100 + 1);
CBigNum dv; CBigNum dv;
CBigNum rem; CBigNum rem;

3
src/bignum.h

@ -228,10 +228,13 @@ public:
{ {
std::vector<unsigned char> vch2(vch.size() + 4); std::vector<unsigned char> vch2(vch.size() + 4);
unsigned int nSize = vch.size(); unsigned int nSize = vch.size();
// BIGNUM's byte stream format expects 4 bytes of
// big endian size data info at the front
vch2[0] = (nSize >> 24) & 0xff; vch2[0] = (nSize >> 24) & 0xff;
vch2[1] = (nSize >> 16) & 0xff; vch2[1] = (nSize >> 16) & 0xff;
vch2[2] = (nSize >> 8) & 0xff; vch2[2] = (nSize >> 8) & 0xff;
vch2[3] = (nSize >> 0) & 0xff; vch2[3] = (nSize >> 0) & 0xff;
// swap data to big endian
reverse_copy(vch.begin(), vch.end(), vch2.begin() + 4); reverse_copy(vch.begin(), vch.end(), vch2.begin() + 4);
BN_mpi2bn(&vch2[0], vch2.size(), this); BN_mpi2bn(&vch2[0], vch2.size(), this);
} }

Loading…
Cancel
Save