module Generate.Montgomery.Parameters
( curves
) where
import Protolude
import Generate.Montgomery.Types
curves :: [Curve]
curves =
[ curve448
, curve25519
, curve383187
, m221
, m383
, m511
]
curve448 :: Curve
curve448 = Curve
{ types = Types
{ curve = "Curve448"
, field = PrimeField "Fq" 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, field' = PrimeField "Fr" 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x262a6
, b = PF 0x1
, h = 0x4
, q = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, r = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3
, x = PF 0x5
, y = PF 0x7d235d1295f5b1f66c98ab6e58326fcecbae5d34f55545d060f75dc28df3f6edb8027e2346430d211312c4b150677af76fd7223d457b5b1a
}
}
curve25519 :: Curve
curve25519 = Curve
{ types = Types
{ curve = "Curve25519"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
, field' = PrimeField "Fr" 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x76d06
, b = PF 0x1
, h = 0x8
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
, r = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
, x = PF 0x9
, y = PF 0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9
}
}
curve383187 :: Curve
curve383187 = Curve
{ types = Types
{ curve = "Curve383187"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, field' = PrimeField "Fr" 0x1000000000000000000000000000000000000000000000000e85a85287a1488acd41ae84b2b7030446f72088b00a0e21
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x38251
, b = PF 0x1
, h = 0x8
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, r = 0x1000000000000000000000000000000000000000000000000e85a85287a1488acd41ae84b2b7030446f72088b00a0e21
, x = PF 0x5
, y = PF 0x1eebe07dc1871896732b12d5504a32370471965c7a11f2c89865f855ab3cbd7c224e3620c31af3370788457dd5ce46df
}
}
m221 :: Curve
m221 = Curve
{ types = Types
{ curve = "M221"
, field = PrimeField "Fq" 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffd
, field' = PrimeField "Fr" 0x40000000000000000000000000015a08ed730e8a2f77f005042605b
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1c93a
, b = PF 0x1
, h = 0x8
, q = 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffd
, r = 0x40000000000000000000000000015a08ed730e8a2f77f005042605b
, x = PF 0x4
, y = PF 0xf7acdd2a4939571d1cef14eca37c228e61dbff10707dc6c08c5056d
}
}
m383 :: Curve
m383 = Curve
{ types = Types
{ curve = "M383"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, field' = PrimeField "Fr" 0x10000000000000000000000000000000000000000000000006c79673ac36ba6e7a32576f7b1b249e46bbc225be9071d7
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1f82fe
, b = PF 0x1
, h = 0x8
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, r = 0x10000000000000000000000000000000000000000000000006c79673ac36ba6e7a32576f7b1b249e46bbc225be9071d7
, x = PF 0xc
, y = PF 0x1ec7ed04aaf834af310e304b2da0f328e7c165f0e8988abd3992861290f617aa1f1b2e7d0b6e332e969991b62555e77e
}
}
m511 :: Curve
m511 = Curve
{ types = Types
{ curve = "M511"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, field' = PrimeField "Fr" 0x100000000000000000000000000000000000000000000000000000000000000017b5feff30c7f5677ab2aeebd13779a2ac125042a6aa10bfa54c15bab76baf1b
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x81806
, b = PF 0x1
, h = 0x8
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45
, r = 0x100000000000000000000000000000000000000000000000000000000000000017b5feff30c7f5677ab2aeebd13779a2ac125042a6aa10bfa54c15bab76baf1b
, x = PF 0x5
, y = PF 0x2fbdc0ad8530803d28fdbad354bb488d32399ac1cf8f6e01ee3f96389b90c809422b9429e8a43dbf49308ac4455940abe9f1dbca542093a895e30a64af056fa5
}
}