CBitcoinSecret added (base58 encoded privkey)
This commit is contained in:
parent
93db3fceac
commit
15a8590ecf
1 changed files with 49 additions and 4 deletions
53
src/base58.h
53
src/base58.h
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue