diff options
| author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-04-04 13:34:00 +0800 |
|---|---|---|
| committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-04-04 13:34:00 +0800 |
| commit | e07a7eba6202202405a17e4774821d0a24918aed (patch) | |
| tree | 9b20e4f5b98e6f92e2f45a95f5baf690943f59d8 /include/mcl | |
| parent | aaab06e142ce93cf5348a502ad65257e228952b5 (diff) | |
| download | tangerine-mcl-e07a7eba6202202405a17e4774821d0a24918aed.tar.gz tangerine-mcl-e07a7eba6202202405a17e4774821d0a24918aed.tar.zst tangerine-mcl-e07a7eba6202202405a17e4774821d0a24918aed.zip | |
add mclBn_verifyOrderG1/G2
Diffstat (limited to 'include/mcl')
| -rw-r--r-- | include/mcl/bn.h | 9 | ||||
| -rw-r--r-- | include/mcl/bn.hpp | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/mcl/bn.h b/include/mcl/bn.h index f4dddce..b141f5e 100644 --- a/include/mcl/bn.h +++ b/include/mcl/bn.h @@ -85,6 +85,8 @@ typedef struct { */ MCLBN_DLL_API int mclBn_setErrFile(const char *name); +#include <mcl/curve_type.h> +// for backword compatibility enum { mclBn_CurveFp254BNb = 0, mclBn_CurveFp382_1 = 1, @@ -324,6 +326,13 @@ MCLBN_DLL_API int mclBn_FrEvaluatePolynomial(mclBnFr *out, const mclBnFr *cVec, MCLBN_DLL_API int mclBn_G1EvaluatePolynomial(mclBnG1 *out, const mclBnG1 *cVec, mclSize cSize, const mclBnFr *x); MCLBN_DLL_API int mclBn_G2EvaluatePolynomial(mclBnG2 *out, const mclBnG2 *cVec, mclSize cSize, const mclBnFr *x); +/* + verify whether a point of an elliptic curve has order r + This api affetcs setStr(), deserialize() for G2 on BN or G1/G2 on BLS12 + @param doVerify [in] does not verify if zero(default 1) +*/ +MCLBN_DLL_API void mclBn_verifyOrderG1(int doVerify); +MCLBN_DLL_API void mclBn_verifyOrderG2(int doVerify); #ifdef __cplusplus } diff --git a/include/mcl/bn.hpp b/include/mcl/bn.hpp index 93e8f8d..f8c5b85 100644 --- a/include/mcl/bn.hpp +++ b/include/mcl/bn.hpp @@ -915,6 +915,9 @@ struct ParamT { twist_b_type = tb_generic; } G1::init(0, cp.b, mcl::ec::Proj); + if (isBLS12) { + G1::setOrder(r); + } G2::init(0, twist_b, mcl::ec::Proj); G2::setOrder(r); |
