Copyright | (c) Marcel Fourné 20[09..13] |
---|---|
License | BSD3 |
Maintainer | Marcel Fourné (mail@marcelfourne.de) |
Stability | experimental |
Portability | Good |
Safe Haskell | None |
Language | Haskell98 |
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
Documentation
all Elliptic Curves, the parameters being the BitLength L, A, B and P
getBitLength :: EC a -> Int Source
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