License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | Good |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- data Params = Params { }
- newtype PublicNumber = PublicNumber Integer
- newtype PrivateNumber = PrivateNumber Integer
- newtype SharedKey = SharedKey ScrubbedBytes
- generateParams :: MonadRandom m => Int -> Integer -> m Params
- generatePrivate :: MonadRandom m => Params -> m PrivateNumber
- calculatePublic :: Params -> PrivateNumber -> PublicNumber
- generatePublic :: Params -> PrivateNumber -> PublicNumber
- getShared :: Params -> PrivateNumber -> PublicNumber -> SharedKey
Documentation
Represent Diffie Hellman parameters namely P (prime), and G (generator).
Instances
Eq Params Source # | |
Data Params Source # | |
Defined in Crypto.PubKey.DH gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Params -> c Params Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Params Source # toConstr :: Params -> Constr Source # dataTypeOf :: Params -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Params ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Params ) Source # gmapT :: ( forall b. Data b => b -> b) -> Params -> Params Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Params -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Params -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Params -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Params -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Params -> m Params Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Params -> m Params Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Params -> m Params Source # |
|
Read Params Source # | |
Show Params Source # | |
NFData Params Source # | |
Defined in Crypto.PubKey.DH |
newtype PublicNumber Source #
Represent Diffie Hellman public number Y.
Instances
newtype PrivateNumber Source #
Represent Diffie Hellman private number X.
Instances
Represent Diffie Hellman shared secret.
Instances
:: MonadRandom m | |
=> Int |
number of bits |
-> Integer |
generator |
-> m Params |
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 :: MonadRandom m => Params -> m PrivateNumber 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