Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fd4be05 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Herbert Xu
Browse files

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: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent dcb15794
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -348,6 +348,10 @@ static int des3_ede_x86_setkey(struct crypto_tfm *tfm, const u8 *key,
	u32 i, j, tmp;
	u32 i, j, tmp;
	int err;
	int err;


	err = crypto_des3_ede_verify_key(tfm, key);
	if (err)
		return err;

	/* Generate encryption context using generic implementation. */
	/* Generate encryption context using generic implementation. */
	err = __des3_ede_setkey(ctx->enc_expkey, &tfm->crt_flags, key, keylen);
	err = __des3_ede_setkey(ctx->enc_expkey, &tfm->crt_flags, key, keylen);
	if (err < 0)
	if (err < 0)
+5 −5
Original line number Original line Diff line number Diff line
@@ -846,10 +846,6 @@ int __des3_ede_setkey(u32 *expkey, u32 *flags, const u8 *key,
{
{
	int err;
	int err;


	err = __des3_verify_key(flags, key);
	if (unlikely(err))
		return err;

	des_ekey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE;
	des_ekey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE;
	dkey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE;
	dkey(expkey, key); expkey += DES_EXPKEY_WORDS; key += DES_KEY_SIZE;
	des_ekey(expkey, key);
	des_ekey(expkey, key);
@@ -862,8 +858,12 @@ static int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
			   unsigned int keylen)
			   unsigned int keylen)
{
{
	struct des3_ede_ctx *dctx = crypto_tfm_ctx(tfm);
	struct des3_ede_ctx *dctx = crypto_tfm_ctx(tfm);
	u32 *flags = &tfm->crt_flags;
	u32 *expkey = dctx->expkey;
	u32 *expkey = dctx->expkey;
	int err;

	err = crypto_des3_ede_verify_key(tfm, key);
	if (err)
		return err;


	return __des3_ede_setkey(expkey, flags, key, keylen);
	return __des3_ede_setkey(expkey, flags, key, keylen);
}
}