packages feed

peyotls 0.0.0.14 → 0.0.0.15

raw patch · 7 files changed

+64/−6 lines, 7 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

peyotls.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.8  name:		peyotls-version:	0.0.0.14+version:	0.0.0.15 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.0.0.14+    tag:	peyotls-0.0.0.15  library     hs-source-dirs:	src
src/Network/PeyoTLS/HandshakeBase.hs view
@@ -34,6 +34,8 @@ 	HM.tGetContent_, 	HM.tlsGet_, 	HM.tGetLine_,++	HM.getInitSet, HM.setInitSet, 	) where  import Control.Applicative@@ -91,6 +93,8 @@ 	getClientFinished, setClientFinished, 	getServerFinished, setServerFinished, 	resetSequenceNumber,++	getInitSet, setInitSet, 	) import Network.PeyoTLS.Ecdsa (blindSign, generateKs) 
src/Network/PeyoTLS/HandshakeMonad.hs view
@@ -19,6 +19,8 @@ 	getServerFinished, setServerFinished,  	resetSequenceNumber,++	getInitSet, setInitSet, 	) where  import Prelude hiding (read)@@ -57,6 +59,8 @@ 	getServerFinishedT, setServerFinishedT,  	resetSequenceNumber,++	getInitSetT, setInitSetT, InitialSettings, 	)  resetSequenceNumber :: HandleLike h => TH.RW -> HandshakeM h g ()@@ -211,3 +215,9 @@ 	HandleLike h => BS.ByteString -> HandshakeM h g () setClientFinished cf = gets fst >>= lift . flip TH.setClientFinishedT cf setServerFinished cf = gets fst >>= lift . flip TH.setServerFinishedT cf++getInitSet :: HandleLike h => HandshakeM h g TH.InitialSettings+getInitSet = gets fst >>= lift . TH.getInitSetT++setInitSet :: HandleLike h => TH.InitialSettings -> HandshakeM h g ()+setInitSet is = gets fst >>= lift . flip TH.setInitSetT is
src/Network/PeyoTLS/Server.hs view
@@ -107,6 +107,7 @@ 	[(CertSecretKey, X509.CertificateChain)] -> 	Maybe X509.CertificateStore -> TlsM h g (TlsHandleS h g) open h cssv crts mcs = (TlsHandleS `liftM`) . execHandshakeM h $ do+	HB.setInitSet (cssv, crts, mcs) 	(cs, cr, cv, rn) <- clientHello $ filterCS crts cssv 	succeed cs cr cv crts mcs rn @@ -362,13 +363,14 @@ handshake :: (ValidateHandle h, CPRG g) => 	[CipherSuite] -> [(CertSecretKey, X509.CertificateChain)] -> 	Maybe X509.CertificateStore -> HandshakeM h g ()-handshake cssv crts mcs = do+handshake _cssv _crts _mcs = do+	(cssv, crts, mcs) <- HB.getInitSet 	(cs, cr, cv, rn) <- clientHello $ filterCS crts cssv 	succeed cs cr cv crts mcs rn  rehandshake :: (ValidateHandle h, CPRG g) => TlsHandle h g -> TlsM h g () rehandshake t = do-	oldHandshakeM t "" $ handshake cipherSuites certificateSets Nothing+	oldHandshakeM t "" $ handshake undefined undefined undefined 	return ()  renegotiation ::
src/Network/PeyoTLS/State.hs view
@@ -9,8 +9,11 @@ 	getReadSN, getWriteSN, succReadSN, succWriteSN, resetReadSN, resetWriteSN, 	getCipherSuite, setCipherSuite, flushCipherSuiteRead, flushCipherSuiteWrite, 	getKeys, setKeys,+	getInitSet, setInitSet, 	getClientFinished, setClientFinished, 	getServerFinished, setServerFinished,++	InitialSettings, ) where  import "monads-tf" Control.Monad.Error.Class (Error(strMsg))@@ -21,6 +24,10 @@ import qualified Data.ByteString as BS import qualified Codec.Bytable.BigEndian as B +import Network.PeyoTLS.CertSecretKey+import qualified Data.X509 as X509+import qualified Data.X509.CertificateStore as X509+ import Network.PeyoTLS.CipherSuite ( 	CipherSuite(..), KeyExchange(..), BulkEncryption(..)) @@ -43,10 +50,15 @@ 		sKeys = nullKeys, 		rBuffer = (CTNull, ""), wBuffer = (CTNull, ""), 		readSN = 0, writeSN = 0,-		rnClientFinished = "", rnServerFinished = ""+		rnClientFinished = "", rnServerFinished = "",+		initialSettings = ([], [], Nothing) 		} 	sos = states s +type InitialSettings = (+	[CipherSuite], [(CertSecretKey, X509.CertificateChain)],+	Maybe X509.CertificateStore)+ data StateOne g = StateOne { 	sKeys :: Keys, 	rBuffer :: (ContentType, BS.ByteString),@@ -54,7 +66,10 @@ 	readSN :: Word64, 	writeSN :: Word64, 	rnClientFinished :: BS.ByteString,-	rnServerFinished :: BS.ByteString+	rnServerFinished :: BS.ByteString,+	initialSettings :: (+		[CipherSuite], [(CertSecretKey, X509.CertificateChain)],+		Maybe X509.CertificateStore) 	}  getState :: PartnerId -> HandshakeState h g -> StateOne g@@ -147,6 +162,12 @@  setKeys :: PartnerId -> Keys -> Modify (HandshakeState h g) setKeys i = modifyState i . \k st -> st { sKeys = k }++getInitSet :: PartnerId -> HandshakeState h g -> InitialSettings+getInitSet i = initialSettings . fromJust' "getInitSet" . lookup i . states++setInitSet :: PartnerId -> InitialSettings -> Modify (HandshakeState h g)+setInitSet i = modifyState i . \is st -> st { initialSettings = is }  getClientFinished, getServerFinished :: 	PartnerId -> HandshakeState h g -> BS.ByteString
src/Network/PeyoTLS/TlsHandle.hs view
@@ -13,6 +13,9 @@ 	getClientFinishedT, setClientFinishedT, 	getServerFinishedT, setServerFinishedT, +	getInitSetT, setInitSetT,+	InitialSettings,+ 	resetSequenceNumber, 	) where @@ -44,6 +47,8 @@ 	PartnerId, newPartnerId, Keys(..), 	getClientFinished, setClientFinished, 	getServerFinished, setServerFinished,+	InitialSettings,+	getInitSet, setInitSet, 	) import qualified Network.PeyoTLS.CryptoTools as CT ( 	makeKeys, encrypt, decrypt, hashSha1, hashSha256, finishedHash )@@ -309,3 +314,9 @@ 	HandleLike h => TlsHandle h g -> BS.ByteString -> TlsM h g () setClientFinishedT = setClientFinished . clientId setServerFinishedT = setServerFinished . clientId++getInitSetT :: HandleLike h => TlsHandle h g -> TlsM h g InitialSettings+getInitSetT = getInitSet . clientId++setInitSetT :: HandleLike h => TlsHandle h g -> InitialSettings -> TlsM h g ()+setInitSetT = setInitSet . clientId
src/Network/PeyoTLS/TlsMonad.hs view
@@ -8,6 +8,7 @@ 		resetReadSn, resetWriteSn, 		getCipherSuiteSt, setCipherSuiteSt, 		flushCipherSuiteRead, flushCipherSuiteWrite, setKeys, getKeys,+		getInitSet, setInitSet, S.InitialSettings, 	S.Alert(..), S.AlertLevel(..), S.AlertDesc(..), 	S.ContentType(..), 	S.CipherSuite(..), S.KeyExchange(..), S.BulkEncryption(..),@@ -36,8 +37,11 @@ 	getReadSN, getWriteSN, succReadSN, succWriteSN, resetReadSN, resetWriteSN, 	getCipherSuite, setCipherSuite, 	flushCipherSuiteRead, flushCipherSuiteWrite, setKeys, getKeys,+	getInitSet, setInitSet, 	getClientFinished, setClientFinished, 	getServerFinished, setServerFinished,++	InitialSettings, 	)  type TlsM h g = ErrorT S.Alert (StateT (S.HandshakeState h g) (HandleMonad h))@@ -74,6 +78,12 @@  getKeys :: HandleLike h => S.PartnerId -> TlsM h g S.Keys getKeys = gets . S.getKeys++getInitSet :: HandleLike h => S.PartnerId -> TlsM h g S.InitialSettings+getInitSet = gets . S.getInitSet++setInitSet :: HandleLike h => S.PartnerId -> S.InitialSettings -> TlsM h g ()+setInitSet = (modify .) . S.setInitSet  getClientFinished, getServerFinished :: 	HandleLike h => S.PartnerId -> TlsM h g BS.ByteString