Demystify a few magic numbers.
authorDoug Huff <mith@jrbobdobbs.org>
Mon, 6 Jun 2011 17:47:19 +0000 (12:47 -0500)
committerDoug Huff <mith@jrbobdobbs.org>
Mon, 6 Jun 2011 17:49:11 +0000 (12:49 -0500)
src/base58.h
src/bignum.h

index 580bd3f..c2729d4 100644 (file)
@@ -38,6 +38,8 @@ inline std::string EncodeBase58(const unsigned char* pbegin, const unsigned char
 
     // Convert bignum to std::string
     std::string str;
+    // Expected size increase from base58 conversion is approximately 137%
+    // use 138% to be safe
     str.reserve((pend - pbegin) * 138 / 100 + 1);
     CBigNum dv;
     CBigNum rem;
index 5b4c78e..5eaa402 100644 (file)
@@ -228,10 +228,13 @@ public:
     {
         std::vector<unsigned char> vch2(vch.size() + 4);
         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[1] = (nSize >> 16) & 0xff;
         vch2[2] = (nSize >> 8) & 0xff;
         vch2[3] = (nSize >> 0) & 0xff;
+        // swap data to big endian
         reverse_copy(vch.begin(), vch.end(), vch2.begin() + 4);
         BN_mpi2bn(&vch2[0], vch2.size(), this);
     }