= 1024" x-on:close-sidebar="sidebar=window.innerWidth >= 1024 && true">
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Magic numbers of the TLS protocol.
val get_uint24_len : Cstruct.t -> int
val set_uint24_len : Cstruct.t -> int -> unit
val int_to_content_type : int -> content_type option
val content_type_to_int : content_type -> int
val compare_content_type : content_type -> content_type -> int
val content_type_to_string : content_type -> string
val string_to_content_type : string -> content_type option
val sexp_of_content_type : content_type -> Sexplib.Sexp.t
val content_type_of_sexp : Sexplib.Sexp.t -> content_type
val int_to_alert_level : int -> alert_level option
val alert_level_to_int : alert_level -> int
val compare_alert_level : alert_level -> alert_level -> int
val alert_level_to_string : alert_level -> string
val string_to_alert_level : string -> alert_level option
val sexp_of_alert_level : alert_level -> Sexplib.Sexp.t
val alert_level_of_sexp : Sexplib.Sexp.t -> alert_level
type alert_type =
| CLOSE_NOTIFY
| UNEXPECTED_MESSAGE
| BAD_RECORD_MAC
| DECRYPTION_FAILED
| RECORD_OVERFLOW
| DECOMPRESSION_FAILURE
| HANDSHAKE_FAILURE
| NO_CERTIFICATE_RESERVED
| BAD_CERTIFICATE
| UNSUPPORTED_CERTIFICATE
| CERTIFICATE_REVOKED
| CERTIFICATE_EXPIRED
| CERTIFICATE_UNKNOWN
| ILLEGAL_PARAMETER
| UNKNOWN_CA
| ACCESS_DENIED
| DECODE_ERROR
| DECRYPT_ERROR
| EXPORT_RESTRICTION_RESERVED
| PROTOCOL_VERSION
| INSUFFICIENT_SECURITY
| INTERNAL_ERROR
| INAPPROPRIATE_FALLBACK
| USER_CANCELED
| NO_RENEGOTIATION
| MISSING_EXTENSION
| UNSUPPORTED_EXTENSION
| CERTIFICATE_UNOBTAINABLE
| UNRECOGNIZED_NAME
| BAD_CERTIFICATE_STATUS_RESPONSE
| BAD_CERTIFICATE_HASH_VALUE
| UNKNOWN_PSK_IDENTITY
| CERTIFICATE_REQUIRED
| NO_APPLICATION_PROTOCOL
val int_to_alert_type : int -> alert_type option
val alert_type_to_int : alert_type -> int
val compare_alert_type : alert_type -> alert_type -> int
val alert_type_to_string : alert_type -> string
val string_to_alert_type : string -> alert_type option
val sexp_of_alert_type : alert_type -> Sexplib.Sexp.t
val alert_type_of_sexp : Sexplib.Sexp.t -> alert_type
type handshake_type =
| HELLO_REQUEST
| CLIENT_HELLO
| SERVER_HELLO
| HELLO_VERIFY_REQUEST
| SESSION_TICKET
| END_OF_EARLY_DATA
| ENCRYPTED_EXTENSIONS
| CERTIFICATE
| SERVER_KEY_EXCHANGE
| CERTIFICATE_REQUEST
| SERVER_HELLO_DONE
| CERTIFICATE_VERIFY
| CLIENT_KEY_EXCHANGE
| FINISHED
| CERTIFICATE_URL
| CERTIFICATE_STATUS
| SUPPLEMENTAL_DATA
| KEY_UPDATE
| MESSAGE_HASH
val int_to_handshake_type : int -> handshake_type option
val handshake_type_to_int : handshake_type -> int
val compare_handshake_type : handshake_type -> handshake_type -> int
val handshake_type_to_string : handshake_type -> string
val string_to_handshake_type : string -> handshake_type option
val sexp_of_handshake_type : handshake_type -> Sexplib.Sexp.t
val handshake_type_of_sexp : Sexplib.Sexp.t -> handshake_type
val int_to_client_certificate_type : int -> client_certificate_type option
val client_certificate_type_to_int : client_certificate_type -> int
val compare_client_certificate_type :
client_certificate_type ->
client_certificate_type ->
int
val client_certificate_type_to_string : client_certificate_type -> string
val string_to_client_certificate_type :
string ->
client_certificate_type option
val sexp_of_client_certificate_type : client_certificate_type -> Sexplib.Sexp.t
val client_certificate_type_of_sexp : Sexplib.Sexp.t -> client_certificate_type
val int_to_compression_method : int -> compression_method option
val compression_method_to_int : compression_method -> int
val compare_compression_method :
compression_method ->
compression_method ->
int
val compression_method_to_string : compression_method -> string
val string_to_compression_method : string -> compression_method option
val sexp_of_compression_method : compression_method -> Sexplib.Sexp.t
val compression_method_of_sexp : Sexplib.Sexp.t -> compression_method
type extension_type =
| SERVER_NAME
| MAX_FRAGMENT_LENGTH
| CLIENT_CERTIFICATE_URL
| TRUSTED_CA_KEYS
| TRUNCATED_HMAC
| STATUS_REQUEST
| USER_MAPPING
| CLIENT_AUTHZ
| SERVER_AUTHZ
| CERT_TYPE
| SUPPORTED_GROUPS
| EC_POINT_FORMATS
| SRP
| SIGNATURE_ALGORITHMS
| USE_SRTP
| HEARTBEAT
| APPLICATION_LAYER_PROTOCOL_NEGOTIATION
| STATUS_REQUEST_V2
| SIGNED_CERTIFICATE_TIMESTAMP
| CLIENT_CERTIFICATE_TYPE
| SERVER_CERTIFICATE_TYPE
| PADDING
| ENCRYPT_THEN_MAC
| EXTENDED_MASTER_SECRET
| TOKEN_BINDING
| CACHED_INFO
| TLS_LTS
| COMPRESSED_CERTIFICATE
| RECORD_SIZE_LIMIT
| PWD_PROTECT
| PWD_CLEAR
| PASSWORD_SALT
| SESSION_TICKET
| PRE_SHARED_KEY
| EARLY_DATA
| SUPPORTED_VERSIONS
| COOKIE
| PSK_KEY_EXCHANGE_MODES
| CERTIFICATE_AUTHORITIES
| OID_FILTERS
| POST_HANDSHAKE_AUTH
| SIGNATURE_ALGORITHMS_CERT
| KEY_SHARE
| RENEGOTIATION_INFO
| DRAFT_SUPPORT
val int_to_extension_type : int -> extension_type option
val extension_type_to_int : extension_type -> int
val compare_extension_type : extension_type -> extension_type -> int
val extension_type_to_string : extension_type -> string
val string_to_extension_type : string -> extension_type option
val sexp_of_extension_type : extension_type -> Sexplib.Sexp.t
val extension_type_of_sexp : Sexplib.Sexp.t -> extension_type
val int_to_max_fragment_length : int -> max_fragment_length option
val max_fragment_length_to_int : max_fragment_length -> int
val compare_max_fragment_length :
max_fragment_length ->
max_fragment_length ->
int
val max_fragment_length_to_string : max_fragment_length -> string
val string_to_max_fragment_length : string -> max_fragment_length option
val sexp_of_max_fragment_length : max_fragment_length -> Sexplib.Sexp.t
val max_fragment_length_of_sexp : Sexplib.Sexp.t -> max_fragment_length
val int_to_psk_key_exchange_mode : int -> psk_key_exchange_mode option
val psk_key_exchange_mode_to_int : psk_key_exchange_mode -> int
val compare_psk_key_exchange_mode :
psk_key_exchange_mode ->
psk_key_exchange_mode ->
int
val psk_key_exchange_mode_to_string : psk_key_exchange_mode -> string
val string_to_psk_key_exchange_mode : string -> psk_key_exchange_mode option
val sexp_of_psk_key_exchange_mode : psk_key_exchange_mode -> Sexplib.Sexp.t
val psk_key_exchange_mode_of_sexp : Sexplib.Sexp.t -> psk_key_exchange_mode
type signature_alg =
| RSA_PKCS1_MD5
| RSA_PKCS1_SHA1
| RSA_PKCS1_SHA224
| RSA_PKCS1_SHA256
| RSA_PKCS1_SHA384
| RSA_PKCS1_SHA512
| ECDSA_SECP256R1_SHA1
| ECDSA_SECP256R1_SHA256
| ECDSA_SECP384R1_SHA384
| ECDSA_SECP521R1_SHA512
| RSA_PSS_RSAENC_SHA256
| RSA_PSS_RSAENC_SHA384
| RSA_PSS_RSAENC_SHA512
| ED25519
| ED448
| RSA_PSS_PSS_SHA256
| RSA_PSS_PSS_SHA384
| RSA_PSS_PSS_SHA512
val int_to_signature_alg : int -> signature_alg option
val signature_alg_to_int : signature_alg -> int
val compare_signature_alg : signature_alg -> signature_alg -> int
val signature_alg_to_string : signature_alg -> string
val string_to_signature_alg : string -> signature_alg option
val sexp_of_signature_alg : signature_alg -> Sexplib.Sexp.t
val signature_alg_of_sexp : Sexplib.Sexp.t -> signature_alg
val to_signature_alg :
[< `ECDSA_SECP256R1_SHA1
| `ECDSA_SECP256R1_SHA256
| `ECDSA_SECP384R1_SHA384
| `ECDSA_SECP521R1_SHA512
| `ED25519
| `RSA_PKCS1_MD5
| `RSA_PKCS1_SHA1
| `RSA_PKCS1_SHA224
| `RSA_PKCS1_SHA256
| `RSA_PKCS1_SHA384
| `RSA_PKCS1_SHA512
| `RSA_PSS_RSAENC_SHA256
| `RSA_PSS_RSAENC_SHA384
| `RSA_PSS_RSAENC_SHA512 ] ->
signature_alg
val of_signature_alg :
signature_alg ->
[> `ECDSA_SECP256R1_SHA1
| `ECDSA_SECP256R1_SHA256
| `ECDSA_SECP384R1_SHA384
| `ECDSA_SECP521R1_SHA512
| `ED25519
| `RSA_PKCS1_MD5
| `RSA_PKCS1_SHA1
| `RSA_PKCS1_SHA224
| `RSA_PKCS1_SHA256
| `RSA_PKCS1_SHA384
| `RSA_PKCS1_SHA512
| `RSA_PSS_RSAENC_SHA256
| `RSA_PSS_RSAENC_SHA384
| `RSA_PSS_RSAENC_SHA512 ]
option
val int_to_ec_curve_type : int -> ec_curve_type option
val ec_curve_type_to_int : ec_curve_type -> int
val compare_ec_curve_type : ec_curve_type -> ec_curve_type -> int
val ec_curve_type_to_string : ec_curve_type -> string
val string_to_ec_curve_type : string -> ec_curve_type option
val sexp_of_ec_curve_type : ec_curve_type -> Sexplib.Sexp.t
val ec_curve_type_of_sexp : Sexplib.Sexp.t -> ec_curve_type
val int_to_named_group : int -> named_group option
val named_group_to_int : named_group -> int
val compare_named_group : named_group -> named_group -> int
val named_group_to_string : named_group -> string
val string_to_named_group : string -> named_group option
val sexp_of_named_group : named_group -> Sexplib.Sexp.t
val named_group_of_sexp : Sexplib.Sexp.t -> named_group
type any_ciphersuite =
| TLS_NULL_WITH_NULL_NULL
| TLS_RSA_WITH_NULL_MD5
| TLS_RSA_WITH_NULL_SHA
| TLS_RSA_WITH_IDEA_CBC_SHA
| TLS_RSA_WITH_DES_CBC_SHA
| TLS_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_DH_DSS_WITH_DES_CBC_SHA
| TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
| TLS_DH_RSA_WITH_DES_CBC_SHA
| TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_DHE_DSS_WITH_DES_CBC_SHA
| TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
| TLS_DHE_RSA_WITH_DES_CBC_SHA
| TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_DH_anon_WITH_DES_CBC_SHA
| TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
| RESERVED_SSL3_1
| RESERVED_SSL3_2
| TLS_PSK_WITH_NULL_SHA
| TLS_DHE_PSK_WITH_NULL_SHA
| TLS_RSA_PSK_WITH_NULL_SHA
| TLS_RSA_WITH_AES_128_CBC_SHA
| TLS_DH_DSS_WITH_AES_128_CBC_SHA
| TLS_DH_RSA_WITH_AES_128_CBC_SHA
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA
| TLS_DH_anon_WITH_AES_128_CBC_SHA
| TLS_RSA_WITH_AES_256_CBC_SHA
| TLS_DH_DSS_WITH_AES_256_CBC_SHA
| TLS_DH_RSA_WITH_AES_256_CBC_SHA
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA
| TLS_DH_anon_WITH_AES_256_CBC_SHA
| TLS_RSA_WITH_NULL_SHA256
| TLS_RSA_WITH_AES_128_CBC_SHA256
| TLS_RSA_WITH_AES_256_CBC_SHA256
| TLS_DH_DSS_WITH_AES_128_CBC_SHA256
| TLS_DH_RSA_WITH_AES_128_CBC_SHA256
| TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
| TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
| TLS_DH_DSS_WITH_AES_256_CBC_SHA256
| TLS_DH_RSA_WITH_AES_256_CBC_SHA256
| TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
| TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
| TLS_DH_anon_WITH_AES_128_CBC_SHA256
| TLS_DH_anon_WITH_AES_256_CBC_SHA256
| TLS_PSK_WITH_3DES_EDE_CBC_SHA
| TLS_PSK_WITH_AES_128_CBC_SHA
| TLS_PSK_WITH_AES_256_CBC_SHA
| TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
| TLS_DHE_PSK_WITH_AES_128_CBC_SHA
| TLS_DHE_PSK_WITH_AES_256_CBC_SHA
| TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
| TLS_RSA_PSK_WITH_AES_128_CBC_SHA
| TLS_RSA_PSK_WITH_AES_256_CBC_SHA
| TLS_RSA_WITH_SEED_CBC_SHA
| TLS_DH_DSS_WITH_SEED_CBC_SHA
| TLS_DH_RSA_WITH_SEED_CBC_SHA
| TLS_DHE_DSS_WITH_SEED_CBC_SHA
| TLS_DHE_RSA_WITH_SEED_CBC_SHA
| TLS_DH_anon_WITH_SEED_CBC_SHA
| TLS_RSA_WITH_AES_128_GCM_SHA256
| TLS_RSA_WITH_AES_256_GCM_SHA384
| TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
| TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
| TLS_DH_RSA_WITH_AES_128_GCM_SHA256
| TLS_DH_RSA_WITH_AES_256_GCM_SHA384
| TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
| TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
| TLS_DH_DSS_WITH_AES_128_GCM_SHA256
| TLS_DH_DSS_WITH_AES_256_GCM_SHA384
| TLS_DH_anon_WITH_AES_128_GCM_SHA256
| TLS_DH_anon_WITH_AES_256_GCM_SHA384
| TLS_PSK_WITH_AES_128_GCM_SHA256
| TLS_PSK_WITH_AES_256_GCM_SHA384
| TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
| TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
| TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
| TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
| TLS_PSK_WITH_AES_128_CBC_SHA256
| TLS_PSK_WITH_AES_256_CBC_SHA384
| TLS_PSK_WITH_NULL_SHA256
| TLS_PSK_WITH_NULL_SHA384
| TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
| TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
| TLS_DHE_PSK_WITH_NULL_SHA256
| TLS_DHE_PSK_WITH_NULL_SHA384
| TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
| TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
| TLS_RSA_PSK_WITH_NULL_SHA256
| TLS_RSA_PSK_WITH_NULL_SHA384
| TLS_EMPTY_RENEGOTIATION_INFO_SCSV
| TLS_AES_128_GCM_SHA256
| TLS_AES_256_GCM_SHA384
| TLS_CHACHA20_POLY1305_SHA256
| TLS_AES_128_CCM_SHA256
| TLS_AES_128_CCM_8_SHA256
| TLS_FALLBACK_SCSV
| TLS_ECDH_ECDSA_WITH_NULL_SHA
| TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
| TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
| TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
| TLS_ECDHE_ECDSA_WITH_NULL_SHA
| TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
| TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
| TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
| TLS_ECDH_RSA_WITH_NULL_SHA
| TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
| TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
| TLS_ECDHE_RSA_WITH_NULL_SHA
| TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
| TLS_ECDH_anon_WITH_NULL_SHA
| TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
| TLS_ECDH_anon_WITH_AES_128_CBC_SHA
| TLS_ECDH_anon_WITH_AES_256_CBC_SHA
| TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA
| TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA
| TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA
| TLS_SRP_SHA_WITH_AES_128_CBC_SHA
| TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA
| TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA
| TLS_SRP_SHA_WITH_AES_256_CBC_SHA
| TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA
| TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA
| TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
| TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
| TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
| TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
| TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
| TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
| TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
| TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
| TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
| TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
| TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
| TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
| TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
| TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
| TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
| TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
| TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
| TLS_ECDHE_PSK_WITH_NULL_SHA
| TLS_ECDHE_PSK_WITH_NULL_SHA256
| TLS_ECDHE_PSK_WITH_NULL_SHA384
| TLS_RSA_WITH_AES_128_CCM
| TLS_RSA_WITH_AES_256_CCM
| TLS_DHE_RSA_WITH_AES_128_CCM
| TLS_DHE_RSA_WITH_AES_256_CCM
| TLS_RSA_WITH_AES_128_CCM_8
| TLS_RSA_WITH_AES_256_CCM_8
| TLS_DHE_RSA_WITH_AES_128_CCM_8
| TLS_DHE_RSA_WITH_AES_256_CCM_8
| TLS_PSK_WITH_AES_128_CCM
| TLS_PSK_WITH_AES_256_CCM
| TLS_DHE_PSK_WITH_AES_128_CCM
| TLS_DHE_PSK_WITH_AES_256_CCM
| TLS_PSK_WITH_AES_128_CCM_8
| TLS_PSK_WITH_AES_256_CCM_8
| TLS_DHE_PSK_WITH_AES_128_CCM_8
| TLS_DHE_PSK_WITH_AES_256_CCM_8
| TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
| TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
| TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
| TLS_PSK_WITH_CHACHA20_POLY1305_SHA256
| TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256
| TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256
| TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256
| TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256
| TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384
| TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256
| TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256
| TLS_ECDHE_PSK_WITH_AES_256_CCM_SHA384
val int_to_any_ciphersuite : int -> any_ciphersuite option
val any_ciphersuite_to_int : any_ciphersuite -> int
val compare_any_ciphersuite : any_ciphersuite -> any_ciphersuite -> int
val any_ciphersuite_to_string : any_ciphersuite -> string
val string_to_any_ciphersuite : string -> any_ciphersuite option
val sexp_of_any_ciphersuite : any_ciphersuite -> Sexplib.Sexp.t
val any_ciphersuite_of_sexp : Sexplib.Sexp.t -> any_ciphersuite
val int_to_key_update_request_type : int -> key_update_request_type option
val key_update_request_type_to_int : key_update_request_type -> int
val compare_key_update_request_type :
key_update_request_type ->
key_update_request_type ->
int
val key_update_request_type_to_string : key_update_request_type -> string
val string_to_key_update_request_type :
string ->
key_update_request_type option
val sexp_of_key_update_request_type : key_update_request_type -> Sexplib.Sexp.t
val key_update_request_type_of_sexp : Sexplib.Sexp.t -> key_update_request_type
val helloretryrequest : Mirage_crypto.Hash.digest
val downgrade12 : Cstruct.t
val downgrade11 : Cstruct.t