change ServerDHParams to re-use the DH abstraction in Crypto.DH.

This commit is contained in:
Vincent Hanquez 2013-12-11 16:01:55 +08:00
parent 1e62ddd53f
commit 6d63cde8cb
2 changed files with 9 additions and 10 deletions

View file

@ -453,13 +453,14 @@ putSignatureHashAlgorithm (h,s) =
putWord8 (valOfType h) >> putWord8 (valOfType s)
getServerDHParams :: Get ServerDHParams
getServerDHParams = ServerDHParams <$> getInteger16 -- p
<*> getInteger16 -- g
<*> getInteger16 -- Ys
getServerDHParams = ServerDHParams <$> getDHParams <*> getDHPublic
where getDHParams = dhParams <$> getInteger16 -- p
<*> getInteger16 -- g
getDHPublic = dhPublic <$> getInteger16 -- y(server)
putServerDHParams :: ServerDHParams -> Put
putServerDHParams (ServerDHParams p g y) =
mapM_ putInteger16 [p,g,y]
putServerDHParams (ServerDHParams dhparams dhpub) =
mapM_ putInteger16 $ dhUnwrap dhparams dhpub
getDigitallySigned :: Version -> Get DigitallySigned
getDigitallySigned ver

View file

@ -59,6 +59,7 @@ import Data.Typeable
import Control.Monad.Error (Error(..))
import Control.Exception (Exception(..))
import Network.TLS.Types
import Network.TLS.Crypto.DH
type Bytes = ByteString
@ -222,11 +223,8 @@ data HandshakeType =
| HandshakeType_NPN -- Next Protocol Negotiation extension
deriving (Show,Eq)
data ServerDHParams = ServerDHParams
{ dh_p :: Integer -- ^ prime modulus
, dh_g :: Integer -- ^ generator
, dh_Ys :: Integer -- ^ public value (g^X mod p)
} deriving (Show,Eq)
data ServerDHParams = ServerDHParams DHParams {- (p,g) -} DHPublic {- y -}
deriving (Show,Eq)
data ServerRSAParams = ServerRSAParams
{ rsa_modulus :: Integer