Sacundim in his feedback on the reddit proposed to use instead of VariableOutput the following traits:
ExtendableOutput for functions like SHAKE from SHA-3, which allow to "read" indefinitely from the resultVariableOutput for functions like Groestl, which have some limits on the output size and may require output size to be known at state initalization
Also @burdgesproposed to move out BlockSize from the Input trait to a separate one.
Sacundim in his feedback on the reddit proposed to use instead of
VariableOutputthe following traits:ExtendableOutputfor functions like SHAKE from SHA-3, which allow to "read" indefinitely from the resultVariableOutputfor functions likeGroestl, which have some limits on the output size and may require output size to be known at state initalizationAlso @burdgesproposed to move out
BlockSizefrom theInputtrait to a separate one.