[][src]Enum sequoia_openpgp::crypto::s2k::S2K

pub enum S2K {
    Simple {
        hash: HashAlgorithm,
    },
    Salted {
        hash: HashAlgorithm,
        salt: [u8; 8],
    },
    Iterated {
        hash: HashAlgorithm,
        salt: [u8; 8],
        iterations: u32,
    },
    Private(u8),
    Unknown(u8),
}

String-to-Key (S2K) specifiers.

String-to-key (S2K) specifiers are used to convert password strings into symmetric-key encryption/decryption keys. See Section 3.7 of RFC 4880.

Variants

Simple

Simply hashes the password.

Fields of Simple

hash: HashAlgorithm

Hash used for key derivation.

Salted

Hashes the password with a public salt value.

Fields of Salted

hash: HashAlgorithm

Hash used for key derivation.

salt: [u8; 8]

Public salt value mixed into the password.

Iterated

Repeatently hashes the password with a public salt value.

Fields of Iterated

hash: HashAlgorithm

Hash used for key derivation.

salt: [u8; 8]

Public salt value mixed into the password.

iterations: u32

Number of bytes to hash.

Private(u8)

Private S2K algorithm

Unknown(u8)

Unknown S2K algorithm

Methods

impl S2K[src]

pub fn derive_key(
    &self,
    string: &Password,
    key_size: usize
) -> Result<SessionKey>
[src]

Convert the string to a key using the S2K's paramters.

pub fn nearest_iteration_count(iters: usize) -> u32[src]

Not all iteration counts are encodable as Iterated and Salted S2K. This function returns an encodabled iteration count larger or equal iters.

Note

The largest encodable iteration count is 0x3e00000.

pub fn decode_count(coded: u8) -> u32[src]

Decodes the OpenPGP encoding of S2K iterations.

pub fn encode_count(iters: u32) -> Result<u8>[src]

Converts iters into coded count representation. Fails if iters cannot be encoded. See also nearest_iteration_count.

impl S2K[src]

pub fn serialized_len(&self) -> usize[src]

Return the length of the serialized S2K data structure.

Trait Implementations

impl Serialize for S2K[src]

fn serialize<W: Write>(&self, w: &mut W) -> Result<()>[src]

Serializes this S2K instance.

fn to_vec(&self) -> Result<Vec<u8>>[src]

Serializes the packet to a vector.

impl Eq for S2K[src]

impl Copy for S2K[src]

impl Default for S2K[src]

impl PartialEq<S2K> for S2K[src]

impl Clone for S2K[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Display for S2K[src]

impl Hash for S2K[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for S2K[src]

impl Arbitrary for S2K[src]

fn shrink(&self) -> Box<dyn Iterator<Item = Self> + 'static>

Auto Trait Implementations

impl Send for S2K

impl Sync for S2K

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.