crypto-pubkey-types-0.4.3: Generic cryptography Public keys algorithm types
LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
StabilityExperimental
PortabilityExcellent
Safe HaskellSafe-Inferred
LanguageHaskell98

Crypto.Types.PubKey.ECC

Description

 
Synopsis

Documentation

data Curve Source #

Define either a binary curve or a prime curve.

Constructors

CurveF2m CurveBinary

𝔽(2^m)

CurveFP CurvePrime

𝔽p

Instances

Instances details
Eq Curve Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

(==) :: Curve -> Curve -> Bool

(/=) :: Curve -> Curve -> Bool

Data Curve Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: Curve -> Constr

dataTypeOf :: Curve -> DataType

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

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

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

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

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

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

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

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

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

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

Read Curve Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS Curve

readList :: ReadS [Curve]

readPrec :: ReadPrec Curve

readListPrec :: ReadPrec [Curve]

Show Curve Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> Curve -> ShowS

show :: Curve -> String

showList :: [Curve] -> ShowS

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.Types.PubKey.ECC

Methods

(==) :: Point -> Point -> Bool

(/=) :: Point -> Point -> Bool

Data Point Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: Point -> Constr

dataTypeOf :: Point -> DataType

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

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

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

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

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

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

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

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

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

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

Read Point Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS Point

readList :: ReadS [Point]

readPrec :: ReadPrec Point

readListPrec :: ReadPrec [Point]

Show Point Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> Point -> ShowS

show :: Point -> String

showList :: [Point] -> ShowS

type PublicPoint = Point Source #

ECC Public Point

type PrivateNumber = Integer Source #

ECC Private Number

data CurveBinary Source #

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

Constructors

CurveBinary Integer CurveCommon 

Instances

Instances details
Eq CurveBinary Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

(==) :: CurveBinary -> CurveBinary -> Bool

(/=) :: CurveBinary -> CurveBinary -> Bool

Data CurveBinary Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: CurveBinary -> Constr

dataTypeOf :: CurveBinary -> DataType

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

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

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

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

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

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

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

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

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

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

Read CurveBinary Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS CurveBinary

readList :: ReadS [CurveBinary]

readPrec :: ReadPrec CurveBinary

readListPrec :: ReadPrec [CurveBinary]

Show CurveBinary Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> CurveBinary -> ShowS

show :: CurveBinary -> String

showList :: [CurveBinary] -> ShowS

data CurvePrime Source #

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

Constructors

CurvePrime Integer CurveCommon 

Instances

Instances details
Eq CurvePrime Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

(==) :: CurvePrime -> CurvePrime -> Bool

(/=) :: CurvePrime -> CurvePrime -> Bool

Data CurvePrime Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: CurvePrime -> Constr

dataTypeOf :: CurvePrime -> DataType

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

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

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

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

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

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

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

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

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

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

Read CurvePrime Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS CurvePrime

readList :: ReadS [CurvePrime]

readPrec :: ReadPrec CurvePrime

readListPrec :: ReadPrec [CurvePrime]

Show CurvePrime Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> CurvePrime -> ShowS

show :: CurvePrime -> String

showList :: [CurvePrime] -> ShowS

common_curve :: Curve -> CurveCommon Source #

Parameters in common between binary and prime curves.

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.Types.PubKey.ECC

Methods

(==) :: CurveCommon -> CurveCommon -> Bool

(/=) :: CurveCommon -> CurveCommon -> Bool

Data CurveCommon Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: CurveCommon -> Constr

dataTypeOf :: CurveCommon -> DataType

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

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

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

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

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

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

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

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

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

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

Read CurveCommon Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS CurveCommon

readList :: ReadS [CurveCommon]

readPrec :: ReadPrec CurveCommon

readListPrec :: ReadPrec [CurveCommon]

Show CurveCommon Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> CurveCommon -> ShowS

show :: CurveCommon -> String

showList :: [CurveCommon] -> ShowS

recommended curves definition

data CurveName Source #

Define names for known recommended curves.

Instances

Instances details
Enum CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Eq CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

(==) :: CurveName -> CurveName -> Bool

(/=) :: CurveName -> CurveName -> Bool

Data CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

toConstr :: CurveName -> Constr

dataTypeOf :: CurveName -> DataType

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

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

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

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

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

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

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

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

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

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

Ord CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

compare :: CurveName -> CurveName -> Ordering

(<) :: CurveName -> CurveName -> Bool

(<=) :: CurveName -> CurveName -> Bool

(>) :: CurveName -> CurveName -> Bool

(>=) :: CurveName -> CurveName -> Bool

max :: CurveName -> CurveName -> CurveName

min :: CurveName -> CurveName -> CurveName

Read CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

readsPrec :: Int -> ReadS CurveName

readList :: ReadS [CurveName]

readPrec :: ReadPrec CurveName

readListPrec :: ReadPrec [CurveName]

Show CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> CurveName -> ShowS

show :: CurveName -> String

showList :: [CurveName] -> ShowS

OIDNameable CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

fromObjectID :: OID -> Maybe CurveName

OIDable CurveName Source # 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

getObjectID :: CurveName -> OID

getCurveByName :: CurveName -> Curve Source #

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