- 63A6A9F8168017265C7CCF9B3D7DFFD7C3CD21F529AE88993C3B05E0DCAFF9530C68B3420B58F643FF2425F575C66E9E0DF19ED25C8A38F56A0D1E713E27B15C
+ 7503D06B8F87F1CD8A4246A7BAF27BA9431646E65F07FEA64173F24852BE71DC493C3E866D5C16F6723F80C6E6ED1479A46FAC9DEA5FDF02B0387724BDB99E08
eucrypt/smg_keccak/smg_keccak.ads
(13 . 6)(13 . 9)
19 --therefore keccak function 1600 with current
20 --constants (5*5*2^6)
21
22 Default_Bitrate: constant := 1344; --max bits the sponge can eat/spit without
23 --needing to scramble the state
24
25 --constants: dimensions of keccak state and number of rounds
26 XY_Length: constant := 5;
27 Z_Length: constant := 2**Keccak_L;
(49 . 12)(52 . 12)
29 -- public function, the sponge itself
30 -- Keccak sponge structure using Keccak_Function, Pad and a given bitrate;
31 -- Input - the stream of bits to hash (the message)
32 -- Output - a bitstream of desired size for holding output
33 -- Block_Len - the bitrate to use; this is effectively the block length
34 -- for splitting Input AND squeezing output between scrambles
35 -- Output - a bitstream of desired size for holding output
36 procedure Sponge(Input : in Bitstream;
37 Block_Len : in Keccak_Rate;
38 Output : out Bitstream);
39 Output : out Bitstream;
40 Block_Len : in Keccak_Rate := Default_Bitrate );
41
42 private
43 -- these are internals of the keccak implementation, not meant to be directly