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