[Haskell-cafe] TLS Handshake fails with 'invalid header type: 1\nFrom:\theader\n\n"'

Reto Hablützel rethab at rethab.ch
Sun Mar 30 16:02:47 UTC 2014


I'm trying to a establish a TLS connection with the hs-tls library. I got
most of the code from the Stunnel.hs, but what I am trying do here is to be
able to pass either 'Client' or 'Server' as argument and then, depending on
which one it is, act as either one in the handshake.

This is the code, that tries to make the handshake:
client :: Socket -> IO ()
client sock = do addr <- sockaddr
                 _ <- connect sock addr
                 ctx <- myCCtx sock
                 contextHookSetLogging ctx logging
                 handshake ctx

server :: Socket -> IO ()
server sock = do sockaddr >>= bind sock
                 listen sock 1
                 (peer, _) <- accept sock
                 ctx <- mySCtx peer
                 contextHookSetLogging ctx logging
                 handshake ctx

The rest of it would probably too much to fit into an email, so I am
linking it from here: http://lpaste.net/102014

When I run it, the client fails to parse the handshake:
Error_Packet_Parsing "Failed reading: invalid header type:

Whereas the server says 'server hello done' right before it receives the
alert from the client.

How can this happen? That 'From:\theader...' doesn't even exist as a string
in the hs-tls library.. Is there anywhere an example for the hs-tls library
with a client as well as a server?

Thanks a lot!

- Reto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140330/684e403a/attachment.html>

More information about the Haskell-Cafe mailing list