# Module Nettls_gnutls

    module Nettls_gnutls: sig .. end

GnuTLS

    module type GNUTLS_PROVIDER = sig .. end

    module type GNUTLS_ENDPOINT = sig .. end

    val make_tls : (module Netsys_crypto_types.TLS_EXCEPTIONS) ->
           (module Nettls_gnutls.GNUTLS_PROVIDER)

The implementation of TLS backed by GnuTLS, here for an arbitrary TLS_EXCEPTIONS module

    module GNUTLS: GNUTLS_PROVIDER

The implementation of TLS backed by GnuTLS, here using `Netsys_types` as TLS_EXCEPTIONS module

    module TLS: Netsys_crypto_types.TLS_PROVIDER

Same as `GNUTLS`, but without the extra `gnutls_*` functions

    val gnutls : (module Nettls_gnutls.GNUTLS_PROVIDER)

The implementation of TLS backed by GnuTLS, as value

    val tls : (module Netsys_crypto_types.TLS_PROVIDER)

The implementation of TLS backed by GnuTLS, as value

    val endpoint : GNUTLS.endpoint -> (module Nettls_gnutls.GNUTLS_ENDPOINT)

Wraps an endpoint

    val downcast : (module Netsys_crypto_types.TLS_PROVIDER) ->
           (module Nettls_gnutls.GNUTLS_PROVIDER)

Attempts a downcast, or raises `Not_found`

    val downcast_endpoint : (module Netsys_crypto_types.TLS_ENDPOINT) ->
           (module Nettls_gnutls.GNUTLS_ENDPOINT)

Attempts a downcast, or raises `Not_found`

    module Symmetric_crypto: Netsys_crypto_types.SYMMETRIC_CRYPTO

Symmetric cryptography as provided by GnuTLS and its helper library Nettle

    module Digests: Netsys_crypto_types.DIGESTS

Cryptographic digests

    val init : unit -> unit

Ensure that GnuTLS is initialized