peyotls 0.0.0.18 → 0.0.0.19
raw patch · 3 files changed
+13/−8 lines, 3 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Network.PeyoTLS.Client: TLS_EMPTY_RENEGOTIATION_INFO_SCSV :: CipherSuite
+ Network.PeyoTLS.Server: TLS_EMPTY_RENEGOTIATION_INFO_SCSV :: CipherSuite
Files
peyotls.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8 name: peyotls-version: 0.0.0.18+version: 0.0.0.19 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.18+ tag: peyotls-0.0.0.19 library hs-source-dirs: src
src/Network/PeyoTLS/CipherSuite.hs view
@@ -12,6 +12,7 @@ data CipherSuite = CipherSuite KeyExchange BulkEncryption+ | TLS_EMPTY_RENEGOTIATION_INFO_SCSV | CipherSuiteRaw Word8 Word8 deriving (Show, Read, Eq) @@ -47,6 +48,7 @@ (0x00, 0x3c) -> CipherSuite RSA AES_128_CBC_SHA256 -- (0x00, 0x45) -> CipherSuite DHE_RSA CAMELLIA_128_CBC_SHA (0x00, 0x67) -> CipherSuite DHE_RSA AES_128_CBC_SHA256+ (0x00, 0xff) -> TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0xc0, 0x09) -> CipherSuite ECDHE_ECDSA AES_128_CBC_SHA (0xc0, 0x13) -> CipherSuite ECDHE_RSA AES_128_CBC_SHA (0xc0, 0x23) -> CipherSuite ECDHE_ECDSA AES_128_CBC_SHA256@@ -62,6 +64,7 @@ encodeCipherSuite (CipherSuite RSA AES_128_CBC_SHA256) = "\x00\x3c" -- encodeCipherSuite (CipherSuite DHE_RSA CAMELLIA_128_CBC_SHA) = "\x00\x45" encodeCipherSuite (CipherSuite DHE_RSA AES_128_CBC_SHA256) = "\x00\x67"+encodeCipherSuite TLS_EMPTY_RENEGOTIATION_INFO_SCSV = "\x00\xff" encodeCipherSuite (CipherSuite ECDHE_ECDSA AES_128_CBC_SHA) = "\xc0\x09" encodeCipherSuite (CipherSuite ECDHE_RSA AES_128_CBC_SHA) = "\xc0\x13" encodeCipherSuite (CipherSuite ECDHE_ECDSA AES_128_CBC_SHA256) = "\xc0\x23"
src/Network/PeyoTLS/Server.hs view
@@ -177,10 +177,12 @@ Just cs -> cs; _ -> CipherSuite RSA AES_128_CBC_SHA fromClientHello _ _ = error "Server.fromClientHello: bad" -getRenegoInfo :: [Extension] -> Maybe BS.ByteString-getRenegoInfo [] = Nothing-getRenegoInfo (ERenegoInfo rn : _) = Just rn-getRenegoInfo (_ : es) = getRenegoInfo es+getRenegoInfo :: [CipherSuite] -> [Extension] -> Maybe BS.ByteString+getRenegoInfo [] [] = Nothing+getRenegoInfo (TLS_EMPTY_RENEGOTIATION_INFO_SCSV : _) _ = Just ""+getRenegoInfo (_ : css) e = getRenegoInfo css e+getRenegoInfo [] (ERenegoInfo rn : _) = Just rn+getRenegoInfo [] (_ : es) = getRenegoInfo [] es clientHello :: (HandleLike h, CPRG g) => [CipherSuite] -> HandshakeM h g (CipherSuite, BS.ByteString, Version, Bool)@@ -191,7 +193,7 @@ -- let rn = True let (cf, rn) = case me of Nothing -> ("", False)- Just e -> case getRenegoInfo e of+ Just e -> case getRenegoInfo cscl e of Nothing -> ("", False) Just c -> (c, True) debug "medium" ch@@ -201,7 +203,7 @@ debug "low" "CLIENT FINISHES" debug "low" cf debug "low" cf0--- unless (cf == cf0) $ E.throwError "clientHello"+ unless (cf == cf0) $ E.throwError "clientHello" chk cv cscl cms >> return (merge cssv cscl, cr, cv, rn) where merge sv cl = case find (`elem` cl) sv of