Module: kamailio
Branch: master
Commit: 2024253fac4c4fda48f2b0c5b9a1f9717294aa22
URL: 
https://github.com/kamailio/kamailio/commit/2024253fac4c4fda48f2b0c5b9a1f9717294aa22

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2024-01-09T11:56:50+01:00

gcrypt: added aes_mode parameter

- specify AES encryption mode:
  - 0: ECB (GCRY_CIPHER_MODE_ECB) - default
  - 1: CBC (GCRY_CIPHER_MODE_CBC)

---

Modified: src/modules/gcrypt/gcrypt_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/2024253fac4c4fda48f2b0c5b9a1f9717294aa22.diff
Patch: 
https://github.com/kamailio/kamailio/commit/2024253fac4c4fda48f2b0c5b9a1f9717294aa22.patch

---

diff --git a/src/modules/gcrypt/gcrypt_mod.c b/src/modules/gcrypt/gcrypt_mod.c
index 1554154d9cc..8a5550139c8 100644
--- a/src/modules/gcrypt/gcrypt_mod.c
+++ b/src/modules/gcrypt/gcrypt_mod.c
@@ -53,6 +53,8 @@ static int fixup_gcrypt_aes_decrypt(void **param, int 
param_no);
 /* init vector value */
 static str _gcrypt_init_vector = str_init("SIP/2.0 is RFC3261");
 static int _gcrypt_register_callid = 0;
+static int _gcrypt_aes_mode_param = 0;
+static int _gcrypt_aes_mode = GCRY_CIPHER_MODE_ECB;
 
 /* clang-format off */
 static cmd_export_t cmds[] = {
@@ -66,6 +68,7 @@ static cmd_export_t cmds[] = {
 static param_export_t params[] = {
        {"init_vector", PARAM_STR, &_gcrypt_init_vector},
        {"register_callid", PARAM_INT, &_gcrypt_register_callid},
+       {"aes_mode", PARAM_INT, &_gcrypt_aes_mode_param},
 
        {0, 0, 0}
 };
@@ -100,6 +103,9 @@ static int mod_init(void)
                }
                LM_DBG("registered crypto callid callback\n");
        }
+       if(_gcrypt_aes_mode_param == 1) {
+               _gcrypt_aes_mode = GCRY_CIPHER_MODE_CBC;
+       }
 
        return 0;
 }
@@ -140,7 +146,7 @@ static int ki_gcrypt_aes_encrypt_helper(
 
        gcry_ret = gcry_cipher_open(&cipher_hd, // gcry_cipher_hd_t *hd
                        GCRY_CIPHER_AES256,                             // int 
algo
-                       GCRY_CIPHER_MODE_ECB,                   // int mode
+                       _gcrypt_aes_mode,                               // int 
mode
                        0);                                                     
        // unsigned int flags
        if(gcry_ret) {
                LM_ERR("gcry cipher open failed:  %s/%s\n", 
gcry_strsource(gcry_ret),
@@ -306,7 +312,7 @@ static int ki_gcrypt_aes_decrypt_helper(
 
        gcry_ret = gcry_cipher_open(&cipher_hd, // gcry_cipher_hd_t *hd
                        GCRY_CIPHER_AES256,                             // int 
algo
-                       GCRY_CIPHER_MODE_ECB,                   // int mode
+                       _gcrypt_aes_mode,                               // int 
mode
                        0);                                                     
        // unsigned int flags
        if(gcry_ret) {
                LM_ERR("gcry cipher open failed:  %s/%s\n", 
gcry_strsource(gcry_ret),

_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to [email protected]

Reply via email to