Skip to content

Commit a7a1f3c

Browse files
jopamoherbertx
authored andcommitted
crypto: ccp - copy IV using skcipher ivsize
AF_ALG rfc3686-ctr-aes-ccp requests pass an 8-byte IV to the driver. ccp_aes_complete() restores AES_BLOCK_SIZE bytes into the caller's IV buffer while RFC3686 skciphers expose an 8-byte IV, so the restore overruns the provided buffer. Use crypto_skcipher_ivsize() to copy only the algorithm's IV length. Fixes: 2b78943 ("crypto: ccp - CCP AES crypto API support") Signed-off-by: Paul Moses <p@1g4.org> Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
1 parent 4f685db commit a7a1f3c

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

drivers/crypto/ccp/ccp-crypto-aes.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ static int ccp_aes_complete(struct crypto_async_request *async_req, int ret)
3030
if (ret)
3131
return ret;
3232

33-
if (ctx->u.aes.mode != CCP_AES_MODE_ECB)
34-
memcpy(req->iv, rctx->iv, AES_BLOCK_SIZE);
33+
if (ctx->u.aes.mode != CCP_AES_MODE_ECB) {
34+
size_t ivsize = crypto_skcipher_ivsize(crypto_skcipher_reqtfm(req));
35+
36+
memcpy(req->iv, rctx->iv, ivsize);
37+
}
3538

3639
return 0;
3740
}

0 commit comments

Comments
 (0)