(* $Id: netsys_crypto.mli 2195 2015-01-01 12:23:39Z gerd $ *) (** Cryptographic providers *) (** Users should not call functions of the providers directly. Instead, use: - {!Netsys_tls} for using TLS - {!Netsys_ciphers} for using (symmetric) ciphers - {!Netsys_digests} for using digests *) val current_tls : unit -> (module Netsys_crypto_types.TLS_PROVIDER) (** Return the current TLS provider. Only available if such a provider is linked into the executable. Do this by calling the [init] function of the provider, e.g. {!Nettls_gnutls.init}. *) val current_tls_opt : unit -> (module Netsys_crypto_types.TLS_PROVIDER) option (** Same as [current_tls] but it returns [None] if TLS is unavailable *) val current_symmetric_crypto : unit -> (module Netsys_crypto_types.SYMMETRIC_CRYPTO) (** Returns the current provider for symmetric cryptography. This provider is always available, but may be empty (not implementing any ciphers). *) val current_digests : unit -> (module Netsys_crypto_types.DIGESTS) (** Returns the current provider for cryptographic digests. This provider is always available, but may be empty (not implementing any digest). *) (**/**) (* Hidden API for providers: *) val set_current_tls : (module Netsys_crypto_types.TLS_PROVIDER) -> unit (* Sets [current_tls] *) val set_current_symmetric_crypto : (module Netsys_crypto_types.SYMMETRIC_CRYPTO) -> unit val set_current_digests : (module Netsys_crypto_types.DIGESTS) -> unit