Commit e60d940b29 for openssl.org

commit e60d940b29504b7b1f15d1fe597ae9cdde701c8a
Author: Simo Sorce <simo@redhat.com>
Date:   Mon Jun 15 09:59:47 2026 -0400

    Expand AES mode macro into explicit functions

    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)

diff --git a/providers/implementations/ciphers/cipher_aes_hw.c b/providers/implementations/ciphers/cipher_aes_hw.c
index b282393d5b..03ddb46947 100644
--- a/providers/implementations/ciphers/cipher_aes_hw.c
+++ b/providers/implementations/ciphers/cipher_aes_hw.c
@@ -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);
+}