aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/conftest.py
blob: 80faf7108ae5f0fb4307690f631ef1f268fa996e (plain) (blame)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import pytest

from pyecsca.ec.mult import *
from pyecsca.ec.params import get_params, DomainParameters


@pytest.fixture(scope="session")
def secp128r1() -> DomainParameters:
    return get_params("secg", "secp128r1", "projective")


@pytest.fixture(scope="session")
def curve25519() -> DomainParameters:
    return get_params("other", "Curve25519", "xz")


# fmt: off
window_mults = [
    (SlidingWindowMultiplier, dict(width=2, recoding_direction=ProcessingDirection.LTR)),
    (SlidingWindowMultiplier, dict(width=3, recoding_direction=ProcessingDirection.LTR)),
    (SlidingWindowMultiplier, dict(width=4, recoding_direction=ProcessingDirection.LTR)),
    (SlidingWindowMultiplier, dict(width=5, recoding_direction=ProcessingDirection.LTR)),
    (SlidingWindowMultiplier, dict(width=6, recoding_direction=ProcessingDirection.LTR)),
    (SlidingWindowMultiplier, dict(width=2, recoding_direction=ProcessingDirection.RTL)),
    (SlidingWindowMultiplier, dict(width=3, recoding_direction=ProcessingDirection.RTL)),
    (SlidingWindowMultiplier, dict(width=4, recoding_direction=ProcessingDirection.RTL)),
    (SlidingWindowMultiplier, dict(width=5, recoding_direction=ProcessingDirection.RTL)),
    (SlidingWindowMultiplier, dict(width=6, recoding_direction=ProcessingDirection.RTL)),
    (FixedWindowLTRMultiplier, dict(m=2**1)),
    (FixedWindowLTRMultiplier, dict(m=2**2)),
    (FixedWindowLTRMultiplier, dict(m=2**3)),
    (FixedWindowLTRMultiplier, dict(m=2**4)),
    (FixedWindowLTRMultiplier, dict(m=2**5)),
    (FixedWindowLTRMultiplier, dict(m=2**6)),
    (WindowBoothMultiplier, dict(width=2)),
    (WindowBoothMultiplier, dict(width=3)),
    (WindowBoothMultiplier, dict(width=4)),
    (WindowBoothMultiplier, dict(width=5)),
    (WindowBoothMultiplier, dict(width=6))
]
naf_mults = [
    (WindowNAFMultiplier, dict(width=2)),
    (WindowNAFMultiplier, dict(width=3)),
    (WindowNAFMultiplier, dict(width=4)),
    (WindowNAFMultiplier, dict(width=5)),
    (WindowNAFMultiplier, dict(width=6)),
    (BinaryNAFMultiplier, dict(always=False, direction=ProcessingDirection.LTR)),
    (BinaryNAFMultiplier, dict(always=False, direction=ProcessingDirection.RTL)),
    (BinaryNAFMultiplier, dict(always=True, direction=ProcessingDirection.LTR)),
    (BinaryNAFMultiplier, dict(always=True, direction=ProcessingDirection.RTL)),
    (BinaryNAFMultiplier, dict(complete=False, always=False, direction=ProcessingDirection.LTR)),
    (BinaryNAFMultiplier, dict(complete=False, always=False, direction=ProcessingDirection.RTL)),
    (BinaryNAFMultiplier, dict(complete=False, always=True, direction=ProcessingDirection.LTR)),
    (BinaryNAFMultiplier, dict(complete=False, always=True, direction=ProcessingDirection.RTL))
]
comb_mults = [
    (CombMultiplier, dict(width=2, always=True)),
    (CombMultiplier, dict(width=3, always=True)),
    (CombMultiplier, dict(width=4, always=True)),
    (CombMultiplier, dict(width=5, always=True)),
    (CombMultiplier, dict(width=6, always=True)),
    (CombMultiplier, dict(width=2, always=False)),
    (CombMultiplier, dict(width=3, always=False)),
    (CombMultiplier, dict(width=4, always=False)),
    (CombMultiplier, dict(width=5, always=False)),
    (CombMultiplier, dict(width=6, always=False)),
    (BGMWMultiplier, dict(width=2, direction=ProcessingDirection.LTR)),
    (BGMWMultiplier, dict(width=3, direction=ProcessingDirection.LTR)),
    (BGMWMultiplier, dict(width=4, direction=ProcessingDirection.LTR)),
    (BGMWMultiplier, dict(width=5, direction=ProcessingDirection.LTR)),
    (BGMWMultiplier, dict(width=6, direction=ProcessingDirection.LTR)),
    (BGMWMultiplier, dict(width=2, direction=ProcessingDirection.RTL)),
    (BGMWMultiplier, dict(width=3, direction=ProcessingDirection.RTL)),
    (BGMWMultiplier, dict(width=4, direction=ProcessingDirection.RTL)),
    (BGMWMultiplier, dict(width=5, direction=ProcessingDirection.RTL)),
    (BGMWMultiplier, dict(width=6, direction=ProcessingDirection.RTL))
]
binary_mults = [
    (LTRMultiplier, dict(always=False, complete=True)),
    (LTRMultiplier, dict(always=True,  complete=True)),
    (LTRMultiplier, dict(always=False, complete=False)),
    (LTRMultiplier, dict(always=True,  complete=False)),
    (RTLMultiplier, dict(always=False, complete=True)),
    (RTLMultiplier, dict(always=True,  complete=True)),
    (RTLMultiplier, dict(always=False, complete=False)),
    (RTLMultiplier, dict(always=True,  complete=False)),
    (CoronMultiplier, dict())
]
other_mults = [
    (FullPrecompMultiplier, dict(always=False, complete=True)),
    (FullPrecompMultiplier, dict(always=True,  complete=True)),
    (FullPrecompMultiplier, dict(always=False, complete=False)),
    (FullPrecompMultiplier, dict(always=True,  complete=False)),
    (SimpleLadderMultiplier, dict(complete=True)),
    (SimpleLadderMultiplier, dict(complete=False))
]
# fmt: on


@pytest.fixture(
    scope="session",
    params=window_mults + naf_mults + comb_mults + binary_mults + other_mults,
    ids=lambda p: "{}-{}".format(
        p[0].__name__, ":".join(f"{k}={v}" for k, v in p[1].items())
    ),
)
def simple_multiplier(request):
    return request.param