aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2018-08-18 16:32:00 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2018-08-18 16:32:00 +0800
commit7e09cd576289322dcc5176d1f25c42e1f68f8016 (patch)
tree03302dcffad6783c4c453955eebc25e8893392cc
parentb985a6a27a3fe1612db76f27a793ada001df0ed9 (diff)
downloadtangerine-mcl-7e09cd576289322dcc5176d1f25c42e1f68f8016.tar.gz
tangerine-mcl-7e09cd576289322dcc5176d1f25c42e1f68f8016.tar.zst
tangerine-mcl-7e09cd576289322dcc5176d1f25c42e1f68f8016.zip
add BN160 for low level test
-rw-r--r--include/mcl/bn.hpp2
-rw-r--r--include/mcl/curve_type.h3
-rw-r--r--test/bench.hpp9
-rw-r--r--test/bn384_test.cpp2
4 files changed, 11 insertions, 5 deletions
diff --git a/include/mcl/bn.hpp b/include/mcl/bn.hpp
index e3758e5..aebff2e 100644
--- a/include/mcl/bn.hpp
+++ b/include/mcl/bn.hpp
@@ -57,6 +57,7 @@ const CurveParam BN381_2 = { "-0x400040090001000000000001", 2, 1, false, MCL_BN3
const CurveParam BN462 = { "0x4001fffffffffffffffffffffbfff", 5, 2, false, MCL_BN462 }; // 2^114 + 2^101 - 2^14 - 1 // https://eprint.iacr.org/2017/334
const CurveParam BN_SNARK1 = { "4965661367192848881", 3, 9, false, MCL_BN_SNARK1 };
const CurveParam BLS12_381 = { "-0xd201000000010000", 4, 1, true, MCL_BLS12_381 };
+const CurveParam BN160 = { "0x4000000031", 3, 4, false, MCL_BN160 };
inline const CurveParam& getCurveParam(int type)
{
@@ -67,6 +68,7 @@ inline const CurveParam& getCurveParam(int type)
case MCL_BN462: return mcl::BN462;
case MCL_BN_SNARK1: return mcl::BN_SNARK1;
case MCL_BLS12_381: return mcl::BLS12_381;
+ case MCL_BN160: return mcl::BN160;
default:
assert(0);
return mcl::BN254;
diff --git a/include/mcl/curve_type.h b/include/mcl/curve_type.h
index 537ce11..5957d1a 100644
--- a/include/mcl/curve_type.h
+++ b/include/mcl/curve_type.h
@@ -13,5 +13,6 @@ enum {
MCL_BN381_2 = 2,
MCL_BN462 = 3,
MCL_BN_SNARK1 = 4,
- MCL_BLS12_381 = 5
+ MCL_BLS12_381 = 5,
+ MCL_BN160 = 6
};
diff --git a/test/bench.hpp b/test/bench.hpp
index faf93a1..baeefe4 100644
--- a/test/bench.hpp
+++ b/test/bench.hpp
@@ -59,17 +59,18 @@ void testBench(const G1& P, const G2& Q)
CYBOZU_BENCH_C("Fp2::sub ", C3, Fp2::sub, xx, xx, yy);
CYBOZU_BENCH_C("Fp2::neg ", C3, Fp2::neg, xx, xx);
CYBOZU_BENCH_C("Fp2::mul ", C3, Fp2::mul, xx, xx, yy);
+ CYBOZU_BENCH_C("Fp2::mul_xi ", C3, Fp2::mul_xi, xx, xx);
CYBOZU_BENCH_C("Fp2::sqr ", C3, Fp2::sqr, xx, xx);
CYBOZU_BENCH_C("Fp2::inv ", C3, Fp2::inv, xx, xx);
FpDbl d0, d1;
x = 9;
y = 3;
- CYBOZU_BENCH_C("FpDbl::mulPre ", C3, FpDbl::mulPre, d0, x, y);
- CYBOZU_BENCH_C("FpDbl::sqrPre ", C3, FpDbl::sqrPre, d1, x);
- CYBOZU_BENCH_C("FpDbl::add ", C3, FpDbl::add, d1, d1, d0);
- CYBOZU_BENCH_C("FpDbl::sub ", C3, FpDbl::sub, d1, d1, d0);
CYBOZU_BENCH_C("FpDbl::addPre ", C3, FpDbl::addPre, d1, d1, d0);
CYBOZU_BENCH_C("FpDbl::subPre ", C3, FpDbl::subPre, d1, d1, d0);
+ CYBOZU_BENCH_C("FpDbl::add ", C3, FpDbl::add, d1, d1, d0);
+ CYBOZU_BENCH_C("FpDbl::sub ", C3, FpDbl::sub, d1, d1, d0);
+ CYBOZU_BENCH_C("FpDbl::mulPre ", C3, FpDbl::mulPre, d0, x, y);
+ CYBOZU_BENCH_C("FpDbl::sqrPre ", C3, FpDbl::sqrPre, d1, x);
CYBOZU_BENCH_C("FpDbl::mod ", C3, FpDbl::mod, x, d0);
CYBOZU_BENCH_C("GT::add ", C2, GT::add, e1, e1, e2);
diff --git a/test/bn384_test.cpp b/test/bn384_test.cpp
index 7b536c2..84b3f19 100644
--- a/test/bn384_test.cpp
+++ b/test/bn384_test.cpp
@@ -57,6 +57,8 @@ void testCurve(const mcl::CurveParam& cp)
CYBOZU_TEST_AUTO(pairing)
{
+// puts("BN160");
+// testCurve(mcl::BN160);
puts("BN254");
// support 256-bit pairing
testCurve(mcl::BN254);