Struct brane_shr::fs::DownloadSecurity

source ·
pub struct DownloadSecurity<'c> {
    pub checksum: Option<&'c [u8]>,
    pub https: bool,
}
Expand description

Defines things to do to assert a downloaded file is secure and what we expect.

Fields§

§checksum: Option<&'c [u8]>

If not None, then it defined the checksum that the file should have.

§https: bool

If true, then the file can only be downloaded over HTTPS.

Implementations§

source§

impl<'c> DownloadSecurity<'c>

source

pub fn all(checkum: &'c [u8]) -> Self

Constructor for the DownloadSecurity that enables with all security measures enabled.

This will provide you with the most security, but is also the slowest method (since it does both encryption and checksum computation).

Usually, it sufficies to only use a checksum (DownloadSecurity::checksum()) if you know what the file looks like a-priori.

§Arguments
  • checksum: The checksum that we want the file to have. If you are unsure, give a garbage checksum, then run the function once and check what the file had (after making sure the download went correctly, of course).
§Returns

A new DownloadSecurity instance that will make your downloaded file so secure you can use it to store a country’s defecit (not legal advice).

source

pub fn checksum(checkum: &'c [u8]) -> Self

Constructor for the DownloadSecurity that enables checksum verification only.

Using this method is considered secure, since it guarantees that the downloaded file is what we expect. It is thus safe to use if you don’t trust either the network or the remote praty.

Note, however, that this method only works if you know a-priori what the downloaded file should look like. If not, you must use another security method (e.g., DownloadSecurity::https()).

§Arguments
  • checksum: The checksum that we want the file to have. If you are unsure, give a garbage checksum, then run the function once and check what the file had (after making sure the download went correctly, of course).
§Returns

A new DownloadSecurity instance that will make sure your file has the given checksum before returning.

source

pub fn https() -> Self

Constructor for the DownloadSecurity that forces downloads to go over HTTPS.

You should only use this method if you trust the remote party. However, if you do, then it guarantees that there was no man-in-the-middle changing the downloaded file.

§Returns

A new DownloadSecurity instance that will make sure your file if downloaded over HTTPS only.

source

pub fn none() -> Self

Constructor for the DownloadSecurity that disabled all security measures.

For obvious reasons, this security is not recommended unless you trust both the network and the remote party.

§Returns

A new DownloadSecurity instance that will require no additional security measures on the downloaded file.

Trait Implementations§

source§

impl<'c> Clone for DownloadSecurity<'c>

source§

fn clone(&self) -> DownloadSecurity<'c>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'c> Debug for DownloadSecurity<'c>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'c> Display for DownloadSecurity<'c>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FResult

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'c> Freeze for DownloadSecurity<'c>

§

impl<'c> RefUnwindSafe for DownloadSecurity<'c>

§

impl<'c> Send for DownloadSecurity<'c>

§

impl<'c> Sync for DownloadSecurity<'c>

§

impl<'c> Unpin for DownloadSecurity<'c>

§

impl<'c> UnwindSafe for DownloadSecurity<'c>

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromRef<T> for T
where T: Clone,

source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

source§

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>,

source§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T