|
@@ -86,48 +86,34 @@ TwistBipoint TwistBipoint::operator*(const Scalar& exp) const
|
|
|
|
|
|
bool CurveBipoint::operator==(const CurveBipoint& b) const
|
|
|
{
|
|
|
- curvepoint_fp_t affine_point0, affine_point1, affine_b0, affine_b1;
|
|
|
-
|
|
|
- curvepoint_fp_set(affine_point0, point[0]);
|
|
|
- curvepoint_fp_set(affine_point1, point[1]);
|
|
|
- curvepoint_fp_set(affine_b0, b[0]);
|
|
|
- curvepoint_fp_set(affine_b1, b[1]);
|
|
|
-
|
|
|
- curvepoint_fp_makeaffine(affine_point0);
|
|
|
- curvepoint_fp_makeaffine(affine_point1);
|
|
|
- curvepoint_fp_makeaffine(affine_b0);
|
|
|
- curvepoint_fp_makeaffine(affine_b1);
|
|
|
+ CurveBipoint affine_this = *this;
|
|
|
+ CurveBipoint affine_b = b;
|
|
|
+ affine_this.make_affine();
|
|
|
+ affine_b.make_affine();
|
|
|
|
|
|
bool retval;
|
|
|
|
|
|
- retval = fpe_iseq(affine_point0->m_x, affine_b0->m_x);
|
|
|
- retval = retval && fpe_iseq(affine_point0->m_y, affine_b0->m_y);
|
|
|
- retval = retval && fpe_iseq(affine_point1->m_x, affine_b1->m_x);
|
|
|
- retval = retval && fpe_iseq(affine_point1->m_y, affine_b1->m_y);
|
|
|
+ retval = fpe_iseq(affine_this[0]->m_x, affine_b[0]->m_x);
|
|
|
+ retval = retval && fpe_iseq(affine_this[0]->m_y, affine_b[0]->m_y);
|
|
|
+ retval = retval && fpe_iseq(affine_this[1]->m_x, affine_b[1]->m_x);
|
|
|
+ retval = retval && fpe_iseq(affine_this[1]->m_y, affine_b[1]->m_y);
|
|
|
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
bool TwistBipoint::operator==(const TwistBipoint& b) const
|
|
|
{
|
|
|
- twistpoint_fp2_t affine_point0, affine_point1, affine_b0, affine_b1;
|
|
|
-
|
|
|
- twistpoint_fp2_set(affine_point0, point[0]);
|
|
|
- twistpoint_fp2_set(affine_point1, point[1]);
|
|
|
- twistpoint_fp2_set(affine_b0, b[0]);
|
|
|
- twistpoint_fp2_set(affine_b1, b[1]);
|
|
|
-
|
|
|
- twistpoint_fp2_makeaffine(affine_point0);
|
|
|
- twistpoint_fp2_makeaffine(affine_point1);
|
|
|
- twistpoint_fp2_makeaffine(affine_b0);
|
|
|
- twistpoint_fp2_makeaffine(affine_b1);
|
|
|
+ TwistBipoint affine_this = *this;
|
|
|
+ TwistBipoint affine_b = b;
|
|
|
+ affine_this.make_affine();
|
|
|
+ affine_b.make_affine();
|
|
|
|
|
|
bool retval;
|
|
|
|
|
|
- retval = fp2e_iseq(affine_point0->m_x, affine_b0->m_x);
|
|
|
- retval = retval && fp2e_iseq(affine_point0->m_y, affine_b0->m_y);
|
|
|
- retval = retval && fp2e_iseq(affine_point1->m_x, affine_b1->m_x);
|
|
|
- retval = retval && fp2e_iseq(affine_point1->m_y, affine_b1->m_y);
|
|
|
+ retval = fp2e_iseq(affine_this[0]->m_x, affine_b[0]->m_x);
|
|
|
+ retval = retval && fp2e_iseq(affine_this[0]->m_y, affine_b[0]->m_y);
|
|
|
+ retval = retval && fp2e_iseq(affine_this[1]->m_x, affine_b[1]->m_x);
|
|
|
+ retval = retval && fp2e_iseq(affine_this[1]->m_y, affine_b[1]->m_y);
|
|
|
|
|
|
return retval;
|
|
|
}
|
|
@@ -164,15 +150,15 @@ TwistBipoint TwistBipoint::mult_by_2() const
|
|
|
|
|
|
void CurveBipoint::make_affine()
|
|
|
{
|
|
|
- if (!(fpe_isone(point[0]->m_z)))
|
|
|
+ if (!(fpe_isone(point[0]->m_z) || fpe_iszero(point[0]->m_z)))
|
|
|
curvepoint_fp_makeaffine(point[0]);
|
|
|
- if (!(fpe_isone(point[1]->m_z)))
|
|
|
+ if (!(fpe_isone(point[1]->m_z) || fpe_iszero(point[0]->m_z)))
|
|
|
curvepoint_fp_makeaffine(point[1]);
|
|
|
}
|
|
|
|
|
|
void TwistBipoint::make_affine()
|
|
|
{
|
|
|
- if (!(fp2e_isone(point[0]->m_z)))
|
|
|
+ if (!(fp2e_isone(point[0]->m_z) || ))
|
|
|
twistpoint_fp2_makeaffine(point[0]);
|
|
|
if (!(fp2e_isone(point[1]->m_z)))
|
|
|
twistpoint_fp2_makeaffine(point[1]);
|