Skip to content

Commit ba32fdf

Browse files
committed
move bls signature verification to pubkey submodule
1 parent 407f210 commit ba32fdf

File tree

1 file changed

+4
-20
lines changed

1 file changed

+4
-20
lines changed
Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,13 @@
11
#include <nil/crypto3/algebra/fields/bls12/base_field.hpp>
22
#include <nil/crypto3/algebra/curves/bls12.hpp>
3-
#include <nil/crypto3/algebra/algorithms/pair.hpp>
3+
#include <nil/crypto3/pubkey/detail/bls/bls_basic_functions.hpp>
44

55
using namespace nil::crypto3;
66

77
[[circuit]] bool verify_signature(
88
typename algebra::fields::bls12_base_field<381>::value_type hashed_msg,
99
typename algebra::curves::bls12<381>::template g2_type<>::value_type pubkey,
10-
typename algebra::curves::bls12<381>::template g1_type<>::value_type sig) {
11-
12-
typename algebra::curves::bls12<381>::template g1_type<>::value_type msg_point = __builtin_assigner_hash_to_curve(hashed_msg);
13-
14-
// __builtin_assigner_exit_check(__builtin_assigner_is_in_g1_check(sig));
15-
// __builtin_assigner_exit_check(__builtin_assigner_is_in_g2_check(pubkey));
16-
17-
typename algebra::curves::bls12<381>::template g2_type<>::value_type g2_group_generator = algebra::curves::bls12<381>::template g2_type<>::one();
18-
19-
typename algebra::curves::bls12<381>::gt_type::value_type pairing1 = algebra::pair<algebra::curves::bls12<381>>(sig, g2_group_generator);
20-
typename algebra::curves::bls12<381>::gt_type::value_type pairing2 = algebra::pair<algebra::curves::bls12<381>>(msg_point, pubkey);
21-
22-
bool are_equal = 0;
23-
for (std::size_t i = 0; i < 12; i++) {
24-
are_equal = are_equal && (pairing1[i] == pairing2[i]);
25-
}
26-
// __builtin_assigner_exit_check(are_equal);
27-
28-
return are_equal;
10+
typename algebra::curves::bls12<381>::template g1_type<>::value_type sig
11+
) {
12+
return pubkey::detail::bls_basic_functions::verify(hashed_msg, pubkey, sig);
2913
}

0 commit comments

Comments
 (0)