Example #1
0
File: ec.c Project: tfar/sccd
void sccd_ec_mul(sccd_ec_t result, const sccd_ec_t a, const uint8_t* k) {
#if defined(SCCD_BACKEND_C25519)
	ed25519_smult(result, a, k);
#elif defined(SCCD_BACKEND_RELIC)
	ec_mul_dig(result, a, *((dig_t*)k));
#endif
}
Example #2
0
int ge_double_scalarmult_vartime(ge_p2* R, const unsigned char *h,
                                 const ge_p3 *inA,const unsigned char *sig)
{
    ge_p3 p, A;
    int ret = 0;

    XMEMCPY(&A, inA, sizeof(ge_p3));

    /* find SB */
    ed25519_smult(&p, &ed25519_base, sig);

    /* find H(R,A,M) * -A */
    ed25519_smult(&A, &A, h);

    /* SB + -H(R,A,M)A */
    ed25519_add(&A, &p, &A);

    fe_copy(R->X, A.X);
    fe_copy(R->Y, A.Y);
    fe_copy(R->Z, A.Z);

    return ret;
}
Example #3
0
void ge_scalarmult_base(ge_p3 *R,const unsigned char *nonce)
{
    ed25519_smult(R, &ed25519_base, nonce);
}