@@ -431,6 +431,122 @@ template genBindings_EC_ShortW_NonAffine*(EC, EcAff, ScalarBig, ScalarField: unt
431
431
432
432
{.pop .}
433
433
434
+ template genBindings_EC_TwEdw_Affine * (EC, Field: untyped ) =
435
+ when appType == " lib" :
436
+ {.push noconv , dynlib , exportc , raises : [].} # No exceptions allowed
437
+ else :
438
+ {.push noconv , exportc , raises : [].} # No exceptions allowed
439
+
440
+ # --------------------------------------------------------------------------------------
441
+ func `ctt _ EC _ is_eq` (P, Q: EC ): SecretBool =
442
+ P == Q
443
+
444
+ func `ctt _ EC _ is_neutral` (P: EC ): SecretBool =
445
+ P.isNeutral ()
446
+
447
+ func `ctt _ EC _ set_neutral` (P: var EC ) =
448
+ P.setNeutral ()
449
+
450
+ func `ctt _ EC _ ccopy` (P: var EC , Q: EC , ctl: SecretBool ) =
451
+ P.ccopy (Q, ctl)
452
+
453
+ func `ctt _ EC _ is_on_curve` (x, y: Field ): SecretBool =
454
+ isOnCurve (x, y)
455
+
456
+ func `ctt _ EC _ neg` (P: var EC , Q: EC ) =
457
+ P.neg (Q)
458
+
459
+ func `ctt _ EC _ neg_in_place` (P: var EC ) =
460
+ P.neg ()
461
+
462
+ func `ctt _ EC _ cneg` (P: var EC , ctl: SecretBool ) =
463
+ P.cneg (ctl)
464
+
465
+ {.pop .}
466
+
467
+ template genBindings_EC_TwEdw_Projective * (EC, EcAff, ScalarBig, ScalarField: untyped ) =
468
+ when appType == " lib" :
469
+ {.push noconv , dynlib , exportc , raises : [].} # No exceptions allowed
470
+ else :
471
+ {.push noconv , exportc , raises : [].} # No exceptions allowed
472
+
473
+ # --------------------------------------------------------------------------------------
474
+ func `ctt _ EC _ is_eq` (P, Q: EC ): SecretBool =
475
+ P == Q
476
+
477
+ func `ctt _ EC _ is_neutral` (P: EC ): SecretBool =
478
+ P.isNeutral ()
479
+
480
+ func `ctt _ EC _ set_neutral` (P: var EC ) =
481
+ P.setNeutral ()
482
+
483
+ func `ctt _ EC _ ccopy` (P: var EC , Q: EC , ctl: SecretBool ) =
484
+ P.ccopy (Q, ctl)
485
+
486
+ func `ctt _ EC _ neg` (P: var EC , Q: EC ) =
487
+ P.neg (Q)
488
+
489
+ func `ctt _ EC _ neg_in_place` (P: var EC ) =
490
+ P.neg ()
491
+
492
+ func `ctt _ EC _ cneg` (P: var EC , ctl: SecretBool ) =
493
+ P.cneg (ctl)
494
+
495
+ func `ctt _ EC _ sum` (r: var EC , P, Q: EC ) =
496
+ r.sum (P, Q)
497
+
498
+ func `ctt _ EC _ double` (r: var EC , P: EC ) =
499
+ r.double (P)
500
+
501
+ func `ctt _ EC _ add_in_place` (P: var EC , Q: EC ) =
502
+ P += Q
503
+
504
+ func `ctt _ EC _ diff` (r: var EC , P, Q: EC ) =
505
+ r.diff (P,Q)
506
+
507
+ func `ctt _ EC _ diff_in_place` (P: var EC , Q: EC ) =
508
+ P -= Q
509
+
510
+ func `ctt _ EC _ mixed_diff_in_place` (P: var EC , Q: EcAff ) =
511
+ P -= Q
512
+
513
+ func `ctt _ EC _ affine` (dst: var EcAff , src: EC ) =
514
+ dst.affine (src)
515
+
516
+ func `ctt _ EC _ from_affine` (dst: var EC , src: EcAff ) =
517
+ dst.fromAffine (src)
518
+
519
+ func `ctt _ EC _ batch_affine` (dst: ptr UncheckedArray [EcAff ], src: ptr UncheckedArray [EC ], n: csize_t ) =
520
+ dst.batchAffine (src, cast [int ](n))
521
+
522
+ func `ctt _ EC _ scalar_mul_big_coef` (P: var EC , scalar: ScalarBig ) =
523
+ P.scalarMul (scalar)
524
+
525
+ func `ctt _ EC _ scalar_mul_fr_coef` (P: var EC , scalar: ScalarField ) =
526
+ P.scalarMul (scalar)
527
+
528
+ func `ctt _ EC _ scalar_mul_big_coef_vartime` (P: var EC , scalar: ScalarBig ) =
529
+ P.scalarMul_vartime (scalar)
530
+
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))
547
+
548
+ {.pop .}
549
+
434
550
template genBindings_EC_hash_to_curve * (EC: untyped , mapping, hash: untyped , k: static int ) =
435
551
when appType == " lib" :
436
552
{.push noconv , dynlib , exportc , raises : [].} # No exceptions allowed
0 commit comments