]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Expand AES mode macro into explicit functions
authorSimo Sorce <simo@redhat.com>
Mon, 15 Jun 2026 13:59:47 +0000 (09:59 -0400)
committerDmitry Belyavskiy <beldmit@gmail.com>
Sat, 27 Jun 2026 09:04:36 +0000 (11:04 +0200)
This removes the PROV_CIPHER_HW_aes_mode macro and replaces it with explicitly
written function definitions for each AES mode (ECB, CBC, CFB128, CFB8, CFB1,
OFB128, CTR).

Expanding macro-generated functions improves overall code readability, allows
code navigation tools to properly index the function signatures, and provides
clearer stack traces during debugging.

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
MergeDate: Sat Jun 27 09:06:05 2026
(Merged from https://github.com/openssl/openssl/pull/31472)

providers/implementations/ciphers/cipher_aes_hw.c

index b282393d5b88e09d3e4ca50a0b3d0f5dddb464fe..03ddb469471ded7d8630267d2d4f3300d3027e70 100644 (file)
@@ -252,16 +252,37 @@ static const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_mode(enum aes_modes mode,
     return aes_hw_mode;
 }
 
-#define PROV_CIPHER_HW_aes_mode(ENUM_MODE, mode)                         \
-    const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_##mode(size_t keybits) \
-    {                                                                    \
-        return ossl_prov_cipher_hw_aes_mode(ENUM_MODE, keybits);         \
-    }
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_ecb(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_ECB, keybits);
+}
+
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_cbc(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_CBC, keybits);
+}
+
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_cfb128(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_CFB128, keybits);
+}
+
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_cfb8(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_CFB8, keybits);
+}
+
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_cfb1(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_CFB1, keybits);
+}
 
-PROV_CIPHER_HW_aes_mode(AES_MODE_ECB, ecb)
-PROV_CIPHER_HW_aes_mode(AES_MODE_CBC, cbc)
-PROV_CIPHER_HW_aes_mode(AES_MODE_CFB128, cfb128)
-PROV_CIPHER_HW_aes_mode(AES_MODE_CFB8, cfb8)
-PROV_CIPHER_HW_aes_mode(AES_MODE_CFB1, cfb1)
-PROV_CIPHER_HW_aes_mode(AES_MODE_OFB128, ofb128)
-PROV_CIPHER_HW_aes_mode(AES_MODE_CTR, ctr)
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_ofb128(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_OFB128, keybits);
+}
+
+const PROV_CIPHER_HW *ossl_prov_cipher_hw_aes_ctr(size_t keybits)
+{
+    return ossl_prov_cipher_hw_aes_mode(AES_MODE_CTR, keybits);
+}