-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Elliptic Curve Cryptography for Haskell -- -- Pure math & algorithms for Elliptic Curve Cryptography in Haskell @package hecc @version 0.1 -- | ECC Base algorithms & point formats module Codec.Encryption.ECC.Base -- | this may change in the future if the need arises type ECInt = Integer -- | class of all Elliptic Curve Points class ECP a inf :: (ECP a) => a getx :: (ECP a) => a -> EC -> ECInt gety :: (ECP a) => a -> EC -> ECInt pdouble :: (ECP a) => a -> EC -> a padd :: (ECP a) => a -> a -> EC -> a -- | class of all Elliptic Curves data EC EC :: (ECInt, ECInt, ECInt) -> EC -- | computing the modular inverse modinv :: ECInt -> ECInt -> ECInt -- | this is a generic handle for Point Multiplication. The implementation -- will likely change. pmul :: (ECP a) => a -> ECInt -> EC -> a -- | generic verify, if generic ECP is on EC via getx and gety ison :: (ECP a) => a -> EC -> Bool -- | Elliptic Point Affine coordinates data EPa EPa :: (ECInt, ECInt) -> EPa Infa :: EPa -- | Elliptic Point Projective coordinates data EPp EPp :: (ECInt, ECInt, ECInt) -> EPp Infp :: EPp -- | Elliptic Point Jacobian coordinates data EPj EPj :: (ECInt, ECInt, ECInt) -> EPj Infj :: EPj -- | Elliptic Point Modified Jacobian coordinates data EPmj EPmj :: (ECInt, ECInt, ECInt, ECInt) -> EPmj Infmj :: EPmj instance Eq EPmj instance Eq EPj instance Eq EPp instance Eq EPa instance Eq EC instance ECP EPmj instance Show EPmj instance ECP EPj instance Show EPj instance ECP EPp instance Show EPp instance ECP EPa instance Show EPa instance Show EC