module Generate.Edwards.Parameters
( curves
) where
import Protolude
import Generate.Edwards.Types
curves :: [Curve]
curves =
[ curve1174
, curve41417
, e222
, e382
, e521
, ed448
, ed3363
, ed25519
, jubjub
]
curve1174 :: Curve
curve1174 = Curve
{ types = Types
{ curve = "Curve1174"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
, field' = PrimeField "Fr" 0x1fffffffffffffffffffffffffffffff77965c4dfd307348944d45fd166c971
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb61
, h = 0x4
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7
, r = 0x1fffffffffffffffffffffffffffffff77965c4dfd307348944d45fd166c971
, x = PF 0x37fbb0cea308c479343aee7c029a190c021d96a492ecd6516123f27bce29eda
, y = PF 0x6b72f82d47fb7cc6656841169840e0c4fe2dee2af3f976ba4ccb1bf9b46360e
}
}
curve41417 :: Curve
curve41417 = Curve
{ types = Types
{ curve = "Curve41417"
, field = PrimeField "Fq" 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef
, field' = PrimeField "Fr" 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffeb3cc92414cf706022b36f1c0338ad63cf181b0e71a5e106af79
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0xe21
, h = 0x8
, q = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef
, r = 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffeb3cc92414cf706022b36f1c0338ad63cf181b0e71a5e106af79
, x = PF 0x1a334905141443300218c0631c326e5fcd46369f44c03ec7f57ff35498a4ab4d6d6ba111301a73faa8537c64c4fd3812f3cbc595
, y = PF 0x22
}
}
e222 :: Curve
e222 = Curve
{ types = Types
{ curve = "E222"
, field = PrimeField "Fq" 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffff8b
, field' = PrimeField "Fr" 0xffffffffffffffffffffffffffff70cbc95e932f802f31423598cbf
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0x27166
, h = 0x4
, q = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffff8b
, r = 0xffffffffffffffffffffffffffff70cbc95e932f802f31423598cbf
, x = PF 0x19b12bb156a389e55c9768c303316d07c23adab3736eb2bc3eb54e51
, y = PF 0x1c
}
}
e382 :: Curve
e382 = Curve
{ types = Types
{ curve = "E382"
, field = PrimeField "Fq" 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97
, field' = PrimeField "Fr" 0xfffffffffffffffffffffffffffffffffffffffffffffffd5fb21f21e95eee17c5e69281b102d2773e27e13fd3c9719
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef8e1
, h = 0x4
, q = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97
, r = 0xfffffffffffffffffffffffffffffffffffffffffffffffd5fb21f21e95eee17c5e69281b102d2773e27e13fd3c9719
, x = PF 0x196f8dd0eab20391e5f05be96e8d20ae68f840032b0b64352923bab85364841193517dbce8105398ebc0cc9470f79603
, y = PF 0x11
}
}
e521 :: Curve
e521 = Curve
{ types = Types
{ curve = "E521"
, field = PrimeField "Fq" 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, field' = PrimeField "Fr" 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd15b6c64746fc85f736b8af5e7ec53f04fbd8c4569a8f1f4540ea2435f5180d6b
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4331
, h = 0x4
, q = 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, r = 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd15b6c64746fc85f736b8af5e7ec53f04fbd8c4569a8f1f4540ea2435f5180d6b
, x = PF 0x752cb45c48648b189df90cb2296b2878a3bfd9f42fc6c818ec8bf3c9c0c6203913f6ecc5ccc72434b1ae949d568fc99c6059d0fb13364838aa302a940a2f19ba6c
, y = PF 0xc
}
}
ed448 :: Curve
ed448 = Curve
{ types = Types
{ curve = "Ed448"
, field = PrimeField "Fq" 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, field' = PrimeField "Fr" 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756
, h = 0x4
, q = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff
, r = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3
, x = PF 0x297ea0ea2692ff1b4faff46098453a6a26adf733245f065c3c59d0709cecfa96147eaaf3932d94c63d96c170033f4ba0c7f0de840aed939f
, y = PF 0x13
}
}
ed3363 :: Curve
ed3363 = Curve
{ types = Types
{ curve = "Ed3363"
, field = PrimeField "Fq" 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
, field' = PrimeField "Fr" 0x200000000000000000000000000000000000000000071415fa9850c0bd6b87f93baa7b2f95973e9fa805
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x1
, d = PF 0x2b67
, h = 0x8
, q = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
, r = 0x200000000000000000000000000000000000000000071415fa9850c0bd6b87f93baa7b2f95973e9fa805
, x = PF 0xc
, y = PF 0xc0dc616b56502e18e1c161d007853d1b14b46c3811c7ef435b6db5d5650ca0365db12bec68505fe8632
}
}
ed25519 :: Curve
ed25519 = Curve
{ types = Types
{ curve = "Ed25519"
, field = PrimeField "Fq" 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
, field' = PrimeField "Fr" 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec
, d = PF 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3
, h = 0x8
, q = 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed
, r = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed
, x = PF 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a
, y = PF 0x6666666666666666666666666666666666666666666666666666666666666658
}
}
jubjub :: Curve
jubjub = Curve
{ types = Types
{ curve = "JubJub"
, field = PrimeField "Fq" 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
, field' = PrimeField "Fr" 0xe7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7
, imports = Nothing
}
, parameters = Parameters
{ a = PF 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000
, d = PF 0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1
, h = 0x8
, q = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
, r = 0xe7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7
, x = PF 0x5183972af8eff38ca624b4df00384882000c546bf2f39ede7f4ecf1a74f976c4
, y = PF 0x3b43f8472ca2fc2c9e8fcc5abd9dc308096c8707ffa6833b146bad709349702e
}
}