peyotls 0.1.6.0 → 0.1.6.1
raw patch · 2 files changed
+19/−5 lines, 2 filesdep ~crypto-pubkeyPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: crypto-pubkey
API changes (from Hackage documentation)
Files
- peyotls.cabal +2/−2
- src/Network/PeyoTLS/TChan/Server.hs +17/−3
peyotls.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8 name: peyotls-version: 0.1.6.0+version: 0.1.6.1 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.6.0+ tag: peyotls-0.1.6.1 library hs-source-dirs: src
src/Network/PeyoTLS/TChan/Server.hs view
@@ -42,6 +42,8 @@ rmk = kRMKey k wk = kWKey k wmk = kWMKey k+ CipherSuite _ rcs = kRCSuite k+ CipherSuite _ wcs = kWCSuite k _ <- liftBaseDiscard forkIO . (`evalStateT` 1) . forever $ do sn <- get@@ -51,15 +53,27 @@ lift (hlClose h) >> error "bad" Right n <- B.decode <$> lift (hlGet h 2) renc <- lift $ hlGet h n- let Right rpln = decrypt sha1 rk rmk sn pre renc+ let hs = case rcs of+ AES_128_CBC_SHA -> sha1+ AES_128_CBC_SHA256 -> sha256+ _ -> error "Network.PeyoTLS.TChan.Server.open: bad"+ rpln = case decrypt hs rk rmk sn pre renc of+ Right r -> r+ Left l -> error $+ "Network.PeyoTLS.TChan.Server.open: "+ ++ show l liftBase . atomically $ writeTChan inc rpln _ <- liftBaseDiscard forkIO . (`evalStateT` (1, g')) . forever $ do (sn, g0) <- get wpln <- liftBase . atomically $ readTChan otc- let (wenc, g1) =- encrypt sha1 wk wmk sn "\ETB\ETX\ETX" wpln g0+ let hs = case wcs of+ AES_128_CBC_SHA -> sha1+ AES_128_CBC_SHA256 -> sha256+ _ -> error "Network.PeyoTLS.TChan.Server.open: bad"+ (wenc, g1) =+ encrypt hs wk wmk sn "\ETB\ETX\ETX" wpln g0 put (succ sn, g1) lift $ hlPut h "\ETB\ETX\ETX" lift . hlPut h