packages feed

peyotls 0.1.5.5 → 0.1.6.0

raw patch · 4 files changed

+15/−9 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Network.PeyoTLS.Client: getCertificate :: HandleLike h => TlsHandle h g -> TlsM h g SignedCertificate
- Network.PeyoTLS.TChan.Client: open :: (CPRG g, ValidateHandle h, MonadBaseControl IO (HandleMonad h)) => h -> [CipherSuite] -> [(CertSecretKey, CertificateChain)] -> CertificateStore -> g -> HandleMonad h (String -> Bool, (TChan ByteString, TChan ByteString))
+ Network.PeyoTLS.TChan.Client: open :: (CPRG g, ValidateHandle h, MonadBaseControl IO (HandleMonad h)) => h -> [CipherSuite] -> [(CertSecretKey, CertificateChain)] -> CertificateStore -> g -> HandleMonad h ((String -> Bool, SignedCertificate), (TChan ByteString, TChan ByteString))

Files

peyotls.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.8  name:		peyotls-version:	0.1.5.5+version:	0.1.6.0 stability:	Experimental author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -281,7 +281,7 @@ source-repository	this     type:	git     location:	git://github.com/YoshikuniJujo/peyotls.git-    tag:	peyotls-0.1.5.5+    tag:	peyotls-0.1.6.0  library     hs-source-dirs:	src
src/Network/PeyoTLS/Client.hs view
@@ -11,7 +11,7 @@ module Network.PeyoTLS.Client ( 	-- * Basic 	PeyotlsM, PeyotlsHandle, TlsM, TlsHandle, Alert(..),-	run, open, open', getNames, checkName,+	run, open, open', getNames, getCertificate, checkName, 	-- * Renegotiation 	renegotiate, setCipherSuites, setKeyCerts, setCertificateStore, 	-- * Cipher Suite
src/Network/PeyoTLS/Client/Body.hs view
@@ -14,7 +14,7 @@ 	-- * Basic 	TlsState(..), State1(..), Keys(..), toCheckName, 	PeyotlsM, PeyotlsHandle, TlsM, TlsHandle, Alert(..),-	run, run', open, open', getNames, checkName,+	run, run', open, open', getNames, getCertificate, checkName, 	-- * Renegotiation 	renegotiate, setCipherSuites, setKeyCerts, setCertificateStore, 	-- * Cipher Suite@@ -25,7 +25,7 @@ import Control.Applicative ((<$>), (<*>)) import Control.Monad (when, unless, liftM, ap) import "monads-tf" Control.Monad.Error.Class (strMsg)-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, fromJust) import Data.List (find, intersect) import Data.Function (on) import Data.HandleLike (HandleLike(..))@@ -43,7 +43,7 @@ import qualified Crypto.PubKey.RSA.PKCS15 as RSA import qualified "monads-tf" Control.Monad.Error as E -import qualified Network.PeyoTLS.Base as BASE (getNames)+import qualified Network.PeyoTLS.Base as BASE (getNames, getCertificate) import Network.PeyoTLS.Base ( debug, wFlush, 	TlsState(..), State1(..), Keys(..), 	PeyotlsM, TlsM, run, run',@@ -91,6 +91,9 @@  getNames :: HandleLike h => TlsHandle h g -> TlsM h g [String] getNames = BASE.getNames . tlsHandleC++getCertificate :: HandleLike h => TlsHandle h g -> TlsM h g X509.SignedCertificate+getCertificate = (fromJust `liftM`) . BASE.getCertificate . tlsHandleC  checkName :: HandleLike h => TlsHandle h g -> String -> TlsM h g Bool checkName t n = flip toCheckName n `liftM` getNames t
src/Network/PeyoTLS/TChan/Client.hs view
@@ -14,6 +14,7 @@ import Control.Monad.Base import Control.Concurrent import Control.Concurrent.STM+import Data.Maybe import Data.Word import Data.HandleLike import Data.X509@@ -71,11 +72,13 @@ open :: (CPRG g, ValidateHandle h, MonadBaseControl IO (HandleMonad h)) => h -> 	[CipherSuite] -> [(CertSecretKey, CertificateChain)] -> 	CertificateStore -> g ->-	HandleMonad h (String -> Bool, (TChan BSC.ByteString, TChan BSC.ByteString))+	HandleMonad h (+		(String -> Bool, SignedCertificate),+		(TChan BSC.ByteString, TChan BSC.ByteString)) open h cs kc ca g = do 	inc <- liftBase $ atomically newTChan 	otc <- liftBase $ atomically newTChan-	((k, ns, _), g') <- (`run'` g) $ C.open h cs kc ca+	((k, ns, crt), g') <- (`run'` g) $ C.open h cs kc ca 	let	rk = kRKey k 		rmk = kRMKey k 		wk = kWKey k@@ -102,7 +105,7 @@ 				_ -> error "Network.PeyoTLS.TChan.Client.open': bad" 			Right pln = decrypt hs rk rmk sn pre enc 		liftBase . atomically $ writeTChan inc pln-	return (toCheckName ns, (inc, otc))+	return ((toCheckName ns, fromJust crt), (inc, otc))  putEncrypted :: (HandleLike h, CPRG g) => 	h -> (Hash, Int) -> BSC.ByteString -> BSC.ByteString