Struct threefish::Threefish256

source ·
pub struct Threefish256 { /* private fields */ }
Expand description

Threefish-256 block cipher.

Implementations§

source§

impl Threefish256

source

pub fn new_with_tweak(key: &[u8; 32], tweak: &[u8; 16]) -> Threefish256

Create new block cipher instance with the given key and tweak.

source

pub fn new_with_tweak_u64(key: &[u64; 4], tweak: &[u64; 2]) -> Threefish256

Create new block cipher instance with the given key and tweak represented in the form of array of u64s.

source

pub fn encrypt_block_u64(&self, block: &mut [u64; 4])

Encrypt block in the form of array of u64s

source

pub fn decrypt_block_u64(&self, block: &mut [u64; 4])

Decrypt block in the form of array of u64s

Trait Implementations§

source§

impl AlgorithmName for Threefish256

Available on crate feature cipher only.
source§

fn write_alg_name(f: &mut Formatter<'_>) -> Result

Write algorithm name into f.
source§

impl BlockDecrypt for Threefish256

source§

fn decrypt_with_backend(&self, f: impl BlockClosure<BlockSize = U32>)

Decrypt data using backend provided to the rank-2 closure.
source§

fn decrypt_block_inout( &self, block: InOut<'_, '_, GenericArray<u8, Self::BlockSize>> )

Decrypt single inout block.
source§

fn decrypt_blocks_inout( &self, blocks: InOutBuf<'_, '_, GenericArray<u8, Self::BlockSize>> )

Decrypt inout blocks.
source§

fn decrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)

Decrypt single block in-place.
source§

fn decrypt_block_b2b( &self, in_block: &GenericArray<u8, Self::BlockSize>, out_block: &mut GenericArray<u8, Self::BlockSize> )

Decrypt in_block and write result to out_block.
source§

fn decrypt_blocks(&self, blocks: &mut [GenericArray<u8, Self::BlockSize>])

Decrypt blocks in-place.
source§

fn decrypt_blocks_b2b( &self, in_blocks: &[GenericArray<u8, Self::BlockSize>], out_blocks: &mut [GenericArray<u8, Self::BlockSize>] ) -> Result<(), NotEqualError>

Decrypt blocks buffer-to-buffer. Read more
source§

impl BlockEncrypt for Threefish256

source§

fn encrypt_with_backend(&self, f: impl BlockClosure<BlockSize = U32>)

Encrypt data using backend provided to the rank-2 closure.
source§

fn encrypt_block_inout( &self, block: InOut<'_, '_, GenericArray<u8, Self::BlockSize>> )

Encrypt single inout block.
source§

fn encrypt_blocks_inout( &self, blocks: InOutBuf<'_, '_, GenericArray<u8, Self::BlockSize>> )

Encrypt inout blocks.
source§

fn encrypt_block(&self, block: &mut GenericArray<u8, Self::BlockSize>)

Encrypt single block in-place.
source§

fn encrypt_block_b2b( &self, in_block: &GenericArray<u8, Self::BlockSize>, out_block: &mut GenericArray<u8, Self::BlockSize> )

Encrypt in_block and write result to out_block.
source§

fn encrypt_blocks(&self, blocks: &mut [GenericArray<u8, Self::BlockSize>])

Encrypt blocks in-place.
source§

fn encrypt_blocks_b2b( &self, in_blocks: &[GenericArray<u8, Self::BlockSize>], out_blocks: &mut [GenericArray<u8, Self::BlockSize>] ) -> Result<(), NotEqualError>

Encrypt blocks buffer-to-buffer. Read more
source§

impl BlockSizeUser for Threefish256

§

type BlockSize = UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>

Size of the block in bytes.
§

fn block_size() -> usize

Return block size in bytes.
source§

impl Clone for Threefish256

source§

fn clone(&self) -> Threefish256

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 Debug for Threefish256

source§

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

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

impl Drop for Threefish256

Available on crate feature zeroize only.
source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl KeyInit for Threefish256

Available on crate feature cipher only.
source§

fn new(key: &Key<Self>) -> Self

Create new value from fixed size key.
§

fn new_from_slice(key: &[u8]) -> Result<Self, InvalidLength>

Create new value from variable size key.
source§

impl KeySizeUser for Threefish256

Available on crate feature cipher only.
§

type KeySize = UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>

Key size in bytes.
§

fn key_size() -> usize

Return key size in bytes.
source§

impl BlockCipher for Threefish256

Available on crate feature cipher only.
source§

impl ZeroizeOnDrop for Threefish256

Available on crate feature zeroize only.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<Alg> BlockDecryptMut for Algwhere Alg: BlockDecrypt,

source§

fn decrypt_with_backend_mut( &mut self, f: impl BlockClosure<BlockSize = <Alg as BlockSizeUser>::BlockSize> )

Decrypt data using backend provided to the rank-2 closure.
source§

fn decrypt_block_inout_mut( &mut self, block: InOut<'_, '_, GenericArray<u8, Self::BlockSize>> )

Decrypt single inout block.
source§

fn decrypt_blocks_inout_mut( &mut self, blocks: InOutBuf<'_, '_, GenericArray<u8, Self::BlockSize>> )

Decrypt inout blocks.
source§

fn decrypt_block_mut(&mut self, block: &mut GenericArray<u8, Self::BlockSize>)

Decrypt single block in-place.
source§

fn decrypt_block_b2b_mut( &mut self, in_block: &GenericArray<u8, Self::BlockSize>, out_block: &mut GenericArray<u8, Self::BlockSize> )

Decrypt in_block and write result to out_block.
source§

fn decrypt_blocks_mut( &mut self, blocks: &mut [GenericArray<u8, Self::BlockSize>] )

Decrypt blocks in-place.
source§

fn decrypt_blocks_b2b_mut( &mut self, in_blocks: &[GenericArray<u8, Self::BlockSize>], out_blocks: &mut [GenericArray<u8, Self::BlockSize>] ) -> Result<(), NotEqualError>

Decrypt blocks buffer-to-buffer. Read more
source§

impl<Alg> BlockEncryptMut for Algwhere Alg: BlockEncrypt,

source§

fn encrypt_with_backend_mut( &mut self, f: impl BlockClosure<BlockSize = <Alg as BlockSizeUser>::BlockSize> )

Encrypt data using backend provided to the rank-2 closure.
source§

fn encrypt_block_inout_mut( &mut self, block: InOut<'_, '_, GenericArray<u8, Self::BlockSize>> )

Encrypt single inout block.
source§

fn encrypt_blocks_inout_mut( &mut self, blocks: InOutBuf<'_, '_, GenericArray<u8, Self::BlockSize>> )

Encrypt inout blocks.
source§

fn encrypt_block_mut(&mut self, block: &mut GenericArray<u8, Self::BlockSize>)

Encrypt single block in-place.
source§

fn encrypt_block_b2b_mut( &mut self, in_block: &GenericArray<u8, Self::BlockSize>, out_block: &mut GenericArray<u8, Self::BlockSize> )

Encrypt in_block and write result to out_block.
source§

fn encrypt_blocks_mut( &mut self, blocks: &mut [GenericArray<u8, Self::BlockSize>] )

Encrypt blocks in-place.
source§

fn encrypt_blocks_b2b_mut( &mut self, in_blocks: &[GenericArray<u8, Self::BlockSize>], out_blocks: &mut [GenericArray<u8, Self::BlockSize>] ) -> Result<(), NotEqualError>

Encrypt blocks buffer-to-buffer. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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, U> TryFrom<U> for Twhere 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 Twhere 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.