From: Philip Prindeville Date: Tue, 26 Jul 2022 17:38:32 +0000 (-0600) Subject: res_crypto: make keys reloadable on demand for testing X-Git-Tag: 20.0.0-rc1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2d7656cb507d67be8c362f034e9680beb4a64a8c;p=thirdparty%2Fasterisk.git res_crypto: make keys reloadable on demand for testing ASTERISK-30045 Change-Id: If59bbb50c1771084bfe2fef307a6077c90d35ce8 --- diff --git a/include/asterisk/crypto.h b/include/asterisk/crypto.h index 38c413f4db..7b889e117c 100644 --- a/include/asterisk/crypto.h +++ b/include/asterisk/crypto.h @@ -180,6 +180,8 @@ AST_OPTIONAL_API(void, ast_aes_decrypt, AST_OPTIONAL_API(int, ast_crypto_loaded, (void), { return 0; }); +AST_OPTIONAL_API(int, ast_crypto_reload, (void), { return 0; }); + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/res/res_crypto.c b/res/res_crypto.c index 71cc9798d1..19b011db92 100644 --- a/res/res_crypto.c +++ b/res/res_crypto.c @@ -95,6 +95,8 @@ struct ast_key { static AST_RWLIST_HEAD_STATIC(keys, ast_key); +static void crypto_load(int ifd, int ofd); + /*! * \brief setting of priv key * \param buf @@ -465,6 +467,12 @@ int AST_OPTIONAL_API_NAME(ast_crypto_loaded)(void) return 1; } +int AST_OPTIONAL_API_NAME(ast_crypto_reload)(void) +{ + crypto_load(-1, -1); + return 1; +} + int AST_OPTIONAL_API_NAME(ast_aes_set_encrypt_key)(const unsigned char *key, ast_aes_encrypt_key *ctx) { return AES_set_encrypt_key(key, 128, ctx);