[gnutls-help] Asynchronous operation.

Carlo Wood carlo at alinoe.com
Thu Aug 8 18:07:45 CEST 2019

Maybe it will be of help to someone else when I add this in the
archives myself:

No, this is not supported by gnutls. Like so many libraries it is
egocentric based around what the library wants ("I want to write",
"I want to read") which is incompatible with event driven I/O.

If you need TLS for an event driven (truely non-blocking) application
I suggest you have a look at matrixssl. This is what I'm going to use
(see https://github.com/CarloWood/matrixssl for any commits that I
added to it).

On Sun, 4 Aug 2019 18:17:38 +0200
Carlo Wood <carlo at alinoe.com> wrote:

> Is it possible to use gnutls with a library that does all the socket
> I/O?
> Assuming TCP, data being sent and received is merely a stream.
> Shouldn't it be possible to make gnutls oblivious of network
> layers and sockets and merely put it in between a stream of data?
> Aka,
> [Application] <---> [gnutls] <---> [async I/O library]
> Where the application takes care of setting up the TCP connection
> and uses call backs from gnutls to write data an output
> buffer that the I/O library writes to a socket, while data
> from the socket is written to a buffer and from there passed
> on to gnutls.
> On the other side would then just be plain data going
> back and forth.
> If this is possible, is there client example code that uses
> this method?

Carlo Wood <carlo at alinoe.com>

More information about the Gnutls-help mailing list