pub struct StealthTlsWireConfig {
pub tls12_cipher_suites: Vec<u16>,
pub tls13_cipher_suites: Vec<u16>,
pub signature_algorithms: Vec<u16>,
pub supported_groups: Vec<u16>,
pub alpn_protocols: Vec<Vec<u8>>,
pub h2_settings_payload: Vec<u8>,
pub h2_initial_stream_size: u32,
pub h2_initial_connection_window_size: u32,
pub h2_max_frame_size: u32,
pub h2_max_header_list_size: u32,
}Expand description
Wire-level TLS/HTTP2 configuration for servo’s network layer.
Derived from StealthProfile and stored as a global
that servo’s connector reads during create_tls_config() (WS loader) and
the page-network bun bridge shapes its per-request SSLConfig from.
Fields§
§tls12_cipher_suites: Vec<u16>TLS 1.2 cipher suites as IANA u16 IDs (ordered as in profile).
Applied via SSL_CTX_set_cipher_list() on the BoringSSL SSL_CTX.
tls13_cipher_suites: Vec<u16>TLS 1.3 cipher suites as IANA u16 IDs (ordered as in profile).
Applied via SSL_CTX_set_cipher_list() on the BoringSSL SSL_CTX.
signature_algorithms: Vec<u16>Signature algorithms as IANA u16 IDs (ordered as in profile).
Applied via SSL_CTX_set1_sigalgs_list() on the BoringSSL SSL_CTX.
supported_groups: Vec<u16>Supported groups as IANA u16 IDs (ordered as in profile).
Applied via SSL_set1_curves_list() per-connection on the BoringSSL SSL.
alpn_protocols: Vec<Vec<u8>>ALPN protocols as raw bytes (e.g., b"h2", b"http/1.1").
Applied via SSL_CTX_set_alpn_protos() on the BoringSSL SSL_CTX.
h2_settings_payload: Vec<u8>HTTP/2 SETTINGS frame payload in binary wire format (6 bytes per setting: 2-byte setting ID big-endian + 4-byte value big-endian).
This is used for HTTP/2 AKAMAI fingerprint matching. The individual settings
that hyper’s builder supports are extracted and applied separately; this
payload is stored for potential future use with a custom h2 connection wrapper.
h2_initial_stream_size: u32HTTP/2 initial stream window size for the SETTINGS and WINDOW_UPDATE frames.
Applied via hyper’s http2_initial_stream_window_size() builder method.
h2_initial_connection_window_size: u32HTTP/2 initial connection window size.
Applied via hyper’s http2_initial_connection_window_size() builder method.
h2_max_frame_size: u32HTTP/2 SETTINGS_MAX_FRAME_SIZE value.
Applied via hyper’s http2_max_frame_size() builder method.
h2_max_header_list_size: u32HTTP/2 SETTINGS_MAX_HEADER_LIST_SIZE value.
Applied via hyper’s http2_max_header_list_size() builder method.
Implementations§
Source§impl StealthTlsWireConfig
impl StealthTlsWireConfig
Sourcepub fn from_profile(profile: &StealthProfile) -> StealthTlsWireConfig
pub fn from_profile(profile: &StealthProfile) -> StealthTlsWireConfig
Derive a wire config from a StealthProfile.
Splits cipher suites into TLS 1.3 and TLS 1.2, and converts HTTP/2 SETTINGS
into both binary wire format and the individual fields hyper’s builder accepts.
Sourcepub fn firefox() -> StealthTlsWireConfig
pub fn firefox() -> StealthTlsWireConfig
Convenience constructor using the default Firefox profile.
Trait Implementations§
Source§impl Clone for StealthTlsWireConfig
impl Clone for StealthTlsWireConfig
Source§fn clone(&self) -> StealthTlsWireConfig
fn clone(&self) -> StealthTlsWireConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for StealthTlsWireConfig
impl RefUnwindSafe for StealthTlsWireConfig
impl Send for StealthTlsWireConfig
impl Sync for StealthTlsWireConfig
impl Unpin for StealthTlsWireConfig
impl UnsafeUnpin for StealthTlsWireConfig
impl UnwindSafe for StealthTlsWireConfig
Blanket Implementations§
Source§impl<T> AsCtxPtr for Twhere
T: ?Sized,
impl<T> AsCtxPtr for Twhere
T: ?Sized,
Source§fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
self’s address as *mut Self for deferred-task / scopeguard /
ref_guard ctx slots. The closures/trampolines deref it as shared
(&*p) — every method they reach is &self post-R-2, so no write
provenance is required; the *mut spelling is purely to match the
existing DerefOnDrop / HasAutoFlush / RefCount ABI.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more