dtls_handshake

DATA TYPES

der_cert() = binary()
dtls_handshake() = #client_hello{} | #hello_verify_request{} | ssl_handshake()
host() = ip_address() (see module inet) | hostname() (see module inet)
ssl_handshake() = #server_hello{} | #server_hello_done{} | #certificate{} | #certificate_request{} | #client_key_exchange{} | #finished{} | #certificate_verify{} | #hello_request{} | #next_protocol{}

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()}, Cache::integer(), CacheCb::atom(), Renegotiation::boolean(), OwnCert::der_cert()) -> #client_hello{}

client_hello(Host::host(), Port::port_number() (see module inet), Cookie::term(), 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()}, Cache::integer(), CacheCb::atom(), Renegotiation::boolean(), OwnCert::der_cert()) -> #client_hello{}

hello(Address, Port, Ssl_tls) -> term()

encode_handshake(Package, Version, MsgSeq, Mss) -> term()

get_dtls_handshake(Ssl_tls::#ssl_tls{}, HsState::#dtls_hs_state{} | binary()) -> {[dtls_handshake()], #dtls_hs_state{}} | {retransmit, #dtls_hs_state{}}

dtls_handshake_new_epoch(Dtls_hs_state::#dtls_hs_state{}) -> #dtls_hs_state{}

dtls_handshake_new_flight(ExpectedReadReq::integer() | undefined) -> #dtls_hs_state{}