Generating a message digest includes selecting a first hashing procedure
or a second hashing procedure for a message having words. If the first
hashing procedure is selected, a first function is applied to a first
subset of words at a function module to yield a first function output,
and a second subset of words and the first function output are combined
at an adder to yield a first sum. Next words are generated in accordance
with the first sum. If the second hashing procedure is selected, a second
function is applied to a third subset of words at the function module to
yield a second function output, and a fourth subset of words and the
second function output are combined at the adder to yield a second sum.
Next words are generated in accordance with the second sum.