Eric Biggers a208fa8f33 crypto: hash - annotate algorithms taking optional key
We need to consistently enforce that keyed hashes cannot be used without
setting the key.  To do this we need a reliable way to determine whether
a given hash algorithm is keyed or not.  AF_ALG currently does this by
checking for the presence of a ->setkey() method.  However, this is
actually slightly broken because the CRC-32 algorithms implement
->setkey() but can also be used without a key.  (The CRC-32 "key" is not
actually a cryptographic key but rather represents the initial state.
If not overridden, then a default initial state is used.)

Prepare to fix this by introducing a flag CRYPTO_ALG_OPTIONAL_KEY which
indicates that the algorithm has a ->setkey() method, but it is not
required to be called.  Then set it on all the CRC-32 algorithms.

The same also applies to the Adler-32 implementation in Lustre.

Also, the cryptd and mcryptd templates have to pass through the flag
from their underlying algorithm.

Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-01-12 23:03:35 +11:00
..
2017-11-14 16:54:12 -08:00
2017-12-08 09:58:10 -08:00
2017-11-16 12:47:46 -08:00
2017-11-14 16:49:31 -08:00
2017-11-17 14:58:01 -08:00
2017-11-15 13:46:33 -08:00
2017-11-13 21:14:07 -08:00
2017-12-10 08:26:59 -08:00
2017-11-16 09:10:59 -08:00
2017-11-15 13:35:43 -08:00
2017-11-17 20:16:20 -08:00
2017-11-16 09:10:59 -08:00
2017-11-13 01:34:14 +01:00
2017-12-06 10:53:02 -08:00
2017-11-14 18:09:31 -08:00
2017-12-01 12:19:48 -08:00
2017-12-08 13:18:47 -08:00
2017-11-16 16:05:01 -08:00
2017-11-15 13:46:33 -08:00
2017-12-01 08:14:22 -05:00
2017-11-13 12:10:24 -08:00
2017-11-17 09:51:57 -08:00
2017-11-16 09:10:59 -08:00
2017-11-16 09:10:59 -08:00
2017-11-15 10:56:56 -08:00
2017-11-13 21:14:07 -08:00
2017-11-16 13:06:27 -08:00
2017-11-22 21:09:18 -10:00
2017-11-16 09:15:57 -08:00
2017-11-17 20:14:10 -08:00
2017-11-16 16:05:01 -08:00
2017-11-17 20:12:08 -08:00
2017-12-05 10:31:32 -08:00
2017-11-14 16:54:12 -08:00
2017-11-14 16:47:47 -08:00
2017-12-02 21:31:03 -05:00
2017-11-20 21:50:24 -10:00
2017-11-16 09:10:59 -08:00
2017-11-16 09:10:59 -08:00
2017-12-08 12:53:43 -08:00