Crate keccak

source ·
Expand description

Keccak sponge function.

If you are looking for SHA-3 hash functions take a look at sha3 and tiny-keccak crates.

To disable loop unrolling (e.g. for constraint targets) use no_unroll feature.

// Test vectors are from KeccakCodePackage
let mut data = [0u64; 25];

keccak::f1600(&mut data);
assert_eq!(data, [
    0xF1258F7940E1DDE7, 0x84D5CCF933C0478A, 0xD598261EA65AA9EE, 0xBD1547306F80494D,
    0x8B284E056253D057, 0xFF97A42D7F8E6FD4, 0x90FEE5A0A44647C4, 0x8C5BDA0CD6192E76,
    0xAD30A6F71B19059C, 0x30935AB7D08FFC64, 0xEB5AA93F2317D635, 0xA9A6E6260D712103,
    0x81A57C16DBCF555F, 0x43B831CD0347C826, 0x01F22F1A11A5569F, 0x05E5635A21D9AE61,
    0x64BEFEF28CC970F2, 0x613670957BC46611, 0xB87C5A554FD00ECB, 0x8C3EE88A1CCF32C8,
    0x940C7922AE3A2614, 0x1841F924A2C509E4, 0x16F53526E70465C2, 0x75F644E97F30A13B,
    0xEAF1FF7B5CECA249,
]);

keccak::f1600(&mut data);
assert_eq!(data, [
    0x2D5C954DF96ECB3C, 0x6A332CD07057B56D, 0x093D8D1270D76B6C, 0x8A20D9B25569D094,
    0x4F9C4F99E5E7F156, 0xF957B9A2DA65FB38, 0x85773DAE1275AF0D, 0xFAF4F247C3D810F7,
    0x1F1B9EE6F79A8759, 0xE4FECC0FEE98B425, 0x68CE61B6B9CE68A1, 0xDEEA66C4BA8F974F,
    0x33C43D836EAFB1F5, 0xE00654042719DBD9, 0x7CF8A9F009831265, 0xFD5449A6BF174743,
    0x97DDAD33D8994B40, 0x48EAD5FC5D0BE774, 0xE3B8C8EE55B7B03C, 0x91A0226E649E42E9,
    0x900E3129E7BADD7B, 0x202A9EC5FAA3CCE8, 0x5B3402464E1C3DB6, 0x609F4E62A44C1059,
    0x20D06CD26A8FBF5C,
]);

Macros

Traits

  • Keccak is a permutation over an array of lanes which comprise the sponge construction.

Functions

  • Keccak-f sponge function
  • Keccak-f sponge function
  • Keccak-f sponge function
  • Keccak-f sponge function
  • Generic Keccak-p sponge function
  • Keccak-p sponge function
  • Keccak-p sponge function
  • Keccak-p sponge function
  • Keccak-p sponge function