[PATCH 5/6] rijndael-aesni: prevent inlining AESNI functions by LTO
Jussi Kivilinna <[email protected]> Mon, 29 Dec 2025 20:01:38 +0200
| Newsgroups | gmane.comp.encryption.gpg.libgcrypt.devel |
|---|---|
| Message-ID | <[email protected]> |
* cipher/rijndael-aesni.c (_gcry_aes_aesni_do_setkey) (_gcry_aes_aesni_prepare_decryption, _gcry_aes_aesni_encrypt) (_gcry_aes_aesni_ecb_crypt, _gcry_aes_aesni_cfb_enc) (_gcry_aes_aesni_cbc_enc, _gcry_aes_aesni_ctr_enc) (_gcry_aes_aesni_ctr32le_enc, _gcry_aes_aesni_decrypt) (_gcry_aes_aesni_cfb_dec, _gcry_aes_aesni_cbc_dec) (_gcry_aes_aesni_ocb_crypt, _gcry_aes_aesni_ocb_auth) (_gcry_aes_aesni_xts_crypt): Mark function as noinline. -- Signed-off-by: Jussi Kivilinna <[email protected]> --- cipher/rijndael-aesni.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/cipher/rijndael-aesni.c b/cipher/rijndael-aesni.c index 906737a6..eedd89e9 100644 --- a/cipher/rijndael-aesni.c +++ b/cipher/rijndael-aesni.c @@ -165,7 +165,7 @@ aes_ocb_get_l (gcry_cipher_hd_t c, u64 n) # endif #endif -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_do_setkey (RIJNDAEL_context *ctx, const byte *key) { aesni_prepare_2_7_variable; @@ -447,7 +447,7 @@ do_aesni_prepare_decryption (RIJNDAEL_context *ctx) #undef DO_AESNI_AESIMC } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_prepare_decryption (RIJNDAEL_context *ctx) { aesni_prepare(); @@ -1698,7 +1698,7 @@ do_aesni_ctr_8 (const RIJNDAEL_context *ctx, #endif /* __x86_64__ */ -unsigned int ASM_FUNC_ATTR +unsigned int ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_encrypt (const RIJNDAEL_context *ctx, unsigned char *dst, const unsigned char *src) { @@ -1717,7 +1717,7 @@ _gcry_aes_aesni_encrypt (const RIJNDAEL_context *ctx, unsigned char *dst, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_ecb_crypt (RIJNDAEL_context *ctx, unsigned char *dst, const unsigned char *src, size_t nblocks, int encrypt) @@ -1871,7 +1871,7 @@ _gcry_aes_aesni_ecb_crypt (RIJNDAEL_context *ctx, unsigned char *dst, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_cfb_enc (RIJNDAEL_context *ctx, unsigned char *iv, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks) @@ -1970,7 +1970,7 @@ _gcry_aes_aesni_cfb_enc (RIJNDAEL_context *ctx, unsigned char *iv, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_cbc_enc (RIJNDAEL_context *ctx, unsigned char *iv, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks, int cbc_mac) @@ -2082,7 +2082,7 @@ _gcry_aes_aesni_cbc_enc (RIJNDAEL_context *ctx, unsigned char *iv, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_ctr_enc (RIJNDAEL_context *ctx, unsigned char *ctr, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks) @@ -2136,7 +2136,7 @@ _gcry_aes_aesni_ctr_enc (RIJNDAEL_context *ctx, unsigned char *ctr, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_ctr32le_enc (RIJNDAEL_context *ctx, unsigned char *ctr, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks) @@ -2328,7 +2328,7 @@ _gcry_aes_aesni_ctr32le_enc (RIJNDAEL_context *ctx, unsigned char *ctr, } -unsigned int ASM_FUNC_ATTR +unsigned int ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_decrypt (const RIJNDAEL_context *ctx, unsigned char *dst, const unsigned char *src) { @@ -2347,7 +2347,7 @@ _gcry_aes_aesni_decrypt (const RIJNDAEL_context *ctx, unsigned char *dst, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_cfb_dec (RIJNDAEL_context *ctx, unsigned char *iv, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks) @@ -2524,7 +2524,7 @@ _gcry_aes_aesni_cfb_dec (RIJNDAEL_context *ctx, unsigned char *iv, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_cbc_dec (RIJNDAEL_context *ctx, unsigned char *iv, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks) @@ -3855,7 +3855,7 @@ aesni_ocb_dec (gcry_cipher_hd_t c, void *outbuf_arg, } -size_t ASM_FUNC_ATTR +size_t ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_ocb_crypt(gcry_cipher_hd_t c, void *outbuf_arg, const void *inbuf_arg, size_t nblocks, int encrypt) { @@ -3866,7 +3866,7 @@ _gcry_aes_aesni_ocb_crypt(gcry_cipher_hd_t c, void *outbuf_arg, } -size_t ASM_FUNC_ATTR +size_t ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_ocb_auth (gcry_cipher_hd_t c, const void *abuf_arg, size_t nblocks) { @@ -5015,7 +5015,7 @@ _gcry_aes_aesni_xts_dec (RIJNDAEL_context *ctx, unsigned char *tweak, } -void ASM_FUNC_ATTR +void ASM_FUNC_ATTR_NOINLINE _gcry_aes_aesni_xts_crypt (RIJNDAEL_context *ctx, unsigned char *tweak, unsigned char *outbuf, const unsigned char *inbuf, size_t nblocks, int encrypt) -- 2.51.0