-----------------------------------------------------------------------------
-- |
-- Module      :  Codec.Encryption.ECC.StandardCurves
-- Copyright   :  (c) Marcel Fourné 2009
-- License     :  BSD3
-- Maintainer  :  Marcel Fourné (hecc@bitrot.dyndns.org
--
-- ECC Standard Curves, taken from Standard Documents found somewhere(tm)
--
-----------------------------------------------------------------------------


module Codec.Encryption.ECC.StandardCurves
    where

data StandardCurve = StandardCurve {stdc_p::Integer,stdc_a::Integer,stdc_b::Integer,stdc_xp::Integer,stdc_yp::Integer}

-- Curves over Prime Fields, NIST variety

p521:: StandardCurve
p521 = StandardCurve {
         stdc_p = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151,
         stdc_a = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057149,
         stdc_b = 1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984,
         stdc_xp = 2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846,
         stdc_yp = 3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784
       }

p256:: StandardCurve
p256 = StandardCurve {
         stdc_p = 115792089210356248762697446949407573530086143415290314195533631308867097853951,
         stdc_a = 115792089210356248762697446949407573530086143415290314195533631308867097853948,
         stdc_b = 41058363725152142129326129780047268409114441015993725554835256314039467401291,
         stdc_xp = 48439561293906451759052585252797914202762949526041747995844080717082404635286,
         stdc_yp = 36134250956749795798585127919587881956611106672985015071877198253568414405109
       }