Ada bindings for libtls
Bump version to 2.5.2
Server_Example: Demonstrate reading of client certificates
TLS.Contexts.{Server,Client}: Force TLS handshake after connecting to peer



You can also use your local clone with git send-email.

#TLSAda — Ada bindings to libtls

builds.sr.ht status license: MPL-2.0 Alire

Thick Ada bindings to libtls, "a new TLS library, designed to make it easier to write foolproof applications". It supports any libtls installation, both the libtls provided by LibreSSL and the OpenSSL port LibreTLS.

These bindings mirror the philosophy of libtls:

  • As easy to use as possible.
  • Safe and secure by default.
  • Consistent, obvious and well documented.


See the package specifications, which have copious doc comments:

Also see the example programs:

As well as the thick library, thin bindings to the entire libtls library are also available: libTLS_Bindings


Use Alire: alr with tlsada, then with "tlsada.gpr"; in your GPRBuild file.

Alternately, add this repo as a subtree or submodule in your project and include with "path/to/tlsada.gpr"; in your GPRbuild file.

You may also install the library & specification in a system library directory and include it from there.



  • GPRbuild
  • An Ada 2012 compiler and standard library
  • libTLS provider such as LibreSSL or LibreTLS.
  • An implementation of GNAT.Sockets
  • POSIX-compatible make(1) (optional). Most makes (including GNU Make and BSD Make) support the POSIX standard.


git clone https://git.sr.ht/~nytpu/tlsada && cd tlsada
make example # builds example programs
sudo make install

You may also use plain gprbuild and gprinstall commands rather than the convenience makefile.


The upstream URL of this project is https://git.sr.ht/~nytpu/tlsada. Send suggestions, bugs, patches, and other contributions to ~nytpu/public-inbox@lists.sr.ht. For help sending a patch through email, see https://git-send-email.io. You can browse the list archives at https://lists.sr.ht/~nytpu/public-inbox.

If you have a very large set of changes, please use git request-pull rather than sending a large patchset.

Copyright (C) 2022 nytpu <alex [at] nytpu.com>.

Licensed under the terms of the Mozilla Public License version 2.0. You can view a copy of the MPL in LICENSE or at https://www.mozilla.org/en-US/MPL/2.0/.