Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bbapi_ecdsa.cpp
Go to the documentation of this file.
1
7
8namespace bb::bbapi {
9
10// Secp256k1 implementations
15
17{
18 auto pub_key = secp256k1::g1::one * private_key;
19 crypto::ecdsa_key_pair<secp256k1::fr, secp256k1::g1> key_pair = { private_key, pub_key };
20
21 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
22 auto sig = crypto::ecdsa_construct_signature<crypto::Sha256Hasher, secp256k1::fq, secp256k1::fr, secp256k1::g1>(
23 message_str, key_pair);
24
25 return { sig.r, sig.s, sig.v };
26}
27
29{
30 crypto::ecdsa_signature sig = { r, s, v };
31 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
32 return { crypto::ecdsa_recover_public_key<crypto::Sha256Hasher, secp256k1::fq, secp256k1::fr, secp256k1::g1>(
33 message_str, sig) };
34}
35
37{
38 crypto::ecdsa_signature sig = { r, s, v };
39 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
40 return { crypto::ecdsa_verify_signature<crypto::Sha256Hasher, secp256k1::fq, secp256k1::fr, secp256k1::g1>(
41 message_str, public_key, sig) };
42}
43
44// Secp256r1 implementations
49
51{
52 auto pub_key = secp256r1::g1::one * private_key;
53 crypto::ecdsa_key_pair<secp256r1::fr, secp256r1::g1> key_pair = { private_key, pub_key };
54
55 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
56 auto sig = crypto::ecdsa_construct_signature<crypto::Sha256Hasher, secp256r1::fq, secp256r1::fr, secp256r1::g1>(
57 message_str, key_pair);
58
59 return { sig.r, sig.s, sig.v };
60}
61
63{
64 crypto::ecdsa_signature sig = { r, s, v };
65 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
66 return { crypto::ecdsa_recover_public_key<crypto::Sha256Hasher, secp256r1::fq, secp256r1::fr, secp256r1::g1>(
67 message_str, sig) };
68}
69
71{
72 crypto::ecdsa_signature sig = { r, s, v };
73 std::string message_str(reinterpret_cast<const char*>(message.data()), message.size());
74 return { crypto::ecdsa_verify_signature<crypto::Sha256Hasher, secp256r1::fq, secp256r1::fr, secp256r1::g1>(
75 message_str, public_key, sig) };
76}
77
78} // namespace bb::bbapi
ECDSA signature command definitions for the Barretenberg RPC API.
static constexpr element one
Definition group.hpp:46
#define BB_UNUSED
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&
Response execute(BBApiRequest &request) &&