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
5
#include "
barretenberg/bbapi/bbapi_ecdsa.hpp
"
6
#include "
barretenberg/common/throw_or_abort.hpp
"
7
8
namespace
bb::bbapi
{
9
10
// Secp256k1 implementations
11
EcdsaSecp256k1ComputePublicKey::Response
EcdsaSecp256k1ComputePublicKey::execute
(
BB_UNUSED
BBApiRequest
& request) &&
12
{
13
return
{
secp256k1::g1::one
* private_key };
14
}
15
16
EcdsaSecp256k1ConstructSignature::Response
EcdsaSecp256k1ConstructSignature::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
28
EcdsaSecp256k1RecoverPublicKey::Response
EcdsaSecp256k1RecoverPublicKey::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
36
EcdsaSecp256k1VerifySignature::Response
EcdsaSecp256k1VerifySignature::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
45
EcdsaSecp256r1ComputePublicKey::Response
EcdsaSecp256r1ComputePublicKey::execute
(
BB_UNUSED
BBApiRequest
& request) &&
46
{
47
return
{
secp256r1::g1::one
* private_key };
48
}
49
50
EcdsaSecp256r1ConstructSignature::Response
EcdsaSecp256r1ConstructSignature::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
62
EcdsaSecp256r1RecoverPublicKey::Response
EcdsaSecp256r1RecoverPublicKey::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
70
EcdsaSecp256r1VerifySignature::Response
EcdsaSecp256r1VerifySignature::execute
(
BB_UNUSED
BBApiRequest
& request) &&
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
bbapi_ecdsa.hpp
ECDSA signature command definitions for the Barretenberg RPC API.
bb::group::one
static constexpr element one
Definition
group.hpp:46
BB_UNUSED
#define BB_UNUSED
Definition
compiler_hints.hpp:30
bb::bbapi
Definition
bbapi_chonk.cpp:13
bb::bbapi::BBApiRequest
Definition
bbapi_shared.hpp:147
bb::bbapi::EcdsaSecp256k1ComputePublicKey::Response
Definition
bbapi_ecdsa.hpp:29
bb::bbapi::EcdsaSecp256k1ComputePublicKey::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:11
bb::bbapi::EcdsaSecp256k1ConstructSignature::Response
Definition
bbapi_ecdsa.hpp:69
bb::bbapi::EcdsaSecp256k1ConstructSignature::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:16
bb::bbapi::EcdsaSecp256k1RecoverPublicKey::Response
Definition
bbapi_ecdsa.hpp:115
bb::bbapi::EcdsaSecp256k1RecoverPublicKey::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:28
bb::bbapi::EcdsaSecp256k1VerifySignature::Response
Definition
bbapi_ecdsa.hpp:161
bb::bbapi::EcdsaSecp256k1VerifySignature::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:36
bb::bbapi::EcdsaSecp256r1ComputePublicKey::Response
Definition
bbapi_ecdsa.hpp:49
bb::bbapi::EcdsaSecp256r1ComputePublicKey::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:45
bb::bbapi::EcdsaSecp256r1ConstructSignature::Response
Definition
bbapi_ecdsa.hpp:92
bb::bbapi::EcdsaSecp256r1ConstructSignature::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:50
bb::bbapi::EcdsaSecp256r1RecoverPublicKey::Response
Definition
bbapi_ecdsa.hpp:138
bb::bbapi::EcdsaSecp256r1RecoverPublicKey::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:62
bb::bbapi::EcdsaSecp256r1VerifySignature::Response
Definition
bbapi_ecdsa.hpp:185
bb::bbapi::EcdsaSecp256r1VerifySignature::execute
Response execute(BBApiRequest &request) &&
Definition
bbapi_ecdsa.cpp:70
bb::crypto::ecdsa_key_pair
Definition
ecdsa.hpp:18
bb::crypto::ecdsa_signature
Definition
ecdsa.hpp:25
throw_or_abort.hpp
src
barretenberg
bbapi
bbapi_ecdsa.cpp
Generated by
1.9.8