(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