SSL.Protocol.ClientOffer (ex_ssl v0.16.7)

Copy Markdown View Source

Bounded extraction of negotiation inputs from one exact ClientHello message.

The original bytes remain authoritative for transcript hashing. Unknown extensions are retained as opaque payloads and do not affect parsing.

Summary

Types

key_share()

@type key_share() :: %{group: 0..65535, key_exchange: binary()}

t()

@type t() :: %SSL.Protocol.ClientOffer{
  alpn_protocols: [binary()],
  certificate_signature_schemes: [0..65535] | nil,
  cipher_suites: [0..65535],
  encoded: binary(),
  extension_ids: [0..65535],
  extensions: [{0..65535, binary()}],
  key_shares: [key_share()],
  legacy_session_id: binary(),
  offered_versions: [0..65535],
  psk_count: non_neg_integer(),
  psk_key_exchange_modes: [byte()],
  signature_schemes: [0..65535],
  supported_groups: [0..65535]
}

Functions

from_client_hello(encoded)

@spec from_client_hello(term()) :: {:ok, t()} | {:error, term()}