hecc-0.1: src/test.hs
import Codec.Encryption.ECC.Base
import Examples
import System.CPUTime
main = do
{-let p = 6277101735386680763835789423207666416083908700390324961279::ECInt
a = 6277101735386680763835789423207666416083908700390324961276::ECInt
b = 2455155546008943817740293915197451784769108058161191238065::ECInt
c = EC (a,b,p)
x = 602046282375688656758213480587526111916698976636884684818::ECInt
y = 174050332293622031404857552280219410364023488927386650641::ECInt
alpha = EPa (x,y)
kprivA = 5114103500503308041454439524093827019673558354999860770782::ECInt
kprivB = 1748161650263518407976227277807126651450677841379957675747::ECInt
print [ (x,y)|x <-[1], y <- [(ecdh c alpha kprivA kprivB)]]
-}
let p = 115792089210356248762697446949407573530086143415290314195533631308867097853951
a = 115792089210356248762697446949407573530086143415290314195533631308867097853948
b = 41058363725152142129326129780047268409114441015993725554835256314039467401291
c = EC (a,b,p)
xp = 48439561293906451759052585252797914202762949526041747995844080717082404635286
yp = 36134250956749795798585127919587881956611106672985015071877198253568414405109
xq = 91120319633256209954638481795610364441930342474826146651283703640232629993874
yq = 80764272623998874743522585409326200078679332703816718187804498579075161456710
k' = 78260987815077071890976764339238653408132491773166348437934213365482899760747
--pt = pmul (EPa (xp,yp)) k' c
--pt = pmul (EPp (xp,yp,1)) k' c
--pt = pmul (EPmj (xp,yp,1,a)) k' c
prec = cpuTimePrecision
{-let p = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151
a = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057149
b = 1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984
c = EC (a,b,p)
xp = 2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846
yp = 3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784
k' = 1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984
prec = cpuTimePrecision
-}
t1 <- getCPUTime
print $ pmul (EPp (xp,yp,1)) k' c
t2 <- getCPUTime
putStrLn $ "Precision: " ++ (show (div prec (1000^2))) ++ " mikrosecs"
putStrLn $ "Time used: " ++ (show (div (t2 - t1) (1000^2))) ++ " mikrosecs"