Maintainer | Marcel Fourné (hecc@bitrot.dyndns.org) |
---|---|
Safe Haskell | None |
ECC Base algorithms & point formats
- data EC a where
- getBitLength :: EC a -> Int
- geta :: EC a -> a
- getb :: EC a -> a
- getp :: EC a -> a
- getr :: EC a -> a
- data ECPF a where
- ECPa :: (EC Integer, Integer, Integer) -> ECPF Integer
- ECPp :: (EC Integer, Integer, Integer, Integer) -> ECPF Integer
- ECPj :: (EC Integer, Integer, Integer, Integer) -> ECPF Integer
- ECPmj :: (EC Integer, Integer, Integer, Integer, Integer) -> ECPF Integer
- ECPaF2 :: (EC F2, F2, F2) -> ECPF F2
- ECPpF2 :: (EC F2, F2, F2, F2) -> ECPF F2
- ECPInfI :: EC Integer -> ECPF Integer
- ECPInfF2 :: EC F2 -> ECPF F2
- getCurve :: ECPF a -> EC a
- getx :: ECPF a -> a
- gety :: ECPF a -> a
- getz :: ECPF a -> a
- getaz4 :: ECPF a -> a
- getxA :: ECPF a -> a
- getyA :: ECPF a -> a
- padd :: ECPF a -> ECPF a -> ECPF a
- pdouble :: ECPF a -> ECPF a
- modinv :: Integral a => a -> a -> a
- pmul :: ECPF a -> Integer -> ECPF a
- ison :: ECPF a -> Bool
- binary :: Integer -> String
Documentation
all Elliptic Curves, the parameters being the BitLength L, A, B and P
getBitLength :: EC a -> IntSource
get bitlength
data of all Elliptic Curve Points
ECPa :: (EC Integer, Integer, Integer) -> ECPF Integer | |
ECPp :: (EC Integer, Integer, Integer, Integer) -> ECPF Integer | |
ECPj :: (EC Integer, Integer, Integer, Integer) -> ECPF Integer | |
ECPmj :: (EC Integer, Integer, Integer, Integer, Integer) -> ECPF Integer | |
ECPaF2 :: (EC F2, F2, F2) -> ECPF F2 | |
ECPpF2 :: (EC F2, F2, F2, F2) -> ECPF F2 | |
ECPInfI :: EC Integer -> ECPF Integer | |
ECPInfF2 :: EC F2 -> ECPF F2 |
:: Integral a | |
=> a | the number to invert |
-> a | the modulus |
-> a | the inverted value |
computing the modular inverse of a
mod
m