Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release/5.0' into GH-1953-bls-n0…
Browse files Browse the repository at this point in the history
…-main
  • Loading branch information
heifner committed Dec 6, 2023
2 parents fb47a32 + 1a029ea commit 78c92df
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 20 deletions.
6 changes: 3 additions & 3 deletions libraries/chain/webassembly/crypto.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ namespace eosio { namespace chain { namespace webassembly {
}

int32_t interface::bls_g1_weighted_sum(span<const char> points, span<const char> scalars, const uint32_t n, span<char> result) const {
if(points.size() != n*96 || scalars.size() != n*32 || result.size() != 96)
if(n == 0 || points.size() != n*96 || scalars.size() != n*32 || result.size() != 96)
return return_code::failure;

// Use much efficient scale for the special case of n == 1.
Expand Down Expand Up @@ -319,7 +319,7 @@ namespace eosio { namespace chain { namespace webassembly {
}

int32_t interface::bls_g2_weighted_sum(span<const char> points, span<const char> scalars, const uint32_t n, span<char> result) const {
if(points.size() != n*192 || scalars.size() != n*32 || result.size() != 192)
if(n == 0 || points.size() != n*192 || scalars.size() != n*32 || result.size() != 192)
return return_code::failure;

// Use much efficient scale for the special case of n == 1.
Expand Down Expand Up @@ -354,7 +354,7 @@ namespace eosio { namespace chain { namespace webassembly {
}

int32_t interface::bls_pairing(span<const char> g1_points, span<const char> g2_points, const uint32_t n, span<char> result) const {
if(g1_points.size() != n*96 || g2_points.size() != n*192 || result.size() != 576)
if(n == 0 || g1_points.size() != n*96 || g2_points.size() != n*192 || result.size() != 576)
return return_code::failure;
std::vector<std::tuple<bls12_381::g1, bls12_381::g2>> v;
v.reserve(n);
Expand Down
14 changes: 7 additions & 7 deletions unittests/bls_primitives_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -619,31 +619,31 @@ BOOST_AUTO_TEST_CASE( bls_empty ) { try {
c.set_abi( tester1_account, test_contracts::bls_primitives_test_abi().data() );
c.produce_block();

//expected return is g1::zero(), which is x=0, y=1, z=0. 1 here means fp::R1
//expected return is failure
c.push_action( tester1_account, "testg1wsum"_n, tester1_account, mutable_variant_object()
("points", std::vector<char>())
("scalars", std::vector<char>())
("num", 0)
("res", hex2bin("000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
("expected_error", (int32_t)return_code::success)
("expected_error", (int32_t)return_code::failure)
);

//expected return is g2::zero(), which is x=0, y=1, z=0. 1 here means fb2::one(), {fp::R1, 0}
//expected return is failure
c.push_action( tester1_account, "testg2wsum"_n, tester1_account, mutable_variant_object()
("points", std::vector<char>())
("scalars", std::vector<char>())
("num", 0)
("res", hex2bin("000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
("expected_error", (int32_t)return_code::success)
("expected_error", (int32_t)return_code::failure)
);

//expected return is fp12::one(), which is {fp6::one(), fp6::zero()}, which is {{fp2::one(), fp2::zero(), fp2::zero()}, {fp2::zero(), fp2::zero(), fp2::zero()}}
//expected return is failure
c.push_action( tester1_account, "testpairing"_n, tester1_account, mutable_variant_object()
("g1_points", std::vector<char>())
("g2_points", std::vector<char>())
("num", 0)
("res", hex2bin("010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
("expected_error", (int32_t)return_code::success)
("res", hex2bin("000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
("expected_error", (int32_t)return_code::failure)
);

} FC_LOG_AND_RETHROW() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ using namespace eosio;

void bls_primitives_test::testg1add(const std::vector<uint8_t>& op1, const std::vector<uint8_t>& op2, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g1 r;
bls_g1 r{};
int32_t error = internal_use_do_not_use::bls_g1_add(
reinterpret_cast<const char*>(op1.data()),
sizeof(bls_g1),
Expand All @@ -20,7 +20,7 @@ void bls_primitives_test::testg1add(const std::vector<uint8_t>& op1, const std::

void bls_primitives_test::testg2add(const std::vector<uint8_t>& op1, const std::vector<uint8_t>& op2, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g2 r;
bls_g2 r{};
int32_t error = internal_use_do_not_use::bls_g2_add(
reinterpret_cast<const char*>(op1.data()),
sizeof(bls_g2),
Expand All @@ -35,7 +35,7 @@ void bls_primitives_test::testg2add(const std::vector<uint8_t>& op1, const std::

void bls_primitives_test::testg1wsum(const std::vector<uint8_t>& points, const std::vector<uint8_t>& scalars, const uint32_t num, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g1 r;
bls_g1 r{};
int32_t error = internal_use_do_not_use::bls_g1_weighted_sum(
reinterpret_cast<const char*>(points.data()),
num * sizeof(bls_g1),
Expand All @@ -51,7 +51,7 @@ void bls_primitives_test::testg1wsum(const std::vector<uint8_t>& points, const s

void bls_primitives_test::testg2wsum(const std::vector<uint8_t>& points, const std::vector<uint8_t>& scalars, const uint32_t num, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g2 r;
bls_g2 r{};
int32_t error = internal_use_do_not_use::bls_g2_weighted_sum(
reinterpret_cast<const char*>(points.data()),
num * sizeof(bls_g2),
Expand All @@ -67,7 +67,7 @@ void bls_primitives_test::testg2wsum(const std::vector<uint8_t>& points, const s

void bls_primitives_test::testpairing(const std::vector<uint8_t>& g1_points, const std::vector<uint8_t>& g2_points, const uint32_t num, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_gt r;
bls_gt r{};
int32_t error = internal_use_do_not_use::bls_pairing(
reinterpret_cast<const char*>(g1_points.data()),
num * sizeof(bls_g1),
Expand All @@ -83,7 +83,7 @@ void bls_primitives_test::testpairing(const std::vector<uint8_t>& g1_points, con

void bls_primitives_test::testg1map(const std::vector<uint8_t>& e, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g1 r;
bls_g1 r{};
int32_t error = internal_use_do_not_use::bls_g1_map(
reinterpret_cast<const char*>(e.data()),
sizeof(bls_fp),
Expand All @@ -96,7 +96,7 @@ void bls_primitives_test::testg1map(const std::vector<uint8_t>& e, const std::ve

void bls_primitives_test::testg2map(const std::vector<uint8_t>& e, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_g2 r;
bls_g2 r{};
int32_t error = internal_use_do_not_use::bls_g2_map(
reinterpret_cast<const char*>(e.data()),
sizeof(bls_fp2),
Expand All @@ -109,7 +109,7 @@ void bls_primitives_test::testg2map(const std::vector<uint8_t>& e, const std::ve

void bls_primitives_test::testfpmul(const std::vector<uint8_t>& op1, const std::vector<uint8_t>& op2, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_fp r;
bls_fp r{};
int32_t error = internal_use_do_not_use::bls_fp_mul(
reinterpret_cast<const char*>(op1.data()),
sizeof(bls_fp),
Expand All @@ -124,7 +124,7 @@ void bls_primitives_test::testfpmul(const std::vector<uint8_t>& op1, const std::

void bls_primitives_test::testfpexp(const std::vector<uint8_t>& base, const std::vector<uint8_t>& exp, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_fp r;
bls_fp r{};
int32_t error = internal_use_do_not_use::bls_fp_exp(
reinterpret_cast<const char*>(base.data()),
sizeof(bls_fp),
Expand All @@ -140,7 +140,7 @@ void bls_primitives_test::testfpexp(const std::vector<uint8_t>& base, const std:

void bls_primitives_test::testfpmod(const std::vector<uint8_t>& s, const std::vector<uint8_t>& res, int32_t expected_error)
{
bls_fp r;
bls_fp r{};
int32_t error = internal_use_do_not_use::bls_fp_mod(
reinterpret_cast<const char*>(s.data()),
sizeof(bls_scalar_large),
Expand Down
Binary file not shown.

0 comments on commit 78c92df

Please sign in to comment.