Skip to content

Commit b283079

Browse files
committed
more exports for banderwagon scalar mul
1 parent 2003342 commit b283079

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

bindings/c_curve_decls.nim

+21-5
Original file line numberDiff line numberDiff line change
@@ -519,15 +519,31 @@ template genBindings_EC_TwEdw_Projective*(EC, EcAff, ScalarBig, ScalarField: unt
519519
func `ctt _ EC _ batch_affine`(dst: ptr UncheckedArray[EcAff], src: ptr UncheckedArray[EC], n: csize_t) =
520520
dst.batchAffine(src, cast[int](n))
521521

522-
func `ctt _ EC _ scalar_mul_big_coef`(
523-
P: var EC, scalar: ScalarBig) =
522+
func `ctt _ EC _ scalar_mul_big_coef`(P: var EC, scalar: ScalarBig) =
523+
P.scalarMul(scalar)
524524

525+
func `ctt _ EC _ scalar_mul_fr_coef`(P: var EC, scalar: ScalarField) =
525526
P.scalarMul(scalar)
526527

527-
func `ctt _ EC _ scalar_mul_fr_coef`(
528-
P: var EC, scalar: ScalarField) =
528+
func `ctt _ EC _ scalar_mul_big_coef_vartime`(P: var EC, scalar: ScalarBig) =
529+
P.scalarMul_vartime(scalar)
529530

530-
P.scalarMul(scalar)
531+
func `ctt _ EC _ scalar_mul_fr_coef_vartime`(P: var EC, scalar: ScalarField) =
532+
P.scalarMul_vartime(scalar)
533+
534+
func `ctt _ EC _ multi_scalar_mul_big_coefs_vartime`(
535+
r: var EC,
536+
coefs: ptr UncheckedArray[ScalarBig],
537+
points: ptr UncheckedArray[EcAff],
538+
len: csize_t) =
539+
r.multiScalarMul_vartime(coefs, points, cast[int](len))
540+
541+
func `ctt _ EC _ multi_scalar_mul_fr_coefs_vartime`(
542+
r: var EC,
543+
coefs: ptr UncheckedArray[ScalarField],
544+
points: ptr UncheckedArray[EcAff],
545+
len: csize_t)=
546+
r.multiScalarMul_vartime(coefs, points, cast[int](len))
531547

532548
{.pop.}
533549

constantine/lowlevel_elliptic_curves.nim

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ export ec_twistededwards.`-=`
114114
export ec_twistededwards.affine
115115
export ec_twistededwards.projective
116116
export ec_twistededwards.fromAffine
117+
export ec_twistededwards.batchAffine
117118
export ec_twistededwards.sum_vartime
118119
export ec_twistededwards.mixedSum_vartime
119120
export ec_twistededwards.diff_vartime

include/constantine/curves/banderwagon.h

+7
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,13 @@ void ctt_banderwagon_ec_prj_diff_in_place(banderwagon_ec_prj* P, const banderwag
118118
void ctt_banderwagon_ec_prj_mixed_diff_in_place(banderwagon_ec_prj* P, const banderwagon_ec_aff* Q);
119119
void ctt_banderwagon_ec_prj_affine(banderwagon_ec_aff* dst, const banderwagon_ec_prj* src);
120120
void ctt_banderwagon_ec_prj_from_affine(banderwagon_ec_prj* dst, const banderwagon_ec_aff* src);
121+
void ctt_banderwagon_ec_prj_batch_affine(const banderwagon_ec_aff dst[], const banderwagon_ec_prj src[], size_t n);
122+
void ctt_banderwagon_ec_prj_scalar_mul_big_coef(banderwagon_ec_prj* P, const big253* scalar);
123+
void ctt_banderwagon_ec_prj_scalar_mul_fr_coef(banderwagon_ec_prj* P, const banderwagon_fr* scalar);
124+
void ctt_banderwagon_ec_prj_scalar_mul_big_coef_vartime(banderwagon_ec_prj* P, const big253* scalar);
125+
void ctt_banderwagon_ec_prj_scalar_mul_fr_coef_vartime(banderwagon_ec_prj* P, const banderwagon_fr* scalar);
126+
void ctt_banderwagon_ec_prj_multi_scalar_mul_big_coefs_vartime(banderwagon_ec_prj* r, const big253 coefs[], const banderwagon_ec_aff points[], size_t len);
127+
void ctt_banderwagon_ec_prj_multi_scalar_mul_fr_coefs_vartime(banderwagon_ec_prj* r, const banderwagon_fr coefs[], const banderwagon_ec_aff points[], size_t len);
121128

122129
#ifdef __cplusplus
123130
}

0 commit comments

Comments
 (0)