packages feed

tls 1.2.10 → 1.2.11

raw patch · 16 files changed

+85/−52 lines, 16 filesdep +hourglassdep +tastydep +tasty-quickcheckdep −test-frameworkdep −test-framework-quickcheck2dep −timedep ~QuickCheckdep ~mtlPVP ok

version bump matches the API change (PVP)

Dependencies added: hourglass, tasty, tasty-quickcheck, transformers

Dependencies removed: test-framework, test-framework-quickcheck2, time

Dependency ranges changed: QuickCheck, mtl

API changes (from Hackage documentation)

Files

+ Network/TLS/ErrT.hs view
@@ -0,0 +1,28 @@+-- |+-- Module      : Network.TLS.ErrT+-- License     : BSD-style+-- Maintainer  : Vincent Hanquez <vincent@snarc.org>+-- Stability   : experimental+-- Portability : unknown+--+-- a simple compat ErrorT and other error stuff+{-# LANGUAGE CPP #-}+module Network.TLS.ErrT+    ( runErrT+    , ErrT+    , Error(..)+    , MonadError(..)+    ) where++#if MIN_VERSION_mtl(2,2,1)+import Control.Monad.Except+import Control.Monad.Error.Class (Error(..))+runErrT :: ExceptT e m a -> m (Either e a)+runErrT = runExceptT+type ErrT = ExceptT+#else+import Control.Monad.Error+runErrT = runErrorT+type ErrT = ErrorT+#endif+
Network/TLS/Handshake/Client.hs view
@@ -18,6 +18,7 @@ import Network.TLS.Cipher import Network.TLS.Compression import Network.TLS.Packet+import Network.TLS.ErrT import Network.TLS.Extension import Network.TLS.IO import Network.TLS.State hiding (getNegotiatedProtocol)@@ -33,7 +34,6 @@  import Control.Applicative ((<$>), (<*>)) import Control.Monad.State-import Control.Monad.Error import Control.Exception (SomeException)  import Network.TLS.Handshake.Common
Network/TLS/Handshake/Process.hs view
@@ -15,12 +15,14 @@  import Control.Applicative import Control.Concurrent.MVar-import Control.Monad.Error import Control.Monad.State (gets)+import Control.Monad+import Control.Monad.IO.Class (liftIO)  import Network.TLS.Types (Role(..), invertRole) import Network.TLS.Util import Network.TLS.Packet+import Network.TLS.ErrT import Network.TLS.Struct import Network.TLS.State import Network.TLS.Context.Internal
Network/TLS/Receiving.hs view
@@ -15,11 +15,11 @@     ) where  import Control.Monad.State-import Control.Monad.Error import Control.Concurrent.MVar  import Network.TLS.Context.Internal import Network.TLS.Struct+import Network.TLS.ErrT import Network.TLS.Record import Network.TLS.Packet import Network.TLS.Wire
Network/TLS/Record/Disengage.hs view
@@ -15,9 +15,9 @@         ) where  import Control.Monad.State-import Control.Monad.Error  import Network.TLS.Struct+import Network.TLS.ErrT import Network.TLS.Cap import Network.TLS.Record.State import Network.TLS.Record.Types
Network/TLS/Record/State.hs view
@@ -25,9 +25,9 @@ import Data.Word import Control.Applicative import Control.Monad.State-import Control.Monad.Error import Network.TLS.Compression import Network.TLS.Cipher+import Network.TLS.ErrT import Network.TLS.Struct import Network.TLS.Wire 
Network/TLS/State.hs view
@@ -54,7 +54,7 @@ import Network.TLS.Wire (GetContinuation) import qualified Data.ByteString as B import Control.Monad.State-import Control.Monad.Error+import Network.TLS.ErrT import Crypto.Random import Data.X509 (CertificateChain) @@ -74,7 +74,7 @@     , stClientContext       :: Role     } -newtype TLSSt a = TLSSt { runTLSSt :: ErrorT TLSError (State TLSState) a }+newtype TLSSt a = TLSSt { runTLSSt :: ErrT TLSError (State TLSState) a }     deriving (Monad, MonadError TLSError, Functor, Applicative)  instance MonadState TLSState TLSSt where@@ -85,7 +85,7 @@ #endif  runTLSState :: TLSSt a -> TLSState -> (Either TLSError a, TLSState)-runTLSState f st = runState (runErrorT (runTLSSt f)) st+runTLSState f st = runState (runErrT (runTLSSt f)) st  newTLSState :: CPRG g => g -> Role -> TLSState newTLSState rng clientContext = TLSState
Network/TLS/Struct.hs view
@@ -9,6 +9,7 @@ -- -- the Struct module contains all definitions and values of the TLS protocol --+{-# LANGUAGE CPP #-} module Network.TLS.Struct     ( Bytes     , Version(..)@@ -56,7 +57,6 @@ import Data.Word import Data.X509 (CertificateChain, DistinguishedName) import Data.Typeable-import Control.Monad.Error (Error(..)) import Control.Exception (Exception(..)) import Network.TLS.Types import Network.TLS.Crypto.DH@@ -129,9 +129,12 @@     | Error_Packet_Parsing String     deriving (Eq, Show, Typeable) +#if MIN_VERSION_mtl(2,2,1)+#else instance Error TLSError where     noMsg  = Error_Misc ""     strMsg = Error_Misc+#endif  instance Exception TLSError 
Network/TLS/Wire.hs view
@@ -50,7 +50,7 @@ import qualified Data.Serialize.Get as G import Data.Serialize.Put import Control.Applicative ((<$>))-import Control.Monad.Error+import Control.Monad import qualified Data.ByteString as B import Data.Word import Data.Bits
Tests/Certificate.hs view
@@ -6,10 +6,10 @@     , simpleX509     ) where -import Test.QuickCheck+import Control.Applicative+import Test.Tasty.QuickCheck import Data.X509-import Data.Time.Calendar (fromGregorian)-import Data.Time.Clock (secondsToDiffTime, UTCTime(..))+import Data.Hourglass import qualified Data.ByteString as B  import PubKey@@ -18,24 +18,34 @@  arbitraryDN = return $ DistinguishedName [] -arbitraryTime = do-    year   <- choose (1951, 2050)-    month  <- choose (1, 12)-    day    <- choose (1, 30)-    hour   <- choose (0, 23)-    minute <- choose (0, 59)-    second <- choose (0, 59)-    --z      <- arbitrary-    return $ UTCTime (fromGregorian year month day) (secondsToDiffTime (hour * 3600 + minute * 60 + second))+instance Arbitrary Date where+    arbitrary = do+        y <- choose (1951, 2050)+        m <- elements [ January .. December]+        d <- choose (1, 30)+        return $ normalizeDate $ Date y m d +normalizeDate :: Date -> Date+normalizeDate d = timeConvert (timeConvert d :: Elapsed)++instance Arbitrary TimeOfDay where+    arbitrary = do+        h    <- choose (0, 23)+        mi   <- choose (0, 59)+        se   <- choose (0, 59)+        nsec <- return 0+        return $ TimeOfDay (Hours h) (Minutes mi) (Seconds se) nsec++instance Arbitrary DateTime where+    arbitrary = DateTime <$> arbitrary <*> arbitrary+ maxSerial = 16777216  arbitraryCertificate pubKey = do     serial    <- choose (0,maxSerial)     issuerdn  <- arbitraryDN     subjectdn <- arbitraryDN-    time1     <- arbitraryTime-    time2     <- arbitraryTime+    validity  <- (,) <$> arbitrary <*> arbitrary     let sigalg = SignatureALG HashSHA1 (pubkeyToAlg pubKey)     return $ Certificate             { certVersion      = 3@@ -43,7 +53,7 @@             , certSignatureAlg = sigalg             , certIssuerDN     = issuerdn             , certSubjectDN    = subjectdn-            , certValidity     = (time1, time2)+            , certValidity     = validity             , certPubKey       = pubKey             , certExtensions   = Extensions $ Just                 [ testExtensionEncode True $ ExtKeyUsage [KeyUsage_digitalSignature,KeyUsage_keyEncipherment,KeyUsage_keyCertSign]@@ -63,8 +73,8 @@                 [ testExtensionEncode True $ ExtKeyUsage [KeyUsage_digitalSignature,KeyUsage_keyEncipherment]                 ]         }-  where time1 = UTCTime (fromGregorian 1999 1 1) 0-        time2 = UTCTime (fromGregorian 2901 1 1) 0+  where time1 = DateTime (Date 1999 January 1) (TimeOfDay 0 0 0 0)+        time2 = DateTime (Date 2049 January 1) (TimeOfDay 0 0 0 0)         simpleDN = DistinguishedName []  simpleX509 pubKey = do
Tests/Ciphers.hs view
@@ -4,7 +4,7 @@  import Control.Applicative ((<$>), (<*>)) -import Test.QuickCheck+import Test.Tasty.QuickCheck  import qualified Data.ByteString as B import Network.TLS.Cipher
Tests/Connection.hs view
@@ -8,7 +8,7 @@     , streamCipher     ) where -import Test.QuickCheck+import Test.Tasty.QuickCheck import Certificate import PubKey import PipeChan
Tests/Marshalling.hs view
@@ -3,7 +3,7 @@  import Control.Monad import Control.Applicative-import Test.QuickCheck+import Test.Tasty.QuickCheck import Network.TLS.Internal import Network.TLS @@ -24,15 +24,6 @@             , ProtocolType_Alert             , ProtocolType_Handshake             , ProtocolType_AppData ]--#if MIN_VERSION_QuickCheck(2,3,0)-#else-instance Arbitrary Word8 where-    arbitrary = fromIntegral <$> (choose (0,255) :: Gen Int)--instance Arbitrary Word16 where-    arbitrary = fromIntegral <$> (choose (0,65535) :: Gen Int)-#endif  instance Arbitrary Header where     arbitrary = Header <$> arbitrary <*> arbitrary <*> arbitrary
Tests/PubKey.hs view
@@ -8,7 +8,7 @@     , rsaParams     ) where -import Test.QuickCheck+import Test.Tasty.QuickCheck  import qualified Crypto.PubKey.DH as DH import Crypto.Random (createTestEntropyPool)
Tests/Tests.hs view
@@ -1,9 +1,8 @@ {-# LANGUAGE CPP #-} -import Test.QuickCheck+import Test.Tasty+import Test.Tasty.QuickCheck import Test.QuickCheck.Monadic-import Test.Framework (defaultMain, testGroup)-import Test.Framework.Providers.QuickCheck2 (testProperty)  import PipeChan import Connection@@ -159,7 +158,7 @@ assertEq expected got = unless (expected == got) $ error ("got " ++ show got ++ " but was expecting " ++ show expected)  main :: IO ()-main = defaultMain+main = defaultMain $ testGroup "tls"     [ tests_marshalling     , tests_ciphers     , tests_handshake
tls.cabal view
@@ -1,5 +1,5 @@ Name:                tls-Version:             1.2.10+Version:             1.2.11 Description:    Native Haskell TLS and SSL protocol implementation for server and client.    .@@ -34,6 +34,7 @@ Library   Build-Depends:     base >= 3 && < 5                    , mtl+                   , transformers                    , cereal >= 0.4                    , bytestring                    , byteable@@ -70,6 +71,7 @@                      Network.TLS.Backend                      Network.TLS.Crypto                      Network.TLS.Crypto.DH+                     Network.TLS.ErrT                      Network.TLS.Extension                      Network.TLS.Handshake                      Network.TLS.Handshake.Common@@ -103,8 +105,6 @@                      Network.TLS.Wire                      Network.TLS.X509   ghc-options:       -Wall -fwarn-tabs-  if impl(ghc == 7.6.1)-    ghc-options:     -O0   if flag(compat)     cpp-options:     -DSSLV2_COMPATIBLE @@ -116,16 +116,16 @@                    , mtl                    , cereal >= 0.3                    , data-default-class-                   , QuickCheck >= 2-                   , test-framework-                   , test-framework-quickcheck2+                   , tasty+                   , tasty-quickcheck+                   , QuickCheck                    , cprng-aes >= 0.5                    , crypto-pubkey >= 0.2                    , bytestring                    , x509                    , x509-validation                    , tls-                   , time+                   , hourglass                    , crypto-random                    , crypto-pubkey   ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures -fwarn-tabs@@ -145,7 +145,7 @@                    , mtl                    , bytestring                    , crypto-pubkey >= 0.2-                   , time+                   , hourglass                    , QuickCheck >= 2  source-repository head