CBitcoinSecret added (base58 encoded privkey)

This commit is contained in:
Pieter Wuille 2011-07-11 21:48:09 +02:00 committed by Pieter Wuille
parent 93db3fceac
commit 15a8590ecf

View file

@ -18,6 +18,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "bignum.h" #include "bignum.h"
#include "key.h"
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
@ -257,15 +258,14 @@ public:
class CBitcoinAddress : public CBase58Data class CBitcoinAddress : public CBase58Data
{ {
public: public:
bool SetHash160(const uint160& hash160) void SetHash160(const uint160& hash160)
{ {
SetData(fTestNet ? 111 : 0, &hash160, 20); SetData(fTestNet ? 111 : 0, &hash160, 20);
return true;
} }
bool SetPubKey(const std::vector<unsigned char>& vchPubKey) void SetPubKey(const std::vector<unsigned char>& vchPubKey)
{ {
return SetHash160(Hash160(vchPubKey)); SetHash160(Hash160(vchPubKey));
} }
bool IsValid() const bool IsValid() const
@ -320,4 +320,49 @@ public:
} }
}; };
class CBitcoinSecret : public CBase58Data
{
public:
void SetSecret(const CSecret& vchSecret)
{
SetData(fTestNet ? 239 : 128, &vchSecret[0], vchSecret.size());
}
CSecret GetSecret()
{
CSecret vchSecret;
vchSecret.resize(vchData.size());
memcpy(&vchSecret[0], &vchData[0], vchData.size());
return vchSecret;
}
bool IsValid() const
{
int nExpectedSize = 32;
bool fExpectTestNet = false;
switch(nVersion)
{
case 128:
break;
case 239:
fExpectTestNet = true;
break;
default:
return false;
}
return fExpectTestNet == fTestNet && vchData.size() == nExpectedSize;
}
CBitcoinSecret(const CSecret& vchSecret)
{
SetSecret(vchSecret);
}
CBitcoinSecret()
{
}
};
#endif #endif