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);