cryptonite-0.27: Cryptography Primitives sink
License BSD-style
Maintainer Vincent Hanquez <vincent@snarc.org>
Stability Experimental
Portability Excellent
Safe Haskell None
Language Haskell2010

Crypto.PubKey.ECC.Types

Description

Synopsis

Documentation

data Curve Source #

Define either a binary curve or a prime curve.

Instances

Instances details
Eq Curve Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data Curve Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Curve -> c Curve Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Curve Source #

toConstr :: Curve -> Constr Source #

dataTypeOf :: Curve -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Curve ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Curve ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Curve -> Curve Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Curve -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Curve -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Curve -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Curve -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Curve -> m Curve Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Curve -> m Curve Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Curve -> m Curve Source #

Read Curve Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show Curve Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

data Point Source #

Define a point on a curve.

Constructors

Point Integer Integer
PointO

Point at Infinity

Instances

Instances details
Eq Point Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data Point Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Point -> c Point Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Point Source #

toConstr :: Point -> Constr Source #

dataTypeOf :: Point -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Point ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Point ) Source #

gmapT :: ( forall b. Data b => b -> b) -> Point -> Point Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Point -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Point -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> Point -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> Point -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Point -> m Point Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Point -> m Point Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Point -> m Point Source #

Read Point Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show Point Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

NFData Point Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

type PublicPoint = Point Source #

ECC Public Point

data CurveBinary Source #

Define an elliptic curve in 𝔽(2^m). The firt parameter is the Integer representatioin of the irreducible polynomial f(x).

Instances

Instances details
Eq CurveBinary Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data CurveBinary Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> CurveBinary -> c CurveBinary Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c CurveBinary Source #

toConstr :: CurveBinary -> Constr Source #

dataTypeOf :: CurveBinary -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c CurveBinary ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c CurveBinary ) Source #

gmapT :: ( forall b. Data b => b -> b) -> CurveBinary -> CurveBinary Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> CurveBinary -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> CurveBinary -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> CurveBinary -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> CurveBinary -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> CurveBinary -> m CurveBinary Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveBinary -> m CurveBinary Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveBinary -> m CurveBinary Source #

Read CurveBinary Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show CurveBinary Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

NFData CurveBinary Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

data CurvePrime Source #

Define an elliptic curve in 𝔽p. The first parameter is the Prime Number.

Instances

Instances details
Eq CurvePrime Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data CurvePrime Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> CurvePrime -> c CurvePrime Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c CurvePrime Source #

toConstr :: CurvePrime -> Constr Source #

dataTypeOf :: CurvePrime -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c CurvePrime ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c CurvePrime ) Source #

gmapT :: ( forall b. Data b => b -> b) -> CurvePrime -> CurvePrime Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> CurvePrime -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> CurvePrime -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> CurvePrime -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> CurvePrime -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> CurvePrime -> m CurvePrime Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurvePrime -> m CurvePrime Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurvePrime -> m CurvePrime Source #

Read CurvePrime Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show CurvePrime Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

common_curve :: Curve -> CurveCommon Source #

Parameters in common between binary and prime curves.

curveSizeBits :: Curve -> Int Source #

get the size of the curve in bits

ecc_fx :: CurveBinary -> Integer Source #

Irreducible polynomial representing the characteristic of a CurveBinary.

ecc_p :: CurvePrime -> Integer Source #

Prime number representing the characteristic of a CurvePrime.

data CurveCommon Source #

Define common parameters in a curve definition of the form: y^2 = x^3 + ax + b.

Constructors

CurveCommon

Fields

Instances

Instances details
Eq CurveCommon Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data CurveCommon Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> CurveCommon -> c CurveCommon Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c CurveCommon Source #

toConstr :: CurveCommon -> Constr Source #

dataTypeOf :: CurveCommon -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c CurveCommon ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c CurveCommon ) Source #

gmapT :: ( forall b. Data b => b -> b) -> CurveCommon -> CurveCommon Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> CurveCommon -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> CurveCommon -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> CurveCommon -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> CurveCommon -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> CurveCommon -> m CurveCommon Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveCommon -> m CurveCommon Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveCommon -> m CurveCommon Source #

Read CurveCommon Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show CurveCommon Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Recommended curves definition

data CurveName Source #

Define names for known recommended curves.

Instances

Instances details
Bounded CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Enum CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Eq CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Data CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Methods

gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> CurveName -> c CurveName Source #

gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c CurveName Source #

toConstr :: CurveName -> Constr Source #

dataTypeOf :: CurveName -> DataType Source #

dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c CurveName ) Source #

dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c CurveName ) Source #

gmapT :: ( forall b. Data b => b -> b) -> CurveName -> CurveName Source #

gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> CurveName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> CurveName -> r Source #

gmapQ :: ( forall d. Data d => d -> u) -> CurveName -> [u] Source #

gmapQi :: Int -> ( forall d. Data d => d -> u) -> CurveName -> u Source #

gmapM :: Monad m => ( forall d. Data d => d -> m d) -> CurveName -> m CurveName Source #

gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveName -> m CurveName Source #

gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> CurveName -> m CurveName Source #

Ord CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Read CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

Show CurveName Source #
Instance details

Defined in Crypto.PubKey.ECC.Types

getCurveByName :: CurveName -> Curve Source #

Get the curve definition associated with a recommended known curve name.