Skip to content

Commit caa9dbb

Browse files
svenschwermerherbertx
authored andcommitted
crypto: mxs-dcp - Only set OTP_KEY bit for OTP key
While MXS_DCP_CONTROL0_OTP_KEY is set, the CRYPTO_KEY (DCP_PAES_KEY_OTP) is used even if the UNIQUE_KEY (DCP_PAES_KEY_UNIQUE) is selected. This is not clearly documented, but this implementation is consistent with NXP's downstream kernel fork and optee_os. Signed-off-by: Sven Schwermer <sven@svenschwermer.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
1 parent d4880fe commit caa9dbb

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

drivers/crypto/mxs-dcp.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,12 +265,12 @@ static int mxs_dcp_run_aes(struct dcp_async_ctx *actx,
265265
MXS_DCP_CONTROL0_INTERRUPT |
266266
MXS_DCP_CONTROL0_ENABLE_CIPHER;
267267

268-
if (key_referenced)
269-
/* Set OTP key bit to select the key via KEY_SELECT. */
270-
desc->control0 |= MXS_DCP_CONTROL0_OTP_KEY;
271-
else
268+
if (!key_referenced)
272269
/* Payload contains the key. */
273270
desc->control0 |= MXS_DCP_CONTROL0_PAYLOAD_KEY;
271+
else if (actx->key[0] == DCP_PAES_KEY_OTP)
272+
/* Set OTP key bit to select the key via KEY_SELECT. */
273+
desc->control0 |= MXS_DCP_CONTROL0_OTP_KEY;
274274

275275
if (rctx->enc)
276276
desc->control0 |= MXS_DCP_CONTROL0_CIPHER_ENCRYPT;

0 commit comments

Comments
 (0)