crypto-pubkey-0.2.8: Public Key cryptography
Safe HaskellNone
LanguageHaskell98

Crypto.PubKey.ECC.DH

Synopsis

Documentation

data Curve #

Define either a binary curve or a prime curve.

Instances

Instances details
Eq Curve 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

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

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

Data Curve 
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 
Instance details

Defined in Crypto.Types.PubKey.ECC

Show Curve 
Instance details

Defined in Crypto.Types.PubKey.ECC

Methods

showsPrec :: Int -> Curve -> ShowS #

show :: Curve -> String #

showList :: [Curve] -> ShowS #

type PublicPoint = Point #

ECC Public Point

type PrivateNumber = Integer #

ECC Private Number

newtype SharedKey #

Represent Diffie Hellman shared secret.

Constructors

SharedKey Integer 

Instances

Instances details
Enum SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Eq SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Num SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Ord SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Read SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Real SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

Show SharedKey 
Instance details

Defined in Crypto.Types.PubKey.DH

generatePrivate :: CPRG g => g -> Curve -> (PrivateNumber, g) #

Generating a private number d.

calculatePublic :: Curve -> PrivateNumber -> PublicPoint #

Generating a public point Q.

getShared :: Curve -> PrivateNumber -> PublicPoint -> SharedKey #

Generating a shared key using our private number and the other party public point.