barretenberg
Loading...
Searching...
No Matches
verify_signature.hpp
1#include "barretenberg/stdlib/encryption/schnorr/schnorr.hpp"
2#include "barretenberg/stdlib/hash/pedersen/pedersen.hpp"
3
4namespace join_split_example {
5namespace proofs {
6namespace join_split {
7
8using namespace notes;
9
10inline void verify_signature(field_ct const& public_value,
11 field_ct const& public_owner,
12 field_ct const& public_asset_id,
13 field_ct const& output_note1_commitment,
14 field_ct const& output_note2_commitment,
15 field_ct const& nullifier1,
16 field_ct const& nullifier2,
17 group_ct const& owner_pub_key,
18 field_ct const& backward_link,
19 field_ct const& allow_chain,
20 schnorr::signature_bits const& signature)
21{
22 std::vector<field_ct> to_compress = {
23 public_value, public_owner, public_asset_id, output_note1_commitment, output_note2_commitment, nullifier1,
24 nullifier2, backward_link, allow_chain,
25 };
26 byte_array_ct message = pedersen_hash::hash(to_compress);
27 verify_signature(message, owner_pub_key, signature);
28}
29
30} // namespace join_split
31} // namespace proofs
32} // namespace join_split_example
Definition: field.hpp:10