mirror of
https://github.com/eosswedenorg/libantelope
synced 2026-06-16 03:34:56 +02:00
src/wif/k1.cpp: implement sig_encoder_k1 and sig_decoder_k1
This commit is contained in:
parent
abdd84f257
commit
be6c98f1bd
1 changed files with 30 additions and 0 deletions
|
|
@ -85,4 +85,34 @@ bool priv_decoder_k1(const std::vector<unsigned char>& buf, ec_privkey_t& priv)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sig_encoder_k1(const ec_signature_t& sig, unsigned char *buf) {
|
||||||
|
|
||||||
|
checksum_t check = _checksum_suffix(sig.data(), EC_SIGNATURE_SIZE, "K1");
|
||||||
|
|
||||||
|
memcpy(buf, sig.data(), sig.size());
|
||||||
|
memcpy(buf + EC_SIGNATURE_SIZE, check.data(), check.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool sig_decoder_k1(const std::vector<unsigned char>& buf, ec_signature_t& sig) {
|
||||||
|
|
||||||
|
checksum_t check;
|
||||||
|
|
||||||
|
if (buf.size() != EC_SIGNATURE_SIZE + CHECKSUM_SIZE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate checksum
|
||||||
|
check = _checksum_suffix(buf.data(), EC_SIGNATURE_SIZE, "K1");
|
||||||
|
|
||||||
|
// And validate
|
||||||
|
if (memcmp(buf.data() + EC_SIGNATURE_SIZE, check.data(), CHECKSUM_SIZE)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy data to output
|
||||||
|
memcpy(sig.data(), buf.data(), sig.size());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}} // namespace libeosio::internal
|
}} // namespace libeosio::internal
|
||||||
Loading…
Add table
Add a link
Reference in a new issue