License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
P256 support
- data Scalar
- data Point
- pointAdd :: Point -> Point -> Point
- pointMul :: Scalar -> Point -> Point
- pointsMulVarTime :: Scalar -> Scalar -> Point -> Point
- pointIsValid :: Point -> Bool
- toPoint :: Scalar -> Point
- scalarZero :: Scalar
- scalarAdd :: Scalar -> Scalar -> Scalar
- scalarSub :: Scalar -> Scalar -> Scalar
- scalarInv :: Scalar -> Scalar
- scalarInvVarTime :: Scalar -> Scalar
- scalarCmp :: Scalar -> Scalar -> Ordering
- scalarFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Scalar
- scalarToBinary :: ByteArray ba => Scalar -> ba
Documentation
point arithmetic
pointsMulVarTime :: Scalar -> Scalar -> Point -> Point Source
multiply the point p with
n2 and add a lifted to curve value @n1
n1 * G + n2 * p
pointIsValid :: Point -> Bool Source
Check if a Point
is valid
toPoint :: Scalar -> Point Source
Lift to curve a scalar
Using the curve generator as base point compute:
scalar * G
scalar arithmetic
The scalar representing 0
scalarInvVarTime :: Scalar -> Scalar Source
similar to scalarInv
but instead of
trying to be constant time, do it as fast as possible
scalarFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Scalar Source
convert a scalar from binary
scalarToBinary :: ByteArray ba => Scalar -> ba Source
convert a scalar to binary