tls-extra 0.2.2 → 0.2.3
raw patch · 2 files changed
+18/−3 lines, 2 filesdep +timedep ~certificatedep ~tlsPVP ok
version bump matches the API change (PVP)
Dependencies added: time
Dependency ranges changed: certificate, tls
API changes (from Hackage documentation)
+ Network.TLS.Extra: certificateFingerprint :: (ByteString -> ByteString) -> X509 -> ByteString
+ Network.TLS.Extra: certificateVerifyValidity :: Day -> [X509] -> Bool
Files
- Network/TLS/Extra/Certificate.hs +14/−0
- tls-extra.cabal +4/−3
Network/TLS/Extra/Certificate.hs view
@@ -10,6 +10,8 @@ ( certificateVerifyChain , certificateVerifyAgainst , certificateVerifyDomain+ , certificateVerifyValidity+ , certificateFingerprint ) where import qualified Data.ByteString as B@@ -26,6 +28,8 @@ import Data.Certificate.X509Cert (oidCommonName) +import Data.Time.Calendar+ #if defined(NOCERTVERIFY) # warning "********certificate verify chain doesn't yet work on your platform *************"@@ -149,3 +153,13 @@ splitDot x = let (y, z) = break (== '.') x in y : (if z == "" then [] else splitDot $ drop 1 z)++-- Maybe should verify whole chain+certificateVerifyValidity :: Day -> [X509] -> Bool+certificateVerifyValidity _ [] = False+certificateVerifyValidity ctime (X509 cert _ _ _ _ :_) =+ let ((beforeDay,_,_) , (afterDay,_,_)) = certValidity cert in+ beforeDay < ctime && ctime <= afterDay++certificateFingerprint :: (L.ByteString -> B.ByteString) -> X509 -> B.ByteString+certificateFingerprint hash x509 = hash $ getSigningData x509
tls-extra.cabal view
@@ -1,5 +1,5 @@ Name: tls-extra-Version: 0.2.2+Version: 0.2.3 Description: a set of extra definitions, default values and helpers for tls. License: BSD3@@ -28,7 +28,7 @@ Library Build-Depends: base > 3 && < 5- , tls >= 0.6.3 && < 0.7+ , tls >= 0.6.4 && < 0.7 , mtl , network >= 2.3 , cryptohash >= 0.6@@ -36,8 +36,9 @@ , vector , crypto-api >= 0.5 , cryptocipher >= 0.2.5- , certificate >= 0.8.1 && < 0.9+ , certificate >= 0.9 && < 1.0 , text >= 0.5 && < 1.0+ , time Exposed-modules: Network.TLS.Extra other-modules: Network.TLS.Extra.Certificate Network.TLS.Extra.Cipher