[][src]Struct tiny_keccak::Keccak

pub struct Keccak { /* fields omitted */ }

This structure should be used to create keccak/sha3 hash.

use tiny_keccak::Keccak;

fn main() {
    let mut sha3 = Keccak::new_sha3_256();
    let data: Vec<u8> = From::from("hello");
    let data2: Vec<u8> = From::from("world");

    sha3.update(&data);
    sha3.update(&[b' ']);
    sha3.update(&data2);

    let mut res: [u8; 32] = [0; 32];
    sha3.finalize(&mut res);

    let expected = vec![
        0x64, 0x4b, 0xcc, 0x7e, 0x56, 0x43, 0x73, 0x04,
        0x09, 0x99, 0xaa, 0xc8, 0x9e, 0x76, 0x22, 0xf3,
        0xca, 0x71, 0xfb, 0xa1, 0xd9, 0x72, 0xfd, 0x94,
        0xa3, 0x1c, 0x3b, 0xfb, 0xf2, 0x4e, 0x39, 0x38
    ];

    let ref_ex: &[u8] = &expected;
    assert_eq!(&res, ref_ex);
}

Methods

impl Keccak[src]

pub fn new(rate: usize, delim: u8) -> Keccak[src]

pub fn new_shake128() -> Keccak[src]

pub fn shake128(data: &[u8], result: &mut [u8])[src]

pub fn new_shake256() -> Keccak[src]

pub fn shake256(data: &[u8], result: &mut [u8])[src]

pub fn new_keccak224() -> Keccak[src]

pub fn keccak224(data: &[u8], result: &mut [u8])[src]

pub fn new_keccak256() -> Keccak[src]

pub fn keccak256(data: &[u8], result: &mut [u8])[src]

pub fn new_keccak384() -> Keccak[src]

pub fn keccak384(data: &[u8], result: &mut [u8])[src]

pub fn new_keccak512() -> Keccak[src]

pub fn keccak512(data: &[u8], result: &mut [u8])[src]

pub fn new_sha3_224() -> Keccak[src]

pub fn sha3_224(data: &[u8], result: &mut [u8])[src]

pub fn new_sha3_256() -> Keccak[src]

pub fn sha3_256(data: &[u8], result: &mut [u8])[src]

pub fn new_sha3_384() -> Keccak[src]

pub fn sha3_384(data: &[u8], result: &mut [u8])[src]

pub fn new_sha3_512() -> Keccak[src]

pub fn sha3_512(data: &[u8], result: &mut [u8])[src]

pub fn update(&mut self, input: &[u8])[src]

pub fn keccakf(&mut self)[src]

pub fn finalize(self, output: &mut [u8])[src]

pub fn absorb(&mut self, input: &[u8])[src]

pub fn pad(&mut self)[src]

pub fn fill_block(&mut self)[src]

pub fn squeeze(&mut self, output: &mut [u8])[src]

pub fn xof(self) -> XofReader[src]

Trait Implementations

impl Clone for Keccak[src]

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

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for Keccak

impl Sync for Keccak

Blanket Implementations

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

type Error = Infallible

The type returned in the event of a conversion error.

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

impl<T> From<T> for T[src]

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

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

The type returned in the event of a conversion error.

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

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

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