コード例 #1
0
ファイル: fp2e.c プロジェクト: agl/dclxvi
// Multiply by xi=i+3 which is used to construct F_p^6
// (a*i + b)*(i + 3) = (3*b - 1*a) + (3*a + b)*i
void fp2e_mulxi_c(fp2e_t rop, const fp2e_t op)
{
  fpe_t a, b, t1, t2, t3, t4, t5;
  fp2e_to_2fpe(a, b, op);
  int i;
  for (i = 0; i < 12; i++) {
    t1->v[i] = 3 * a->v[i];	// t1 = 3*a
    t2->v[i] = 3 * b->v[i];	// t2 = 3*b
    t3->v[i] = 1 * a->v[i];	// t3 = 1*a
  }
  fpe_add(t4, t1, b);		// t4 = 3*a + b
  fpe_sub(t5, t2, t3);		// t5 = 3*b - 1*a
  _2fpe_to_fp2e(rop, t4, t5);
}
コード例 #2
0
ファイル: fpe.c プロジェクト: asimshankar/bn256
int fpe_iseq(const fpe_t op1, const fpe_t op2)
{
  fpe_t t;
  fpe_sub(t, op1, op2);
  return fpe_iszero(t);
}