mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
crypto: virtio - deal with unsupported input sizes
[ Upstream commit19c5da7d4a] Return -EINVAL for input sizes that are not a multiple of the AES block size, since they are not supported by our CBC chaining mode. While at it, remove the pr_err() that reports unsupported key sizes being used: we shouldn't spam the kernel log with that. Fixes:dbaf0624ff("crypto: add virtio-crypto driver") Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Jason Wang <jasowang@redhat.com> Cc: Gonglei <arei.gonglei@huawei.com> Cc: virtualization@lists.linux-foundation.org Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3c118a5e5a
commit
28877ad8e6
|
|
@ -117,8 +117,6 @@ virtio_crypto_alg_validate_key(int key_len, uint32_t *alg)
|
|||
*alg = VIRTIO_CRYPTO_CIPHER_AES_CBC;
|
||||
break;
|
||||
default:
|
||||
pr_err("virtio_crypto: Unsupported key length: %d\n",
|
||||
key_len);
|
||||
return -EINVAL;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -498,6 +496,11 @@ static int virtio_crypto_ablkcipher_encrypt(struct ablkcipher_request *req)
|
|||
/* Use the first data virtqueue as default */
|
||||
struct data_queue *data_vq = &vcrypto->data_vq[0];
|
||||
|
||||
if (!req->nbytes)
|
||||
return 0;
|
||||
if (req->nbytes % AES_BLOCK_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
vc_req->dataq = data_vq;
|
||||
vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
|
||||
vc_sym_req->ablkcipher_ctx = ctx;
|
||||
|
|
@ -518,6 +521,11 @@ static int virtio_crypto_ablkcipher_decrypt(struct ablkcipher_request *req)
|
|||
/* Use the first data virtqueue as default */
|
||||
struct data_queue *data_vq = &vcrypto->data_vq[0];
|
||||
|
||||
if (!req->nbytes)
|
||||
return 0;
|
||||
if (req->nbytes % AES_BLOCK_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
vc_req->dataq = data_vq;
|
||||
vc_req->alg_cb = virtio_crypto_dataq_sym_callback;
|
||||
vc_sym_req->ablkcipher_ctx = ctx;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user