aboutsummaryrefslogtreecommitdiff
path: root/test/ec/curves.py
blob: d36e7024452cf7d1301e529e71dda1bcde5ef3d0 (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
from pyecsca.ec.curve import EllipticCurve
from pyecsca.ec.mod import Mod
from pyecsca.ec.model import ShortWeierstrassModel, MontgomeryModel
from pyecsca.ec.point import InfinityPoint, Point


def get_secp128r1():
    prime = 0xfffffffdffffffffffffffffffffffff
    model = ShortWeierstrassModel()
    coords = ShortWeierstrassModel().coordinates["projective"]
    return (EllipticCurve(model, coords, prime, dict(a=0xfffffffdfffffffffffffffffffffffc,
                                                     b=0xe87579c11079f43dd824993c2cee5ed3),
                          InfinityPoint(coords)),
            Point(coords, X=Mod(0x161ff7528b899b2d0c28607ca52c5b86, prime),
                  Y=Mod(0xcf5ac8395bafeb13c02da292dded7a83, prime),
                  Z=Mod(1, prime)))


def get_curve25519():
    prime = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
    model = MontgomeryModel()
    coords = model.coordinates["xz"]
    return (EllipticCurve(model, coords, prime,
                          dict(a=486662, b=1),
                          InfinityPoint(coords)),
            Point(coords, X=Mod(9, prime), Z=Mod(1, prime)))