Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type hmac_key = Cstruct.t
type 'k stream_state = {
cipher : (module Mirage_crypto.Cipher_stream.S with type key = 'k);
cipher_secret : 'k;
hmac : Mirage_crypto.Hash.hash;
hmac_secret : hmac_key;
}
val iv_mode_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> iv_mode
val sexp_of_iv_mode : iv_mode -> Ppx_sexp_conv_lib.Sexp.t
type 'k cbc_cipher =
(module Mirage_crypto.Cipher_block.S.CBC
with type key = 'k)
type 'k cbc_state = {
cipher : 'k cbc_cipher;
cipher_secret : 'k;
iv_mode : iv_mode;
hmac : Mirage_crypto.Hash.hash;
hmac_secret : hmac_key;
}
type nonce = Cstruct.t
type 'k aead_cipher =
| CCM of (module Mirage_crypto.Cipher_block.S.CCM with type key = 'k)
| GCM of (module Mirage_crypto.Cipher_block.S.GCM with type key = 'k)
type cipher_st =
| Stream : 'k stream_state -> cipher_st
| CBC : 'k cbc_state -> cipher_st
| AEAD : 'k aead_state -> cipher_st
val sexp_of_cipher_st : cipher_st -> Sexplib.Sexp.t
val cipher_st_of_sexp : Sexplib0.Sexp.t -> 'a
val crypto_context_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> crypto_context
val sexp_of_crypto_context : crypto_context -> Ppx_sexp_conv_lib.Sexp.t
type hs_log = Cstruct_sexp.t list
val hs_log_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> hs_log
val sexp_of_hs_log : hs_log -> Ppx_sexp_conv_lib.Sexp.t
type reneg_params = Cstruct_sexp.t * Cstruct_sexp.t
val reneg_params_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> reneg_params
val sexp_of_reneg_params : reneg_params -> Ppx_sexp_conv_lib.Sexp.t
type session_data = {
server_random : Cstruct_sexp.t;
client_random : Cstruct_sexp.t;
client_version : Core.tls_any_version;
ciphersuite : Ciphersuite.ciphersuite;
peer_certificate_chain : Core.Cert.t list;
peer_certificate : Core.Cert.t option;
trust_anchor : Core.Cert.t option;
received_certificates : Core.Cert.t list;
own_certificate : Core.Cert.t list;
own_private_key : Mirage_crypto_pk.Rsa.priv option;
master_secret : Core.master_secret;
renegotiation : reneg_params;
own_name : string option;
client_auth : bool;
session_id : Cstruct_sexp.t;
extended_ms : bool;
alpn_protocol : string option;
}
val session_data_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> session_data
val sexp_of_session_data : session_data -> Ppx_sexp_conv_lib.Sexp.t
type server_handshake_state =
| AwaitClientHello
| AwaitClientHelloRenegotiate
| AwaitClientCertificate_RSA of session_data * hs_log
| AwaitClientCertificate_DHE_RSA of session_data
* Mirage_crypto_pk.Dh.secret
* hs_log
| AwaitClientKeyExchange_RSA of session_data * hs_log
| AwaitClientKeyExchange_DHE_RSA of session_data
* Mirage_crypto_pk.Dh.secret
* hs_log
| AwaitClientCertificateVerify of session_data
* crypto_context
* crypto_context
* hs_log
| AwaitClientChangeCipherSpec of session_data
* crypto_context
* crypto_context
* hs_log
| AwaitClientChangeCipherSpecResume of session_data
* crypto_context
* Cstruct_sexp.t
* hs_log
| AwaitClientFinished of session_data * hs_log
| AwaitClientFinishedResume of session_data * Cstruct_sexp.t * hs_log
| Established
val server_handshake_state_of_sexp :
Ppx_sexp_conv_lib.Sexp.t ->
server_handshake_state
val sexp_of_server_handshake_state :
server_handshake_state ->
Ppx_sexp_conv_lib.Sexp.t
type client_handshake_state =
| ClientInitial
| AwaitServerHello of Core.client_hello * hs_log
| AwaitServerHelloRenegotiate of session_data * Core.client_hello * hs_log
| AwaitCertificate_RSA of session_data * hs_log
| AwaitCertificate_DHE_RSA of session_data * hs_log
| AwaitServerKeyExchange_DHE_RSA of session_data * hs_log
| AwaitCertificateRequestOrServerHelloDone of session_data
* Cstruct_sexp.t
* Cstruct_sexp.t
* hs_log
| AwaitServerHelloDone of session_data
* (Ciphersuite.H.t * Packet.signature_algorithm_type) list option
* Cstruct_sexp.t
* Cstruct_sexp.t
* hs_log
| AwaitServerChangeCipherSpec of session_data
* crypto_context
* Cstruct_sexp.t
* hs_log
| AwaitServerChangeCipherSpecResume of session_data
* crypto_context
* crypto_context
* hs_log
| AwaitServerFinished of session_data * Cstruct_sexp.t * hs_log
| AwaitServerFinishedResume of session_data * hs_log
| Established
val client_handshake_state_of_sexp :
Ppx_sexp_conv_lib.Sexp.t ->
client_handshake_state
val sexp_of_client_handshake_state :
client_handshake_state ->
Ppx_sexp_conv_lib.Sexp.t
val handshake_machina_state_of_sexp :
Ppx_sexp_conv_lib.Sexp.t ->
handshake_machina_state
val sexp_of_handshake_machina_state :
handshake_machina_state ->
Ppx_sexp_conv_lib.Sexp.t
type handshake_state = {
session : session_data list;
protocol_version : Core.tls_version;
machina : handshake_machina_state;
config : Config.config;
hs_fragment : Cstruct_sexp.t;
}
val handshake_state_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> handshake_state
val sexp_of_handshake_state : handshake_state -> Ppx_sexp_conv_lib.Sexp.t
type crypto_state = crypto_context option
val crypto_state_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> crypto_state
val sexp_of_crypto_state : crypto_state -> Ppx_sexp_conv_lib.Sexp.t
type record = Packet.content_type * Cstruct_sexp.t
val record_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> record
val sexp_of_record : record -> Ppx_sexp_conv_lib.Sexp.t
type handshake_return = handshake_state * rec_resp list
type state = {
handshake : handshake_state;
decryptor : crypto_state;
encryptor : crypto_state;
fragment : Cstruct_sexp.t;
}
val state_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> state
val sexp_of_state : state -> Ppx_sexp_conv_lib.Sexp.t
module V_err : sig ... end
type error = [
| `AuthenticationFailure of V_err.t
| `NoConfiguredCiphersuite of Ciphersuite.ciphersuite list
| `NoConfiguredVersion of Core.tls_version
| `NoConfiguredHash of Ciphersuite.H.t list
| `NoMatchingCertificateFound of string
| `NoCertificateConfigured
| `CouldntSelectCertificate
]
val __error_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> error
val error_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> error
val sexp_of_error : error -> Ppx_sexp_conv_lib.Sexp.t
type fatal = [
| `NoSecureRenegotiation
| `NoCiphersuite of Packet.any_ciphersuite list
| `NoVersion of Core.tls_any_version
| `ReaderError of Reader.error
| `NoCertificateReceived
| `NotRSACertificate
| `NotRSASignature
| `KeyTooSmall
| `RSASignatureMismatch
| `RSASignatureVerificationFailed
| `HashAlgorithmMismatch
| `BadCertificateChain
| `MACMismatch
| `MACUnderflow
| `RecordOverflow of int
| `UnknownRecordVersion of int * int
| `UnknownContentType of int
| `CannotHandleApplicationDataYet
| `NoHeartbeat
| `BadRecordVersion of Core.tls_any_version
| `BadFinished
| `HandshakeFragmentsNotEmpty
| `InvalidDH
| `InvalidRenegotiation
| `InvalidClientHello
| `InvalidServerHello
| `InvalidRenegotiationVersion of Core.tls_version
| `InappropriateFallback
| `UnexpectedCCS
| `UnexpectedHandshake of Core.tls_handshake
| `InvalidCertificateUsage
| `InvalidCertificateExtendedUsage
| `InvalidSession
| `NoApplicationProtocol
]
val __fatal_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> fatal
val fatal_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> fatal
val sexp_of_fatal : fatal -> Ppx_sexp_conv_lib.Sexp.t
val __failure_of_sexp__ : Ppx_sexp_conv_lib.Sexp.t -> failure
val failure_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> failure
val sexp_of_failure : failure -> Ppx_sexp_conv_lib.Sexp.t
type 'a eff = 'a t