|
DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
This file contains the definitions, prototypes, constants, and other information necessary for the identification and processing of AMM Resource Identifiers (ARIs). More...
#include "cbor.h"#include "access.h"#include "text_util.h"#include "cace/util/defs.h"#include "cace/util/logging.h"#include <qcbor/qcbor_spiffy_decode.h>#include "text.h"
Include dependency graph for cbor.c:Functions | |
| int | cace_ari_cbor_encode (cace_data_t *buf, const cace_ari_t *ari) |
| Encode an ARI to binary form. | |
| static int | cace_ari_cbor_encode_idseg (QCBOREncodeContext *enc, const cace_ari_idseg_t *obj) |
| static int | cace_ari_cbor_decode_idseg (QCBORDecodeContext *dec, cace_ari_idseg_t *obj) |
| static int | cace_ari_cbor_encode_optdate (QCBOREncodeContext *enc, const cace_ari_date_t *obj) |
| static int | cace_ari_cbor_decode_optdate (QCBORDecodeContext *dec, cace_ari_date_t *obj) |
| static int | cace_ari_cbor_encode_timespec (QCBOREncodeContext *enc, const struct timespec *ts) |
| static int | cace_ari_cbor_decode_timespec (QCBORDecodeContext *dec, struct timespec *ts) |
| static int | cace_ari_cbor_encode_ac (QCBOREncodeContext *enc, const cace_ari_ac_t *obj) |
| static int | cace_ari_cbor_decode_ac (QCBORDecodeContext *dec, cace_ari_ac_t *obj) |
| static int | cace_ari_cbor_encode_am (QCBOREncodeContext *enc, const cace_ari_am_t *obj) |
| static int | cace_ari_cbor_decode_am (QCBORDecodeContext *dec, cace_ari_am_t *obj) |
| static int | cace_ari_cbor_encode_tbl (QCBOREncodeContext *enc, const cace_ari_tbl_t *obj) |
| static int | cace_ari_cbor_decode_tbl (QCBORDecodeContext *dec, cace_ari_tbl_t *obj) |
| static int | cace_ari_cbor_encode_execset (QCBOREncodeContext *enc, const cace_ari_execset_t *obj) |
| static int | cace_ari_cbor_decode_execset (QCBORDecodeContext *dec, cace_ari_execset_t *obj) |
| static int | cace_ari_cbor_encode_report (QCBOREncodeContext *enc, const cace_ari_report_t *obj) |
| static int | cace_ari_cbor_decode_report (QCBORDecodeContext *dec, cace_ari_report_t *obj) |
| static int | cace_ari_cbor_encode_rptset (QCBOREncodeContext *enc, const cace_ari_rptset_t *obj) |
| static int | cace_ari_cbor_decode_rptset (QCBORDecodeContext *dec, cace_ari_rptset_t *obj) |
| static int | cace_ari_cbor_encode_primval (QCBOREncodeContext *enc, const cace_ari_lit_t *obj) |
| int | cace_ari_cbor_encode_stream (QCBOREncodeContext *enc, const cace_ari_t *ari) |
| Lower-level stream encoding interface. | |
| static int | cace_ari_cbor_decode_primval (QCBORDecodeContext *dec, cace_ari_lit_t *lit) |
| static int | cace_ari_cbor_decode_label (QCBORDecodeContext *dec, cace_ari_lit_t *lit) |
| int | cace_ari_cbor_decode (cace_ari_t *ari, const cace_data_t *buf, size_t *used, char **errm) |
| Decode an ARI from binary form. | |
| int | cace_ari_cbor_decode_stream (QCBORDecodeContext *dec, cace_ari_t *ari) |
| Lower-level stream decoding interface. | |
Variables | |
| static const int64_t | nsec_scale = (int64_t)1e9 |
This file contains the definitions, prototypes, constants, and other information necessary for the identification and processing of AMM Resource Identifiers (ARIs).
Every object in the AMM can be uniquely identified using an ARI.
| int cace_ari_cbor_decode | ( | cace_ari_t * | ari, |
| const cace_data_t * | buf, | ||
| size_t * | used, | ||
| char ** | errm | ||
| ) |
Decode an ARI from binary form.
used is non-null, extra data after the ARI is not considered to be a decoding failure and the caller is assumed to compare the used value against the buffer size itself.| [out] | ari | The ARI to decode into. The struct must already be initialized. |
| [in] | buf | The buffer to decode from. |
| [out] | used | If non-null, the size of used data for this decoding is placed here. This is set even if decoding fails to allow skipping well-formed CBOR which is not a valid ARI. |
| [out] | errm | If non-null, this will be set to a specific error message associated with any failure. When the return code is non-zero, if the pointed-to pointer is non-null it must be freed using CACE_FREE(). |
References cace_ari_cbor_decode_stream(), cace_ari_reset(), CHKERR1, errm, cace_data_t::len, and cace_data_t::ptr.
Referenced by agentParseHex(), cace_amp_msg_decode(), cace_amp_proxy_cli_recv(), cace_amp_proxy_msg_recv(), check_cnst(), check_convert(), check_decoding(), check_lookup(), check_match(), check_normalize(), LLVMFuzzerTestOneInput(), read_cbor(), read_cborhex(), stdin_recv(), suiteSetUp(), test_ari_cmp(), test_ari_equal(), test_ari_hash(), test_cace_ari_cbor_decode_invalid(), test_cace_ari_cbor_decode_partial(), TEST_CASE(), TEST_CASE(), test_util_ari_decode(), and transform_cbor_str_to_cace_data().
|
static |
References cace_ari_cbor_decode_stream(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, cace_ari_set_move(), CACE_LOG_ERR, and cace_ari_ac_t::items.
Referenced by cace_ari_cbor_decode_stream().
|
static |
References cace_ari_t::as_lit, cace_ari_cbor_decode_stream(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, cace_ari_set_move(), CACE_ARI_TEXT_ENC_OPTS_DEFAULT, cace_ari_text_encode(), CACE_LOG_DEBUG, CACE_LOG_ERR, cace_ari_lit_t::has_ari_type, cace_ari_t::is_ref, and cace_ari_am_t::items.
Referenced by cace_ari_cbor_decode_stream().
|
static |
References cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_cbor_decode_stream(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_UINT64, cace_ari_set_move(), CACE_LOG_ERR, cace_ari_t::is_ref, cace_ari_execset_t::nonce, cace_ari_lit_t::prim_type, cace_ari_execset_t::targets, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_decode_stream().
|
static |
References cace_ari_idseg_t::as_int, cace_ari_idseg_t::as_text, and cace_ari_idseg_t::form.
Referenced by cace_ari_cbor_decode_stream().
|
static |
References cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_int64, cace_ari_prim_val_u::as_uint64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, cace_data_append_byte(), cace_data_copy_from(), cace_data_init(), cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_decode_stream().
|
static |
|
static |
References cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_prim_val_u::as_uint64, CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, CACE_ARI_PRIM_UNDEFINED, cace_data_append_byte(), cace_data_copy_from(), cace_data_init(), cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_decode_stream().
|
static |
|
static |
References cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_cbor_decode_report(), cace_ari_cbor_decode_stream(), cace_ari_cbor_decode_timespec(), CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_UINT64, cace_ari_report_deinit(), cace_ari_report_init(), cace_ari_set_tp(), CACE_LOG_ERR, cace_ari_t::is_ref, cace_ari_rptset_t::nonce, cace_ari_lit_t::prim_type, cace_ari_rptset_t::reftime, cace_ari_rptset_t::reports, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_decode_stream().
| int cace_ari_cbor_decode_stream | ( | QCBORDecodeContext * | decoder, |
| cace_ari_t * | ari | ||
| ) |
Lower-level stream decoding interface.
| [in] | decoder | The existing decoder to write with. |
| [out] | ari | The ARI to decode into. The struct must already be initialized. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_ac, cace_ari_params_t::as_ac, cace_ari_prim_val_u::as_am, cace_ari_params_t::as_am, cace_ari_prim_val_u::as_execset, cace_ari_prim_val_u::as_rptset, cace_ari_prim_val_u::as_tbl, cace_ari_prim_val_u::as_timespec, cace_ari_cbor_decode_ac(), cace_ari_cbor_decode_am(), cace_ari_cbor_decode_execset(), cace_ari_cbor_decode_idseg(), cace_ari_cbor_decode_label(), cace_ari_cbor_decode_optdate(), cace_ari_cbor_decode_primval(), cace_ari_cbor_decode_rptset(), cace_ari_cbor_decode_tbl(), cace_ari_cbor_decode_timespec(), cace_ari_init_lit(), cace_ari_init_objref(), cace_ari_lit_init_container(), cace_ari_objpath_derive_type(), CACE_ARI_PARAMS_AC, CACE_ARI_PARAMS_AM, CACE_ARI_PARAMS_NONE, CACE_ARI_PRIM_TIMESPEC, cace_ari_reset(), CACE_ARI_TYPE_AC, CACE_ARI_TYPE_AM, CACE_ARI_TYPE_ARITYPE, CACE_ARI_TYPE_EXECSET, CACE_ARI_TYPE_LABEL, CACE_ARI_TYPE_RPTSET, CACE_ARI_TYPE_TBL, CACE_ARI_TYPE_TD, CACE_ARI_TYPE_TP, cace_ari_lit_t::has_ari_type, cace_ari_objpath_t::model_id, cace_ari_objpath_t::model_rev, cace_ari_objpath_t::obj_id, cace_ari_ref_t::objpath, cace_ari_objpath_t::org_id, cace_ari_ref_t::params, cace_ari_lit_t::prim_type, cace_ari_params_t::state, cace_ari_objpath_t::type_id, cace_ari_date_t::valid, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_decode(), cace_ari_cbor_decode_ac(), cace_ari_cbor_decode_am(), cace_ari_cbor_decode_execset(), cace_ari_cbor_decode_report(), cace_ari_cbor_decode_rptset(), and cace_ari_cbor_decode_tbl().
|
static |
References cace_ari_cbor_decode_stream(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, CACE_LOG_ERR, cace_ari_tbl_t::items, and cace_ari_tbl_t::ncols.
Referenced by cace_ari_cbor_decode_stream().
|
static |
References nsec_scale.
Referenced by cace_ari_cbor_decode_report(), cace_ari_cbor_decode_rptset(), and cace_ari_cbor_decode_stream().
| int cace_ari_cbor_encode | ( | cace_data_t * | buf, |
| const cace_ari_t * | ari | ||
| ) |
Encode an ARI to binary form.
| [out] | buf | The data buffer to modify and write the result into. It will contain a well-formed CBOR item if successful. |
| [in] | ari | The ARI to encode from. |
References cace_ari_cbor_encode_stream(), cace_data_copy_from(), CACE_LOG_WARNING, CHKERR1, cace_data_t::len, and cace_data_t::ptr.
Referenced by agentShowHexReports(), cace_amp_msg_encode(), cace_amp_proxy_cli_send(), cace_amp_proxy_msg_send(), check_convert(), check_encoding(), LLVMFuzzerTestOneInput(), refdm_db_insert_execset(), refdm_db_insert_rptset(), stdout_send(), TEST_CASE(), test_util_ari_encode(), write_cbor(), and write_cborhex().
|
static |
References cace_ari_cbor_encode_stream(), and cace_ari_ac_t::items.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References cace_ari_cbor_encode_stream(), and cace_ari_am_t::items.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References cace_ari_cbor_encode_stream(), cace_ari_execset_t::nonce, and cace_ari_execset_t::targets.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References cace_ari_idseg_t::as_int, cace_ari_idseg_t::as_text, and cace_ari_idseg_t::form.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References cace_date_encode(), cace_ari_date_t::parts, and cace_ari_date_t::valid.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_prim_val_u::as_timespec, cace_ari_prim_val_u::as_uint64, cace_ari_cbor_encode_timespec(), CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_OTHER, CACE_ARI_PRIM_TIMESPEC, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, CACE_ARI_PRIM_UNDEFINED, cace_data_t::len, cace_ari_lit_t::prim_type, cace_data_t::ptr, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_encode_stream().
|
static |
|
static |
| int cace_ari_cbor_encode_stream | ( | QCBOREncodeContext * | encoder, |
| const cace_ari_t * | ari | ||
| ) |
Lower-level stream encoding interface.
| [in] | encoder | The existing encoder to write with. |
| [in] | ari | The ARI to encode from. |
References cace_ari_lit_t::ari_type, cace_ari_objpath_t::ari_type, cace_ari_prim_val_u::as_ac, cace_ari_params_t::as_ac, cace_ari_prim_val_u::as_am, cace_ari_params_t::as_am, cace_ari_prim_val_u::as_execset, cace_ari_t::as_lit, cace_ari_t::as_ref, cace_ari_prim_val_u::as_rptset, cace_ari_prim_val_u::as_tbl, cace_ari_cbor_encode_ac(), cace_ari_cbor_encode_am(), cace_ari_cbor_encode_execset(), cace_ari_cbor_encode_idseg(), cace_ari_cbor_encode_optdate(), cace_ari_cbor_encode_primval(), cace_ari_cbor_encode_rptset(), cace_ari_cbor_encode_tbl(), CACE_ARI_PARAMS_AC, CACE_ARI_PARAMS_AM, CACE_ARI_PARAMS_NONE, CACE_ARI_TYPE_AC, CACE_ARI_TYPE_AM, CACE_ARI_TYPE_ARITYPE, CACE_ARI_TYPE_EXECSET, CACE_ARI_TYPE_LABEL, CACE_ARI_TYPE_RPTSET, CACE_ARI_TYPE_TBL, CHKERR1, cace_ari_lit_t::has_ari_type, cace_ari_objpath_t::has_ari_type, cace_ari_t::is_ref, cace_ari_objpath_t::model_id, cace_ari_objpath_t::model_rev, cace_ari_objpath_t::obj_id, cace_ari_ref_t::objpath, cace_ari_objpath_t::org_id, cace_ari_ref_t::params, cace_ari_params_t::state, cace_ari_objpath_t::type_id, and cace_ari_lit_t::value.
Referenced by cace_ari_cbor_encode(), cace_ari_cbor_encode_ac(), cace_ari_cbor_encode_am(), cace_ari_cbor_encode_execset(), cace_ari_cbor_encode_report(), cace_ari_cbor_encode_rptset(), and cace_ari_cbor_encode_tbl().
|
static |
References cace_ari_cbor_encode_stream(), cace_ari_tbl_t::items, and cace_ari_tbl_t::ncols.
Referenced by cace_ari_cbor_encode_stream().
|
static |
References nsec_scale.
Referenced by cace_ari_cbor_encode_primval(), cace_ari_cbor_encode_report(), and cace_ari_cbor_encode_rptset().
|
static |
Referenced by cace_ari_cbor_decode_timespec(), and cace_ari_cbor_encode_timespec().