|
|
@ -237,18 +237,6 @@ bool CPubKey::Decompress() { |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void static BIP32Hash(const unsigned char chainCode[32], unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]) { |
|
|
|
|
|
|
|
unsigned char num[4]; |
|
|
|
|
|
|
|
num[0] = (nChild >> 24) & 0xFF; |
|
|
|
|
|
|
|
num[1] = (nChild >> 16) & 0xFF; |
|
|
|
|
|
|
|
num[2] = (nChild >> 8) & 0xFF; |
|
|
|
|
|
|
|
num[3] = (nChild >> 0) & 0xFF; |
|
|
|
|
|
|
|
CHMAC_SHA512(chainCode, 32).Write(&header, 1) |
|
|
|
|
|
|
|
.Write(data, 32) |
|
|
|
|
|
|
|
.Write(num, 4) |
|
|
|
|
|
|
|
.Finalize(output); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool CKey::Derive(CKey& keyChild, unsigned char ccChild[32], unsigned int nChild, const unsigned char cc[32]) const { |
|
|
|
bool CKey::Derive(CKey& keyChild, unsigned char ccChild[32], unsigned int nChild, const unsigned char cc[32]) const { |
|
|
|
assert(IsValid()); |
|
|
|
assert(IsValid()); |
|
|
|
assert(IsCompressed()); |
|
|
|
assert(IsCompressed()); |
|
|
|