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
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 :: (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
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) Source #

Generating a private number d.

calculatePublic :: Curve -> PrivateNumber -> PublicPoint Source #

Generating a public point Q.

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

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