Struct TlsProfile
pub struct TlsProfile {
pub client_config: Arc<ClientConfig>,
pub ws_client_config_overwrites: Option<WsClientConfigOverwrites>,
}
Expand description
Profile of the user-agent’s TLS (client) configuration.
It is used to emulate the TLS configuration of the user-agent.
See ClientConfig
for more information.
Fields§
§client_config: Arc<ClientConfig>
The TLS client configuration.
ws_client_config_overwrites: Option<WsClientConfigOverwrites>
Optional WebSocket-specific client config overwrites.
Implementations§
§impl TlsProfile
impl TlsProfile
pub fn compute_ja3(
&self,
negotiated_tls_version: Option<ProtocolVersion>,
) -> Result<Ja3, Ja3ComputeError>
pub fn compute_ja3( &self, negotiated_tls_version: Option<ProtocolVersion>, ) -> Result<Ja3, Ja3ComputeError>
Compute the Ja3
(hash) based on this TlsProfile
.
This can be useful in case you want to compare profiles loaded into memory of your service with the profile of an incoming request.
As specified by https://github.com/salesforce/ja3`.
pub fn compute_ja4(
&self,
negotiated_tls_version: Option<ProtocolVersion>,
) -> Result<Ja4, Ja4ComputeError>
pub fn compute_ja4( &self, negotiated_tls_version: Option<ProtocolVersion>, ) -> Result<Ja4, Ja4ComputeError>
Compute the Ja4
(hash) on this TlsProfile
.
This can be useful in case you want to compare profiles loaded into memory of your service with the profile of an incoming request.
As specified by https://blog.foxio.io/ja4%2B-network-fingerprinting and reference implementations found at https://github.com/FoxIO-LLC/ja4.
pub fn compute_peet(&self) -> Result<PeetPrint, PeetComputeError>
pub fn compute_peet(&self) -> Result<PeetPrint, PeetComputeError>
Compute the PeetPrint
(hash) on this TlsProfile
.
This can be useful in case you want to compare profiles loaded into memory of your service with the profile of an incoming request.
As specified by https://github.com/pagpeter/TrackMe?tab=readme-ov-file#custom-fingerpint-peetprint
Trait Implementations§
§impl Clone for TlsProfile
impl Clone for TlsProfile
§fn clone(&self) -> TlsProfile
fn clone(&self) -> TlsProfile
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for TlsProfile
impl Debug for TlsProfile
§impl<'de> Deserialize<'de> for TlsProfile
impl<'de> Deserialize<'de> for TlsProfile
§fn deserialize<D>(
deserializer: D,
) -> Result<TlsProfile, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<TlsProfile, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl Serialize for TlsProfile
impl Serialize for TlsProfile
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Auto Trait Implementations§
impl Freeze for TlsProfile
impl RefUnwindSafe for TlsProfile
impl Send for TlsProfile
impl Sync for TlsProfile
impl Unpin for TlsProfile
impl UnwindSafe for TlsProfile
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more