crypto: skcipher - prevent using skciphers without setting key
authorEric Biggers <ebiggers@google.com>
Wed, 3 Jan 2018 19:16:29 +0000 (11:16 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 12 Jan 2018 12:03:39 +0000 (23:03 +1100)
commitf8d33fac84806eebd2ba31a3136066eeca19255f
treeca1ff03d50c7f17a3a1ae173f1324af826068619
parent4e1d14bcd10a33537918a9a747ab90fc5c2e6d7f
crypto: skcipher - prevent using skciphers without setting key

Similar to what was done for the hash API, update the skcipher API to
track whether each transform has been keyed, and reject
encryption/decryption if a key is needed but one hasn't been set.

This isn't as important as the equivalent fix for the hash API because
symmetric ciphers almost always require a key (the "null cipher" is the
only exception), so are unlikely to be used without one.  Still,
tracking the key will prevent accidental unkeyed use.  algif_skcipher
also had to track the key anyway, so the new flag replaces that and
simplifies the algif_skcipher implementation.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/algif_skcipher.c
crypto/skcipher.c
include/crypto/skcipher.h