In the Kyber specification the
parse function (algorithm 1 on page 6) takes as input a non-terminating byte stream. Although unlikely, an unlimited number of bytes from this stream can be used in this function.
Kyber.CPAPKE.KeyGen (algorithm 4 on page 8) the
parse function is called on line 6 using the output of an extensible output function for the byte stream. On page 11 it is stated that
SHAKE-128 is used to instantiate this extensible output function.
The NIST FIPS-202 specification of
SHAKE-128 in section 6.2 requires that the function be given an output size before output is generated. How can
SHAKE-128 be used to generate the (possibly non-terminating) bytes stream of indeterminate length required by the