test addCTProj for Zero

update-fork
MITSUNARI Shigeo 4 years ago
parent 34fdf9a67e
commit ad59c9eff7
  1. 1
      include/mcl/ec.hpp
  2. 3
      test/ec_test.cpp

@ -427,6 +427,7 @@ void addJacobi(E& R, const E& P, const E& Q)
/* /*
accept P == Q accept P == Q
https://github.com/apache/incubator-milagro-crypto-c/blob/fa0a45a3/src/ecp.c.in#L767-L976 https://github.com/apache/incubator-milagro-crypto-c/blob/fa0a45a3/src/ecp.c.in#L767-L976
(x, y, z) is zero <=> x = 0, y = 1, z = 0
*/ */
template<class E> template<class E>
void addCTProj(E& R, const E& P, const E& Q) void addCTProj(E& R, const E& P, const E& Q)

@ -499,20 +499,19 @@ struct Test {
Fp y(para.gy); Fp y(para.gy);
Ec P(x, y), Q, R, Zero; Ec P(x, y), Q, R, Zero;
Zero.clear(); Zero.clear();
Zero.y = 1;
mcl::ec::addCTProj(Q, P, P); mcl::ec::addCTProj(Q, P, P);
Ec::add(R, P, P); Ec::add(R, P, P);
CYBOZU_TEST_EQUAL(Q, R); CYBOZU_TEST_EQUAL(Q, R);
mcl::ec::addCTProj(Q, Q, P); mcl::ec::addCTProj(Q, Q, P);
Ec::add(R, R, P); Ec::add(R, R, P);
CYBOZU_TEST_EQUAL(Q, R); CYBOZU_TEST_EQUAL(Q, R);
/*
mcl::ec::addCTProj(Q, Q, Zero); mcl::ec::addCTProj(Q, Q, Zero);
Ec::add(R, R, Zero); Ec::add(R, R, Zero);
CYBOZU_TEST_EQUAL(Q, R); CYBOZU_TEST_EQUAL(Q, R);
mcl::ec::addCTProj(Q, Zero, Q); mcl::ec::addCTProj(Q, Zero, Q);
Ec::add(R, Zero, R); Ec::add(R, Zero, R);
CYBOZU_TEST_EQUAL(Q, R); CYBOZU_TEST_EQUAL(Q, R);
*/
mcl::ec::addCTProj(Q, Zero, Zero); mcl::ec::addCTProj(Q, Zero, Zero);
Ec::add(R, Zero, Zero); Ec::add(R, Zero, Zero);
CYBOZU_TEST_EQUAL(Q, R); CYBOZU_TEST_EQUAL(Q, R);

Loading…
Cancel
Save