License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
P256 support
- data Scalar
- data Point
- pointBase :: Point
- pointAdd :: Point -> Point -> Point
- pointMul :: Scalar -> Point -> Point
- pointsMulVarTime :: Scalar -> Scalar -> Point -> Point
- pointIsValid :: Point -> Bool
- toPoint :: Scalar -> Point
- pointToIntegers :: Point -> (Integer, Integer)
- pointFromIntegers :: (Integer, Integer) -> Point
- pointToBinary :: ByteArray ba => Point -> ba
- pointFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Point
- scalarGenerate :: MonadRandom randomly => randomly Scalar
- scalarZero :: Scalar
- scalarIsZero :: Scalar -> Bool
- scalarAdd :: Scalar -> Scalar -> Scalar
- scalarSub :: Scalar -> Scalar -> Scalar
- scalarInv :: Scalar -> Scalar
- scalarCmp :: Scalar -> Scalar -> Ordering
- scalarFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Scalar
- scalarToBinary :: ByteArray ba => Scalar -> ba
- scalarFromInteger :: Integer -> CryptoFailable Scalar
- scalarToInteger :: Scalar -> Integer
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
warning: variable time
toPoint :: Scalar -> Point Source #
Lift to curve a scalar
Using the curve generator as base point compute:
scalar * G
pointToBinary :: ByteArray ba => Point -> ba Source #
Convert a point to a binary representation
pointFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Point Source #
Convert from binary to a point
scalar arithmetic
scalarGenerate :: MonadRandom randomly => randomly Scalar Source #
Generate a randomly generated new scalar
scalarZero :: Scalar Source #
The scalar representing 0
scalarIsZero :: Scalar -> Bool Source #
Check if the scalar is 0
scalarFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Scalar Source #
convert a scalar from binary
scalarToBinary :: ByteArray ba => Scalar -> ba Source #
convert a scalar to binary
scalarFromInteger :: Integer -> CryptoFailable Scalar Source #
Convert from an Integer to a P256 Scalar
scalarToInteger :: Scalar -> Integer Source #
Convert from a P256 Scalar to an Integer