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 <vector>
|
||||
#include "bignum.h"
|
||||
#include "key.h"
|
||||
|
||||
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
||||
|
||||
|
@ -257,15 +258,14 @@ public:
|
|||
class CBitcoinAddress : public CBase58Data
|
||||
{
|
||||
public:
|
||||
bool SetHash160(const uint160& hash160)
|
||||
void SetHash160(const uint160& hash160)
|
||||
{
|
||||
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
|
||||
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue