1
0
Fork 0
mirror of https://github.com/eosswedenorg/libantelope synced 2026-06-17 20:10:03 +02:00

WIF: Support PVT_K1 format.

This commit is contained in:
Henrik Hautakoski 2023-03-25 16:25:02 +01:00
parent ea411793a2
commit 1aa6906ba2
7 changed files with 157 additions and 38 deletions

View file

@ -61,4 +61,28 @@ bool pub_decoder_k1(const std::vector<unsigned char>& buf, ec_pubkey_t& key) {
return true;
}
size_t priv_encoder_k1(const ec_privkey_t& priv, unsigned char *buf) {
checksum_t check = _checksum_suffix(priv.data(), EC_PRIVKEY_SIZE, "K1");
memcpy(buf, priv.data(), priv.size());
memcpy(buf + EC_PRIVKEY_SIZE, check.data(), check.size());
return EC_PRIVKEY_SIZE + CHECKSUM_SIZE;
}
bool priv_decoder_k1(const std::vector<unsigned char>& buf, ec_privkey_t& priv) {
if (buf.size() != EC_PRIVKEY_SIZE + CHECKSUM_SIZE) {
return false;
}
checksum_t check = _checksum_suffix(buf.data(), EC_PRIVKEY_SIZE, "K1");
if (memcmp(buf.data() + EC_PRIVKEY_SIZE, check.data(), CHECKSUM_SIZE)) {
return false;
}
memcpy(priv.data(), buf.data(), priv.size());
return true;
}
}} // namespace libeosio::internal