crypto-pubkey-0.2.8: Public Key cryptography

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
PortabilityGood
Safe HaskellNone
LanguageHaskell98

Crypto.PubKey.DH

Description

 
Synopsis

Documentation

data Params #

Represent Diffie Hellman parameters namely P (prime), and G (generator).

Constructors

Params 
Instances
Eq Params 
Instance details

Defined in Crypto.Types.PubKey.DH

Methods

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

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

Data Params 
Instance details

Defined in Crypto.Types.PubKey.DH

Methods

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

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

toConstr :: Params -> Constr #

dataTypeOf :: Params -> DataType #

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

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

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

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

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

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

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

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

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

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

Read Params 
Instance details

Defined in Crypto.Types.PubKey.DH

Show Params 
Instance details

Defined in Crypto.Types.PubKey.DH

ASN1Object Params 
Instance details

Defined in Crypto.Types.PubKey.DH

Methods

toASN1 :: Params -> ASN1S

fromASN1 :: [ASN1] -> Either String (Params, [ASN1])

data PublicNumber #

Represent Diffie Hellman public number Y.

Instances
Enum PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Eq PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Num PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Ord PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Read PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Real PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Show PublicNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

data PrivateNumber #

Represent Diffie Hellman private number X.

Instances
Enum PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Eq PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Num PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Ord PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Read PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Real PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

Show PrivateNumber 
Instance details

Defined in Crypto.Types.PubKey.DH

data SharedKey #

Represent Diffie Hellman shared secret.

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

generateParams :: CPRG g => g -> Int -> Integer -> (Params, g) Source #

generate params from a specific generator (2 or 5 are common values) we generate a safe prime (a prime number of the form 2p+1 where p is also prime)

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

generate a private number with no specific property this number is usually called X in DH text.

calculatePublic :: Params -> PrivateNumber -> PublicNumber Source #

calculate the public number from the parameters and the private key this number is usually called Y in DH text.

generatePublic :: Params -> PrivateNumber -> PublicNumber Source #

calculate the public number from the parameters and the private key this number is usually called Y in DH text.

DEPRECATED use calculatePublic

getShared :: Params -> PrivateNumber -> PublicNumber -> SharedKey Source #

generate a shared key using our private number and the other party public number