Asterisk - The Open Source Telephony Project GIT-master-b023714
|
#include "asterisk.h"
#include "asterisk/app.h"
#include "asterisk/cli.h"
#include "asterisk/conversions.h"
#include "asterisk/module.h"
#include "asterisk/global_datastores.h"
#include "asterisk/pbx.h"
#include "res_stir_shaken/stir_shaken.h"
Go to the source code of this file.
Data Structures | |
struct | stir_datastore |
Macros | |
#define | _TRACE_PREFIX_ "rss",__LINE__, "" |
#define | TN_AUTH_LIST_LONG "TNAuthorizationList" |
#define | TN_AUTH_LIST_OID "1.3.6.1.5.5.7.1.26" |
#define | TN_AUTH_LIST_SHORT "TNAuthList" |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
int | ast_stir_shaken_add_result_to_channel (struct ast_stir_shaken_vs_ctx *ctx) |
Add a STIR/SHAKEN verification result to a channel. | |
static int | check_for_old_config (void) |
static int | func_read (struct ast_channel *chan, const char *function, char *data, char *buf, size_t len) |
Retrieves STIR/SHAKEN verification information for the channel via dialplan. Examples: | |
int | get_tn_auth_nid (void) |
Retrieves the OpenSSL NID for the TN Auth list extension. | |
static int | load_module (void) |
static int | reload_module (void) |
static void | stir_datastore_destroy_cb (void *data) |
The callback to destroy a stir_shaken_datastore. | |
static void | stir_datastore_free (struct stir_datastore *datastore) |
Frees a stir_shaken_datastore structure. | |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER , .description = "STIR/SHAKEN Module for Asterisk" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload_module, .load_pri = AST_MODPRI_CHANNEL_DEPEND - 1, .requires = "res_curl", } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static const struct ast_datastore_info | stir_shaken_datastore_info |
static struct ast_custom_function | stir_shaken_function |
static int | tn_auth_list_nid |
#define _TRACE_PREFIX_ "rss",__LINE__, "" |
Definition at line 26 of file res_stir_shaken.c.
#define TN_AUTH_LIST_LONG "TNAuthorizationList" |
Definition at line 300 of file res_stir_shaken.c.
#define TN_AUTH_LIST_OID "1.3.6.1.5.5.7.1.26" |
Definition at line 298 of file res_stir_shaken.c.
#define TN_AUTH_LIST_SHORT "TNAuthList" |
Definition at line 299 of file res_stir_shaken.c.
|
static |
Definition at line 390 of file res_stir_shaken.c.
|
static |
Definition at line 390 of file res_stir_shaken.c.
struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) |
Definition at line 390 of file res_stir_shaken.c.
int ast_stir_shaken_add_result_to_channel | ( | struct ast_stir_shaken_vs_ctx * | ctx | ) |
Add a STIR/SHAKEN verification result to a channel.
ctx | VS context |
-1 | on failure |
0 | on success |
Definition at line 89 of file res_stir_shaken.c.
References ast_calloc, ast_channel_datastore_add(), ast_channel_lock, ast_channel_name(), ast_channel_unlock, ast_datastore_alloc, ast_log, ast_strdup, stir_datastore::attestation, ast_stir_shaken_vs_ctx::attestation, ast_stir_shaken_vs_ctx::chan, ast_datastore::data, ast_stir_shaken_vs_ctx::failure_reason, stir_datastore::identity, ast_stir_shaken_vs_ctx::identity_hdr, LOG_ERROR, NULL, stir_datastore_free(), stir_shaken_datastore_info, and stir_datastore::verify_result.
Referenced by process_failure(), and stir_shaken_incoming_request().
|
static |
Definition at line 302 of file res_stir_shaken.c.
References ast_category_browse(), ast_config_destroy(), ast_config_load, ast_log, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, ast_variable_retrieve(), CONFIG_STATUS_FILEINVALID, CONFIG_STATUS_FILEMISSING, CONFIG_STATUS_FILEUNCHANGED, LOG_ERROR, NULL, and RAII_VAR.
Referenced by load_module().
|
static |
Retrieves STIR/SHAKEN verification information for the channel via dialplan. Examples:
STIR_SHAKEN(count) STIR_SHAKEN(0, identity) STIR_SHAKEN(1, attestation) STIR_SHAKEN(27, verify_result)
-1 | on failure |
0 | on success |
Definition at line 169 of file res_stir_shaken.c.
References args, AST_APP_ARG, ast_channel_datastores(), ast_channel_lock, ast_channel_unlock, ast_copy_string(), AST_DECLARE_APP_ARGS, AST_LIST_TRAVERSE, ast_log, AST_STANDARD_APP_ARGS, ast_str_to_uint(), ast_strdupa, ast_strip(), ast_strlen_zero(), stir_datastore::attestation, buf, ast_datastore::data, ast_datastore::entry, first, stir_datastore::identity, ast_datastore::info, len(), LOG_ERROR, LOG_WARNING, stir_shaken_datastore_info, stir_datastore::verify_result, and vs_response_code_to_str().
int get_tn_auth_nid | ( | void | ) |
Retrieves the OpenSSL NID for the TN Auth list extension.
The | NID |
Definition at line 41 of file res_stir_shaken.c.
References tn_auth_list_nid.
Referenced by check_tn_auth_list().
|
static |
Definition at line 347 of file res_stir_shaken.c.
References ast_custom_function_register, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, check_for_old_config(), common_config_load(), crypto_load(), crypto_register_x509_extension(), stir_shaken_function, TN_AUTH_LIST_LONG, tn_auth_list_nid, TN_AUTH_LIST_OID, TN_AUTH_LIST_SHORT, and unload_module().
|
static |
|
static |
The callback to destroy a stir_shaken_datastore.
data | The stir_shaken_datastore |
Definition at line 77 of file res_stir_shaken.c.
References stir_datastore_free().
|
static |
Frees a stir_shaken_datastore structure.
datastore | The datastore to free |
Definition at line 61 of file res_stir_shaken.c.
References ast_free, stir_datastore::attestation, and stir_datastore::identity.
Referenced by ast_stir_shaken_add_result_to_channel(), and stir_datastore_destroy_cb().
|
static |
Definition at line 286 of file res_stir_shaken.c.
References ast_custom_function_unregister(), common_config_unload(), crypto_unload(), and stir_shaken_function.
Referenced by load_module().
|
static |
Definition at line 390 of file res_stir_shaken.c.
|
static |
Definition at line 390 of file res_stir_shaken.c.
|
static |
Definition at line 84 of file res_stir_shaken.c.
Referenced by ast_stir_shaken_add_result_to_channel(), and func_read().
|
static |
Definition at line 276 of file res_stir_shaken.c.
Referenced by load_module(), and unload_module().
|
static |
Definition at line 39 of file res_stir_shaken.c.
Referenced by get_tn_auth_nid(), and load_module().