diff --git a/src/RetrieveCertificate.hs b/src/RetrieveCertificate.hs
--- a/src/RetrieveCertificate.hs
+++ b/src/RetrieveCertificate.hs
@@ -104,6 +104,7 @@
 
     case other of
         [destination,port] -> doMain destination port opts
+        [destination]      -> doMain destination "443" opts
         _                  -> printUsage >> exitFailure
 
   where outputFormat [] = "simple"
diff --git a/src/SimpleClient.hs b/src/SimpleClient.hs
--- a/src/SimpleClient.hs
+++ b/src/SimpleClient.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+import Crypto.Random
 import Network.BSD
 import Network.Socket (socket, Family(..), SocketType(..), sClose, SockAddr(..), connect)
 import Network.TLS
@@ -91,13 +92,17 @@
                              , sharedCredentials     = maybe mempty fst certCredsRequest
                              }
         , clientHooks = def { onCertificateRequest = maybe (onCertificateRequest def) snd certCredsRequest }
+        , clientDebug = def { debugSeed      = foldl getDebugSeed Nothing flags
+                            , debugPrintSeed = if DebugPrintSeed `elem` flags
+                                                    then (\seed -> putStrLn ("seed: " ++ show (seedToInteger seed)))
+                                                    else (\_ -> return ())
+                            }
         }
     where
             validateCache
                 | validateCert = def
                 | otherwise    = ValidationCache (\_ _ _ -> return ValidationCachePass)
                                                  (\_ _ _ -> return ())
-
             myCiphers = foldl accBogusCipher (filter withUseCipher ciphers) flags
               where accBogusCipher acc (BogusCipher c) =
                         case reads c of
@@ -116,6 +121,10 @@
                     [] -> True
                     l  -> cipherID c `elem` l
 
+            getDebugSeed :: Maybe Seed -> Flag -> Maybe Seed
+            getDebugSeed _   (DebugSeed seed) = seedFromInteger <$> readNumber seed
+            getDebugSeed acc _                = acc
+
             tlsConnectVer
                 | Tls12 `elem` flags = TLS12
                 | Tls11 `elem` flags = TLS11
@@ -143,6 +152,8 @@
           | BenchData String
           | UseCipher String
           | ListCiphers
+          | DebugSeed String
+          | DebugPrintSeed
           | Help
           deriving (Show,Eq)
 
@@ -172,6 +183,8 @@
     , Option []     ["bench-data"] (ReqArg BenchData "amount") "amount of data to benchmark with"
     , Option []     ["use-cipher"] (ReqArg UseCipher "cipher-id") "use a specific cipher" 
     , Option []     ["list-ciphers"] (NoArg ListCiphers) "list all ciphers supported and exit"
+    , Option []     ["debug-seed"] (ReqArg DebugSeed "debug-seed") "debug: set a specific seed for randomness"
+    , Option []     ["debug-print-seed"] (NoArg DebugPrintSeed) "debug: set a specific seed for randomness"
     ]
 
 noSession = Nothing
@@ -187,7 +200,8 @@
             doTLS certCredRequest (Just session)
   where
         runBench isSend =
-            runTLS False False
+            runTLS (Debug `elem` flags)
+                   (IODebug `elem` flags)
                    (getDefaultParams flags hostname certStore sStorage Nothing noSession) hostname port $ \ctx -> do
                 handshake ctx
                 if isSend
diff --git a/src/SimpleServer.hs b/src/SimpleServer.hs
--- a/src/SimpleServer.hs
+++ b/src/SimpleServer.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE ScopedTypeVariables #-}
+import Crypto.Random
 import Network.BSD
 import Network.Socket (socket, Family(..), SocketType(..), sClose, SockAddr(..), bind, listen, accept)
 import Network.TLS
@@ -98,6 +99,11 @@
                              }
         , serverHooks = def
         , serverSupported = def { supportedVersions = supportedVers, supportedCiphers = myCiphers }
+        , serverDebug = def { debugSeed      = foldl getDebugSeed Nothing flags
+                            , debugPrintSeed = if DebugPrintSeed `elem` flags
+                                                    then (\seed -> putStrLn ("seed: " ++ show (seedToInteger seed)))
+                                                    else (\_ -> return ())
+                            }
         }
     where
             validateCache
@@ -123,6 +129,10 @@
                     [] -> True
                     l  -> cipherID c `elem` l
 
+            getDebugSeed :: Maybe Seed -> Flag -> Maybe Seed
+            getDebugSeed _   (DebugSeed seed) = seedFromInteger <$> readNumber seed
+            getDebugSeed acc _                = acc
+
             tlsConnectVer
                 | Tls12 `elem` flags = TLS12
                 | Tls11 `elem` flags = TLS11
@@ -149,6 +159,8 @@
           | ListCiphers
           | Certificate String
           | Key String
+          | DebugSeed String
+          | DebugPrintSeed
           | Help
           deriving (Show,Eq)
 
@@ -176,6 +188,8 @@
     , Option []     ["use-cipher"] (ReqArg UseCipher "cipher-id") "use a specific cipher" 
     , Option []     ["list-ciphers"] (NoArg ListCiphers) "list all ciphers supported and exit"
     , Option []     ["certificate"] (ReqArg Certificate "certificate") "certificate file"
+    , Option []     ["debug-seed"] (ReqArg DebugSeed "debug-seed") "debug: set a specific seed for randomness"
+    , Option []     ["debug-print-seed"] (NoArg DebugPrintSeed) "debug: set a specific seed for randomness"
     , Option []     ["key"] (ReqArg Key "key") "certificate file"
     ]
 
diff --git a/tls-debug.cabal b/tls-debug.cabal
--- a/tls-debug.cabal
+++ b/tls-debug.cabal
@@ -1,5 +1,5 @@
 Name:                tls-debug
-Version:             0.4.1
+Version:             0.4.2
 Description:
    A set of program to test and debug various aspect of the TLS package.
    .
@@ -67,7 +67,7 @@
                    , network
                    , bytestring
                    , data-default-class
-                   , cryptonite
+                   , cryptonite >= 0.14
                    , x509-system >= 1.0
                    , tls >= 1.3 && < 1.4
   Buildable:         True
