Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: 3des - move verification out of exported routine

In preparation of moving the shared key expansion routine into the
DES library, move the verification done by __des3_ede_setkey() into
its callers.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Ard Biesheuvel and committed by
Herbert Xu
4fd4be05 dcb15794

+9 -5
+4
arch/x86/crypto/des3_ede_glue.c
··· 348 348 u32 i, j, tmp; 349 349 int err; 350 350 351 + err = crypto_des3_ede_verify_key(tfm, key); 352 + if (err) 353 + return err; 354 + 351 355 /* Generate encryption context using generic implementation. */ 352 356 err = __des3_ede_setkey(ctx->enc_expkey, &tfm->crt_flags, key, keylen); 353 357 if (err < 0)
+5 -5
crypto/des_generic.c
··· 846 846 { 847 847 int err; 848 848 849 - err = __des3_verify_key(flags, key); 850 - if (unlikely(err)) 851 - return err; 852 - 853 849 des_ekey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE; 854 850 dkey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE; 855 851 des_ekey(expkey, key); ··· 858 862 unsigned int keylen) 859 863 { 860 864 struct des3_ede_ctx *dctx = crypto_tfm_ctx(tfm); 861 - u32 *flags = &tfm->crt_flags; 862 865 u32 *expkey = dctx->expkey; 866 + int err; 867 + 868 + err = crypto_des3_ede_verify_key(tfm, key); 869 + if (err) 870 + return err; 863 871 864 872 return __des3_ede_setkey(expkey, flags, key, keylen); 865 873 }