age::scrypt

Struct Recipient

Source
pub struct Recipient { /* private fields */ }
Expand description

A passphrase-based recipient. Anyone with the passphrase can decrypt the file.

If an scrypt::Recipient is used, it must be the only recipient for the file: it can’t be mixed with other recipient types and can’t be used multiple times for the same file.

This API should only be used with a passphrase that was provided by (or generated for) a human. For programmatic use cases, instead generate an x25519::Identity.

Implementations§

Source§

impl Recipient

Source

pub fn new(passphrase: SecretString) -> Self

Constructs a new Recipient with the given passphrase.

The scrypt work factor is picked to target about 1 second for encryption or decryption on this device. Override it with Self::set_work_factor.

Source

pub fn set_work_factor(&mut self, log_n: u8)

Sets the scrypt work factor to N = 2^log_n.

This method must be called before Self::wrap_file_key to have an effect.

§Panics

Panics if log_n == 0 or log_n >= 64.

Trait Implementations§

Source§

impl Recipient for Recipient

Source§

fn wrap_file_key( &self, file_key: &FileKey, ) -> Result<(Vec<Stanza>, HashSet<String>), EncryptError>

Wraps the given file key, returning stanzas to be placed in an age file header, and labels that constrain how the stanzas may be combined with those from other recipients. Read more

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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