1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
{%- if isinstance(scalarmult, LTRMultiplier) -%}
{% include "mult_ltr.c" %}
{%- elif isinstance(scalarmult, RTLMultiplier) -%}
{% include "mult_rtl.c" %}
{%- elif isinstance(scalarmult, CoronMultiplier) -%}
{% include "mult_coron.c" %}
{%- elif isinstance(scalarmult, LadderMultiplier) -%}
{% include "mult_ldr.c" %}
{%- elif isinstance(scalarmult, SimpleLadderMultiplier) -%}
{% include "mult_simple_ldr.c" %}
{%- elif isinstance(scalarmult, DifferentialLadderMultiplier) -%}
{% include "mult_diff_ldr.c" %}
{%- elif isinstance(scalarmult, BinaryNAFMultiplier) -%}
{% include "mult_bnaf.c" %}
{%- elif isinstance(scalarmult, WindowNAFMultiplier) -%}
{% include "mult_wnaf.c" %}
{%- elif isinstance(scalarmult, WindowBoothMultiplier) -%}
{% include "mult_booth.c" %}
{%- elif isinstance(scalarmult, SlidingWindowMultiplier) -%}
{% include "mult_sliding_w.c" %}
{%- elif isinstance(scalarmult, FixedWindowLTRMultiplier) -%}
{% include "mult_fixed_w.c" %}
{%- elif isinstance(scalarmult, FullPrecompMultiplier) -%}
{% include "mult_precomp.c" %}
{%- elif isinstance(scalarmult, BGMWMultiplier) -%}
{% include "mult_bgmw.c" %}
{%- elif isinstance(scalarmult, CombMultiplier) -%}
{% include "mult_comb.c" %}
{%- endif %}
#include "formulas.h"
#include "action.h"
{% from "action.c" import start_action, end_action %}
void scalar_mult(bn_t *scalar, point_t *point, curve_t *curve, point_t *out) {
{{ start_action("mult") }}
formulas_zero();
scalar_mult_inner(scalar, point, curve, out);
{{ end_action("mult") }}
}
|