Struct rustls::hash_hs::HandshakeHash

source ·
pub(crate) struct HandshakeHash {
    ctx: Context,
    client_auth: Option<Vec<u8>>,
}
Expand description

This deals with keeping a running hash of the handshake payloads. This is computed by buffering initially. Once we know what hash function we need to use we switch to incremental hashing.

For client auth, we also need to buffer all the messages. This is disabled in cases where client auth is not possible.

Fields§

§ctx: Context

None before we know what hash function we’re using

§client_auth: Option<Vec<u8>>

buffer for client-auth.

Implementations§

source§

impl HandshakeHash

source

pub(crate) fn abandon_client_auth(&mut self)

We decided not to do client auth after all, so discard the transcript.

source

pub(crate) fn add_message(&mut self, m: &Message) -> &mut Self

Hash/buffer a handshake message.

source

fn update_raw(&mut self, buf: &[u8]) -> &mut Self

Hash or buffer a byte slice.

source

pub(crate) fn get_hash_given(&self, extra: &[u8]) -> Digest

Get the hash value if we were to hash extra too, using hash function hash.

source

pub(crate) fn into_hrr_buffer(self) -> HandshakeHashBuffer

source

pub(crate) fn rollup_for_hrr(&mut self)

Take the current hash value, and encapsulate it in a ‘handshake_hash’ handshake message. Start this hash again, with that message at the front.

source

pub(crate) fn get_current_hash(&self) -> Digest

Get the current hash value.

source

pub(crate) fn take_handshake_buf(&mut self) -> Option<Vec<u8>>

Takes this object’s buffer containing all handshake messages so far. This method only works once; it resets the buffer to empty.

source

pub(crate) fn algorithm(&self) -> &'static Algorithm

The digest algorithm

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.