tls_handshake

DATA TYPES

db_handle() = term()
der_cert() = binary()
host() = ip_address() (see module inet) | hostname() (see module inet)
oid() = tuple()
session_id() = 0 | binary()
ssl_handshake() = #server_hello{} | #server_hello_done{} | #certificate{} | #certificate_request{} | #client_key_exchange{} | #finished{} | #certificate_verify{} | #hello_request{} | #next_protocol{}
tls_handshake() = #client_hello{} | ssl_handshake()
tls_version() = {integer(), integer()}

Functions


client_hello(Host::host(), Port::port_number() (see module inet), Connection_states::#connection_states{}, Ssl_options::#ssl_options{protocol=undefined | tls | dtls, versions=undefined | ['tlsv1.2' | 'tlsv1.1' | tlsv1 | sslv3] | ['dtlsv1.2' | dtlsv1], verify=undefined | verify_none | verify_peer, verify_fun=any(), fail_if_no_peer_cert=undefined | boolean(), verify_client_once=undefined | boolean(), validate_extensions_fun=any(), depth=undefined | integer(), certfile=undefined | binary(), cert=undefined | der_encoded(), keyfile=undefined | binary(), key=undefined | {'RSAPrivateKey' | 'DSAPrivateKey' | 'ECPrivateKey' | 'PrivateKeyInfo', der_encoded()}, password=undefined | string(), cacerts=undefined | [der_encoded()], cacertfile=undefined | binary(), dh=undefined | der_encoded(), dhfile=undefined | binary(), user_lookup_fun=any(), psk_identity=undefined | binary(), srp_identity=any(), ciphers=any(), reuse_session=any(), reuse_sessions=undefined | boolean(), renegotiate_at=any(), secure_renegotiate=any(), debug=any(), hibernate_after=undefined | boolean(), erl_dist=boolean(), next_protocols_advertised=any(), next_protocol_selector=any(), log_alert=undefined | boolean(), server_name_indication=any(), honor_cipher_order=any()}, Cache::integer(), CacheCb::atom(), Renegotiation::boolean(), OwnCert::der_cert()) -> #client_hello{}

hello(Server_hello::#server_hello{} | #client_hello{}, Ssl_options::#ssl_options{protocol=undefined | tls | dtls, versions=undefined | ['tlsv1.2' | 'tlsv1.1' | tlsv1 | sslv3] | ['dtlsv1.2' | dtlsv1], verify=undefined | verify_none | verify_peer, verify_fun=any(), fail_if_no_peer_cert=undefined | boolean(), verify_client_once=undefined | boolean(), validate_extensions_fun=any(), depth=undefined | integer(), certfile=undefined | binary(), cert=undefined | der_encoded(), keyfile=undefined | binary(), key=undefined | {'RSAPrivateKey' | 'DSAPrivateKey' | 'ECPrivateKey' | 'PrivateKeyInfo', der_encoded()}, password=undefined | string(), cacerts=undefined | [der_encoded()], cacertfile=undefined | binary(), dh=undefined | der_encoded(), dhfile=undefined | binary(), user_lookup_fun=any(), psk_identity=undefined | binary(), srp_identity=any(), ciphers=any(), reuse_session=any(), reuse_sessions=undefined | boolean(), renegotiate_at=any(), secure_renegotiate=any(), debug=any(), hibernate_after=undefined | boolean(), erl_dist=boolean(), next_protocols_advertised=any(), next_protocol_selector=any(), log_alert=undefined | boolean(), server_name_indication=any(), honor_cipher_order=any()}, ConnectionStates0::#connection_states{} | {port_number() (see module inet), #session{}, db_handle(), atom(), #connection_states{}, binary() | undefined}, Renegotiation::boolean()) -> {tls_version(), session_id(), #connection_states{}, binary() | undefined} | {tls_version(), {resumed | new, #session{}}, #connection_states{}, [binary()] | undefined, [oid()] | undefined, [oid()] | undefined} | #alert{}

encode_handshake(Package::tls_handshake(), Version::tls_version()) -> iolist()

get_tls_handshake(Version::tls_version(), Data::binary(), Buffer::binary() | iolist()) -> {[tls_handshake()], binary()}

decode_handshake(Version, Tag, Msg) -> term()