(40 . 8)(40 . 11)
83 subtype Bitword is Bitstream( 0..Z_Length - 1 ); -- bits of one state "word"
84
85 -- type conversions
86 function BitsToWord( Bits: in Bitword ) return ZWord;
87 function WordToBits( Word: in ZWord ) return Bitword;
88 function BitsToWord( BWord : in Bitword ) return ZWord;
89 function WordToBits( Word : in ZWord ) return Bitword;
90
91 -- flip input octets (i.e. groups of 8 bits)
92 function FlipOctets( BWord : in Bitword ) return Bitword;
93
94 -- public function, the sponge itself
95 -- Keccak sponge structure using Keccak_Function, Pad and a given bitrate;
(109 . 6)(112 . 11)
97 return ZWord;
98 pragma Import(Intrinsic, Shift_Right);
99
100 function Shift_Left( Value : ZWord;
101 Amount : Natural)
102 return ZWord;
103 pragma Import(Intrinsic, Shift_Left);
104
105 --Keccak transformations of the internal state
106 function Theta ( Input : in State) return State;
107 function Rho ( Input : in State) return State;