hdac SDK
SDK for hdac blockchain development
|
#include <key.h>
Public 멤버 함수 | |
CKey () | |
Construct an invalid private key. | |
CKey (const CKey &secret) | |
Copy constructor. This is necessary because of memlocking. | |
~CKey () | |
Destructor (again necessary because of memlocking). | |
template<typename T > | |
void | Set (const T pbegin, const T pend, bool fCompressedIn) |
Initialize using begin and end iterators to byte data. | |
unsigned int | size () const |
Simple read-only vector-like interface. | |
const unsigned char * | begin () const |
const unsigned char * | end () const |
bool | IsValid () const |
Check whether this private key is valid. | |
bool | IsCompressed () const |
Check whether the public key corresponding to this private key is (to be) compressed. | |
bool | SetPrivKey (const CPrivKey &vchPrivKey, bool fCompressed) |
Initialize from a CPrivKey (serialized OpenSSL private key data). | |
void | MakeNewKey (bool fCompressed) |
Generate a new private key using a cryptographic PRNG. | |
CPrivKey | GetPrivKey () const |
CPubKey | GetPubKey () const |
bool | Sign (const uint256 &hash, std::vector< unsigned char > &vchSig, uint32_t test_case=0) const |
bool | SignCompact (const uint256 &hash, std::vector< unsigned char > &vchSig) const |
bool | Derive (CKey &keyChild, ChainCode &ccChild, unsigned int nChild, const ChainCode &cc) const |
Derive BIP32 child key. | |
bool | VerifyPubKey (const CPubKey &vchPubKey) const |
bool | Load (CPrivKey &privkey, CPubKey &vchPubKey, bool fSkipCheck) |
Load private key and check that public key matches. | |
정적 Public 멤버 함수 | |
static bool | CheckSignatureElement (const unsigned char *vch, int len, bool half) |
Check whether an element of a signature (r or s) is valid. | |
Friends | |
bool | operator== (const CKey &a, const CKey &b) |
An encapsulated private key.
CPrivKey CKey::GetPrivKey | ( | ) | const |
Convert the private key to a CPrivKey (serialized OpenSSL private key data). This is expensive.
CPubKey CKey::GetPubKey | ( | ) | const |
Compute the public key from a private key. This is expensive.
bool CKey::Sign | ( | const uint256 & | hash, |
std::vector< unsigned char > & | vchSig, | ||
uint32_t | test_case = 0 |
||
) | const |
Create a DER-serialized signature. The test_case parameter tweaks the deterministic nonce.
bool CKey::SignCompact | ( | const uint256 & | hash, |
std::vector< unsigned char > & | vchSig | ||
) | const |
Create a compact signature (65 bytes), which allows reconstructing the used public key. The format is one header byte, followed by two times 32 bytes for the serialized r and s values. The header byte: 0x1B = first key with even y, 0x1C = first key with odd y, 0x1D = second key with even y, 0x1E = second key with odd y, add 0x04 for compressed keys.
bool CKey::VerifyPubKey | ( | const CPubKey & | vchPubKey | ) | const |
Verify thoroughly whether a private key and a public key match. This is done using a different mechanism than just regenerating it.