packages feed

peyotls 0.0.0.10 → 0.0.0.11

raw patch · 6 files changed

+31/−26 lines, 6 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.10+version:	0.0.0.11 stability:	Experimental author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -272,7 +272,7 @@ source-repository	this     type:	git     location:	git://github.com/YoshikuniJujo/peyotls.git-    tag:	peyotls-0.0.0.10+    tag:	peyotls-0.0.0.11  library     hs-source-dirs:	src
src/Network/PeyoTLS/Extension.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -module Network.PeyoTLS.Extension (Extension, SignAlg(..), HashAlg(..)) where+module Network.PeyoTLS.Extension (Extension(..), SignAlg(..), HashAlg(..)) where  import Control.Applicative ((<$>), (<*>)) import Data.Bits (shiftL, (.|.))@@ -21,7 +21,7 @@ 	| ENextProtoNego BS.ByteString 	| ERenegoInfo BS.ByteString 	| ERaw EType BS.ByteString-	deriving Show+	deriving (Show, Eq)  instance B.Bytable Extension where 	encode = encodeE; decode = B.evalBytableM B.parse@@ -52,7 +52,7 @@  data EType 	= TSName         | TECurve     | TEcPFrt     | TSsnTicketTls-	| TNextProtoNego | TRenegoInfo | TRaw Word16 deriving Show+	| TNextProtoNego | TRenegoInfo | TRaw Word16 deriving (Show, Eq)  instance B.Bytable EType where 	encode TSName = B.encode (0 :: Word16)@@ -75,7 +75,7 @@ 		_ -> Left "Extension: EType.decode"  data ServerName = SNHostName BS.ByteString | SNRaw NameType BS.ByteString-	deriving Show+	deriving (Show, Eq)  instance B.Bytable ServerName where 	encode (SNHostName nm) = B.encode $ SNRaw NTHostName nm@@ -88,7 +88,7 @@ 		return $ case t of 			NTHostName -> SNHostName n; _ -> SNRaw t n -data NameType = NTHostName | NTRaw Word8 deriving Show+data NameType = NTHostName | NTRaw Word8 deriving (Show, Eq)  instance B.Bytable NameType where 	encode NTHostName = BS.pack [0]@@ -162,7 +162,7 @@ 		NamedCurve <- B.parse 		B.parse -data EcPointFormat = EPFUncompressed | EPFRaw Word8 deriving Show+data EcPointFormat = EPFUncompressed | EPFRaw Word8 deriving (Show, Eq)  instance B.Bytable EcPointFormat where 	encode EPFUncompressed = BS.pack [0]
src/Network/PeyoTLS/HandshakeBase.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings, TypeFamilies, PackageImports, 	TupleSections #-} -module Network.PeyoTLS.HandshakeBase (+module Network.PeyoTLS.HandshakeBase ( Extension(..), 	PeyotlsM, PeyotlsHandle, 	debug, generateKs, blindSign, CertSecretKey(..), 	HM.TlsM, HM.run, HM.HandshakeM, HM.execHandshakeM,@@ -51,7 +51,7 @@ import qualified Crypto.PubKey.ECC.Prim as ECC import qualified Crypto.Types.PubKey.ECDSA as ECDSA -import Network.PeyoTLS.HandshakeType (+import Network.PeyoTLS.HandshakeType ( Extension(..), 	Handshake, HandshakeItem(..), 	ClientHello(..), ServerHello(..), SessionId(..), 		CipherSuite(..), KeyExchange(..), BulkEncryption(..),@@ -81,7 +81,7 @@ debug :: (HandleLike h, Show a) => a -> HM.HandshakeM h g () debug x = do 	h <- gets $ HM.tlsHandle . fst-	lift . lift . lift . hlDebug h "moderate" . BSC.pack . (++ "\n") $ show x+	lift . lift . lift . hlDebug h "critical" . BSC.pack . (++ "\n") $ show x  readHandshake :: (HandleLike h, CPRG g, HandshakeItem hi) => HM.HandshakeM h g hi readHandshake = do
src/Network/PeyoTLS/HandshakeType.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -module Network.PeyoTLS.HandshakeType (+module Network.PeyoTLS.HandshakeType ( Extension(..), 	Handshake, HandshakeItem(..), 	ClientHello(..), ServerHello(..), SessionId(..), 		CipherSuite(..), KeyExchange(..), BulkEncryption(..),@@ -22,7 +22,7 @@ import qualified Crypto.PubKey.DH as DH import qualified Crypto.Types.PubKey.ECC as ECC -import Network.PeyoTLS.Hello (+import Network.PeyoTLS.Hello ( Extension(..), 	ClientHello(..), ServerHello(..), SessionId(..), 	CipherSuite(..), KeyExchange(..), BulkEncryption(..), 	CompressionMethod(..), HashAlg(..), SignAlg(..) )
src/Network/PeyoTLS/Hello.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} -module Network.PeyoTLS.Hello (+module Network.PeyoTLS.Hello ( Extension(..), 	ClientHello(..), ServerHello(..), SessionId(..), 		CipherSuite(..), KeyExchange(..), BulkEncryption(..), 		CompressionMethod(..),@@ -13,7 +13,7 @@ import qualified Data.ByteString as BS import qualified Codec.Bytable.BigEndian as B -import Network.PeyoTLS.Extension (Extension, SignAlg(..), HashAlg(..))+import Network.PeyoTLS.Extension (Extension(..), SignAlg(..), HashAlg(..)) import Network.PeyoTLS.CipherSuite ( 	CipherSuite(..), KeyExchange(..), BulkEncryption(..)) 
src/Network/PeyoTLS/Server.hs view
@@ -30,7 +30,7 @@ import qualified Crypto.Types.PubKey.ECDSA as ECDSA import qualified Crypto.PubKey.ECC.ECDSA as ECDSA -import Network.PeyoTLS.HandshakeBase (+import Network.PeyoTLS.HandshakeBase ( debug, Extension(..), 	PeyotlsM, PeyotlsHandle, 	TlsM, run, HandshakeM, execHandshakeM, withRandom, randomByteString, 	TlsHandle, names,@@ -79,8 +79,8 @@ 	[(CertSecretKey, X509.CertificateChain)] -> 	Maybe X509.CertificateStore -> TlsM h g (TlsHandle h g) open h cssv crts mcs = execHandshakeM h $ do-	(cs@(CipherSuite ke be), cr, cv) <- clientHello $ filterCS crts cssv-	sr <- serverHello cs rcc ecc+	(cs@(CipherSuite ke be), cr, cv, rn) <- clientHello $ filterCS crts cssv+	sr <- serverHello cs rcc ecc rn 	setCipherSuite cs 	ha <- case be of 		AES_128_CBC_SHA -> return Sha1@@ -128,10 +128,13 @@ 		`ap` dhClientKeyExchange dp sv rs  clientHello :: (HandleLike h, CPRG g) =>-	[CipherSuite] -> HandshakeM h g (CipherSuite, BS.ByteString, Version)+	[CipherSuite] -> HandshakeM h g (CipherSuite, BS.ByteString, Version, Bool) clientHello cssv = do-	ClientHello cv cr _sid cscl cms _ <- readHandshake-	chk cv cscl cms >> return (merge cssv cscl, cr, cv)+	ClientHello cv cr _sid cscl cms e <- readHandshake+	debug e+	let rn = maybe False (ERenegoInfo "" `elem`) e+	debug rn+	chk cv cscl cms >> return (merge cssv cscl, cr, cv, rn) 	where 	merge sv cl = case find (`elem` cl) sv of 		Just cs -> cs; _ -> CipherSuite RSA AES_128_CBC_SHA@@ -150,15 +153,17 @@ 		where pmsg = "TlsServer.clientHello: "  serverHello :: (HandleLike h, CPRG g) => CipherSuite ->-	X509.CertificateChain -> X509.CertificateChain ->+	X509.CertificateChain -> X509.CertificateChain -> Bool -> 	HandshakeM h g BS.ByteString-serverHello cs@(CipherSuite ke _) rcc ecc = do+serverHello cs@(CipherSuite ke _) rcc ecc rn = do 	sr <- randomByteString 32-	writeHandshake $ ServerHello-		version sr (SessionId "") cs CompressionMethodNull Nothing+	writeHandshake . ServerHello+		version sr (SessionId "") cs CompressionMethodNull $ if rn+			then Just [ERenegoInfo ""]+			else Nothing 	writeHandshake $ case ke of ECDHE_ECDSA -> ecc; _ -> rcc 	return sr-serverHello _ _ _ = E.throwError "TlsServer.serverHello: never occur"+serverHello _ _ _ _ = E.throwError "TlsServer.serverHello: never occur"  serverKeyExchange :: (HandleLike h, CPRG g, SecretKey sk, 		DhParam dp, B.Bytable dp, B.Bytable (Public dp)) =>