aboutsummaryrefslogtreecommitdiff
path: root/test/ec/test_transformations.py
blob: 5d8a84b3f8ed9b9a3ca9e8f03dd69e4d05918f3c (plain)
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
import pytest

from pyecsca.ec.params import get_params
from pyecsca.ec.transformations import M2SW, M2TE, M2E, TE2M, TE2E, TE2SW, SW2M, SW2TE, SW2E


def test_montgomery():
    curve25519 = get_params("other", "Curve25519", "affine")
    sw = M2SW(curve25519)
    assert sw is not None
    assert sw.curve.is_on_curve(sw.generator)
    assert sw.curve.is_neutral(sw.curve.neutral)
    te = M2TE(curve25519)
    assert te is not None
    assert te.curve.is_on_curve(te.generator)
    assert te.curve.is_neutral(te.curve.neutral)
    e = M2E(curve25519)
    assert e is not None
    assert e.curve.is_on_curve(e.generator)
    assert e.curve.is_neutral(e.curve.neutral)


def test_twistededwards():
    ed25519 = get_params("other", "Ed25519", "affine")
    m = TE2M(ed25519)
    assert m is not None
    assert m.curve.is_on_curve(m.generator)
    assert m.curve.is_neutral(m.curve.neutral)
    e = TE2E(ed25519)
    assert e is not None
    assert e.curve.is_on_curve(e.generator)
    assert e.curve.is_neutral(e.curve.neutral)
    sw = TE2SW(ed25519)
    assert sw is not None
    assert sw.curve.is_on_curve(sw.generator)
    assert sw.curve.is_neutral(sw.curve.neutral)


def test_shortweierstrass():
    secp128r2 = get_params("secg", "secp128r2", "affine")
    m = SW2M(secp128r2)
    assert m is not None
    assert m.curve.is_on_curve(m.generator)
    assert m.curve.is_neutral(m.curve.neutral)
    te = SW2TE(secp128r2)
    assert te is not None
    assert te.curve.is_on_curve(te.generator)
    assert te.curve.is_neutral(te.curve.neutral)
    with pytest.raises(ValueError):
        SW2E(secp128r2)