@samitouri / QOSamiQemu / commits / b781906fcc

crypto/cipher: Add GCM to QCryptoCipherMode

Introduce the GCM cipher mode so authenticated encryption can be built on top of the existing qcrypto_cipher API. GCM is an IV-based mode, so register it in mode_need_iv. No backend advertises it yet, so it stays unsupported until a backend and the AAD/tag helpers are added in the following patches. Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Acked-by: Daniel P. Berrangé <berrange@redhat.com> Acked-by: Markus Armbruster <armbru@redhat.com> Link: https://lore.kernel.org/qemu-devel/20260811060115.1849266-8-jamin_lin@aspeedtech.com Signed-off-by: Cédric Le Goater <clg@redhat.com>

Jamin Lin committed Aug 11, 2026 at 06:01 UTC b781906fccf1e0668255f73fa9d96670a4f91ddb
2 files changed +4 -1
crypto/cipher.c
+1
@@ -66,6 +66,7 @@ static const bool mode_need_iv[QCRYPTO_CIPHER_MODE__MAX] = {
66 [QCRYPTO_CIPHER_MODE_CBC] = true,
67 [QCRYPTO_CIPHER_MODE_XTS] = true,
68 [QCRYPTO_CIPHER_MODE_CTR] = true,
69 + [QCRYPTO_CIPHER_MODE_GCM] = true,
70 };
71
72
qapi/crypto.json
+3 -1
@@ -121,10 +121,12 @@
121 #
122 # @ctr: Counter (Since 2.8)
123 #
124 +# @gcm: Galois/Counter Mode (Since 11.2)
125 +#
126 # Since: 2.6
127 ##
128 { 'enum': 'QCryptoCipherMode',
127 - 'data': ['ecb', 'cbc', 'xts', 'ctr']}
129 + 'data': ['ecb', 'cbc', 'xts', 'ctr', 'gcm']}
130
131 ##
132 # @QCryptoIVGenAlgo: