cryptonite-0.15: Cryptography Primitives sink

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Crypto.PubKey.ECC.P256

Contents

Description

P256 support

Synopsis

Documentation

data Scalar

A P256 scalar

data Point

A P256 point

Instances

point arithmetic

pointBase :: Point

Get the base point for the P256 Curve

pointAdd :: Point -> Point -> Point

Add a point to another point

pointMul :: Scalar -> Point -> Point

Multiply a point by a scalar

warning: variable time

pointsMulVarTime :: Scalar -> Scalar -> Point -> Point

multiply the point p with n2 and add a lifted to curve value @n1

n1 * G + n2 * p

warning: variable time

pointIsValid :: Point -> Bool

Check if a Point is valid

toPoint :: Scalar -> Point

Lift to curve a scalar

Using the curve generator as base point compute:

scalar * G

pointToIntegers :: Point -> (Integer, Integer)

Convert a point to (x,y) Integers

pointFromIntegers :: (Integer, Integer) -> Point

Convert from (x,y) Integers to a point

pointToBinary :: ByteArray ba => Point -> ba

Convert a point to a binary representation

pointFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Point

Convert from binary to a point

scalar arithmetic

scalarGenerate :: MonadRandom randomly => randomly Scalar

Generate a randomly generated new scalar

scalarZero :: Scalar

The scalar representing 0

scalarIsZero :: Scalar -> Bool

Check if the scalar is 0

scalarAdd :: Scalar -> Scalar -> Scalar

Perform addition between two scalars

a + b

scalarSub :: Scalar -> Scalar -> Scalar

Perform subtraction between two scalars

a - b

scalarInv :: Scalar -> Scalar

Give the inverse of the scalar

1 / a

warning: variable time

scalarCmp :: Scalar -> Scalar -> Ordering

Compare 2 Scalar

scalarFromBinary :: ByteArrayAccess ba => ba -> CryptoFailable Scalar

convert a scalar from binary

scalarToBinary :: ByteArray ba => Scalar -> ba

convert a scalar to binary

scalarFromInteger :: Integer -> CryptoFailable Scalar

Convert from an Integer to a P256 Scalar

scalarToInteger :: Scalar -> Integer

Convert from a P256 Scalar to an Integer