Changeset View
Changeset View
Standalone View
Standalone View
src/key.cpp
Show First 20 Lines • Show All 253 Lines • ▼ Show 20 Lines | bool CKey::SignCompact(const uint256 &hash, | ||||
secp256k1_ecdsa_recoverable_signature_serialize_compact( | secp256k1_ecdsa_recoverable_signature_serialize_compact( | ||||
secp256k1_context_sign, (uint8_t *)&vchSig[1], &rec, &sig); | secp256k1_context_sign, (uint8_t *)&vchSig[1], &rec, &sig); | ||||
assert(ret); | assert(ret); | ||||
assert(rec != -1); | assert(rec != -1); | ||||
vchSig[0] = 27 + rec + (fCompressed ? 4 : 0); | vchSig[0] = 27 + rec + (fCompressed ? 4 : 0); | ||||
return true; | return true; | ||||
} | } | ||||
bool CKey::Load(CPrivKey &privkey, CPubKey &vchPubKey, | bool CKey::Load(const CPrivKey &privkey, const CPubKey &vchPubKey, | ||||
bool fSkipCheck = false) { | bool fSkipCheck = false) { | ||||
if (!ec_privkey_import_der(secp256k1_context_sign, (uint8_t *)begin(), | if (!ec_privkey_import_der(secp256k1_context_sign, (uint8_t *)begin(), | ||||
privkey.data(), privkey.size())) | privkey.data(), privkey.size())) | ||||
return false; | return false; | ||||
fCompressed = vchPubKey.IsCompressed(); | fCompressed = vchPubKey.IsCompressed(); | ||||
fValid = true; | fValid = true; | ||||
if (fSkipCheck) { | if (fSkipCheck) { | ||||
▲ Show 20 Lines • Show All 113 Lines • Show Last 20 Lines |