Simple interface to TLS secured network sockets.

Latest on Hackage:0.4

See all snapshots network-simple-tls appears in

BSD-3-Clause licensed by Renzo Carbonara
Maintained by renλ

Module documentation for 0.3.2

This version can be pinned in stack with:network-simple-tls-0.3.2@sha256:ba1e6f612696b20fba6bcd9bce258e608c55b279c60058c3c38e06119039ebd1,1277


Build Status

Haskell library simplifying the useage of TLS secured network connections. Currently, only TCP sockets are supported. This package aims to be similar and compatible with the network-simple package.

Check the source or rendered Haddocks for extensive documentation.

This code is licensed under the terms of the so called 3-clause BSD license. Read the file named LICENSE found in this same directory for details.

See the PEOPLE file to learn about the people involved in this effort.


Version 0.3.2

  • Added sendLazy.

  • Fixed space leak on recv. See issue #13.

Version 0.3.1

  • Added SOCKS5 proxy support. See functions connectOverSOCKS5 and connectTlsOverSOCKS5.

  • Use safe-exceptions.

Version 0.3

  • BREAKING CHANGE: Changed type of the following functions: getDefaultClientSettings, makeClientSettings, updateClientParams, clientParams, makeServerSettings, updateServerParams, serverParams.

  • BREAKING CHANGE: Only TLS 1.1 and TLS 1.2 are supported by default.

  • Server’s choice of ciphers are always prefered over client’s.

  • Server code will mandate strong cipher requirements, client code will be more permissive.

  • Compatible with tls-1.4

  • Remove upper bounds for all dependencies except base.

Version 0.2.1

  • Ensure that the Socket TLS backend always receive the expected number of bytes. This issue showed up as the following exception previously:

    Error_Packet "partial packet: expecting 100 bytes, got: 6"

Version 0.2.0

  • Re-export Socket, SockAddr, HostName and ServiceName from Network.Socket at Network.Simple.TCP.TLS.

  • Re-export Context from Network.TLS at Network.Simple.TCP.TLS.

  • Generalize the IO monad by using MonadIO and MonadCatch (from the exceptions library).

  • Added makeClientContext, makeServerContext and useTlsThenClose.

  • Use Socket as a TLS backend instead of Handle.

  • Drop dependency on monad-random-api in favour of monad-random.

  • Dependency bumps.


  • Export ‘Network.Socket.withSocketsDo’ from ‘Network.Simple.TCP.TLS’.


  • Dependency bumps.


  • First release.