|
BSL v1.1.1 - 19.g31939de
AMMOS Bundle Protocol Security Library (BSL)
|
Implementation of functions to interact with the security context. More...
#include <BPSecLib_Private.h>#include "AbsSecBlock.h"#include "PublicInterfaceImpl.h"#include "SecOperation.h"#include "SecOutcome.h"#include "SecurityActionSet.h"
Include dependency graph for SecurityContext.c:Functions | |
| static int | Encode_ASB (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, uint64_t blk_num, const BSL_AbsSecBlock_t *abs_sec_block) |
| static int | BSL_ExecAnySource_Post (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, const BSL_SecOper_t *sec_oper, const BSL_SecOutcome_t *outcome, BSL_AbsSecBlock_t *asb) |
| Common handling of informing new ASB content after an operation. | |
| int | BSL_ExecBIBSource (BSL_SecCtx_Execute_f sec_context_fn, BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper, BSL_SecOutcome_t *outcome) |
| Internal function to execute an operation as source. | |
| static int | BSL_ExecAnyVerifierAcceptor_Pre (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper, BSL_AbsSecBlock_t *asb) |
| Common handling of binding to existing ASB content from an operation. | |
| int | BSL_ExecBIBVerifierAcceptor (BSL_SecCtx_Execute_f sec_context_fn, BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper, BSL_SecOutcome_t *outcome) |
| int | BSL_ExecBCBVerifierAcceptor (BSL_SecCtx_Execute_f sec_context_fn, BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper, BSL_SecOutcome_t *outcome) |
| int | BSL_ExecBCBSource (BSL_SecCtx_Execute_f sec_context_fn, BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper, BSL_SecOutcome_t *outcome) |
| int | BSL_SecCtx_ExecutePolicyActionSet (BSL_LibCtx_t *lib, BSL_SecurityResponseSet_t *output_response, BSL_BundleRef_t *bundle, const BSL_SecurityActionSet_t *action_set) |
| Call the underlying security context to perform the given action. | |
| bool | BSL_SecCtx_ValidatePolicyActionSet (BSL_LibCtx_t *lib, const BSL_BundleRef_t *bundle, const BSL_SecurityActionSet_t *action_set) |
| Validate policy action set. | |
Implementation of functions to interact with the security context.
|
static |
Common handling of informing new ASB content after an operation.
References BSL_CanonicalBlock_t::block_num, BSL_AbsSecBlock_AddTarget(), BSL_BundleCtx_GetBlockMetadata(), BSL_ERR_HOST_CALLBACK_FAILED, BSL_Host_GetSecSrcEID(), BSL_LOG_ERR, BSL_SUCCESS, BSL_TLM_SECOP_FAIL_COUNT, BSL_TlmCounters_IncrementCounter(), Encode_ASB(), and BSL_AbsSecBlock_Target_t::results.
Referenced by BSL_ExecBCBSource(), and BSL_ExecBIBSource().
|
static |
Common handling of binding to existing ASB content from an operation.
References BSL_CanonicalBlock_t::block_num, BSL_AbsSecBlock_DecodeFromCBOR(), BSL_AbsSecBlock_IsConsistent(), BSL_BundleCtx_GetBlockMetadata(), BSL_BundleCtx_ReadBTSD(), BSL_Data_Deinit(), BSL_Data_InitBuffer(), BSL_ERR_DECODING, BSL_ERR_HOST_CALLBACK_FAILED, BSL_LOG_ERR, BSL_SeqReader_Destroy(), BSL_SeqReader_Get(), BSL_SUCCESS, BSL_TLM_ASB_DECODE_BYTES, BSL_TLM_ASB_DECODE_COUNT, BSL_TLM_SECOP_FAIL_COUNT, BSL_TlmCounters_IncrementCounter(), BSL_CanonicalBlock_t::btsd_len, CHK_PROPERTY, BSL_Data_t::len, BSL_Data_t::ptr, BSL_AbsSecBlock_Target_t::results, and BSL_AbsSecBlock_Target_t::target_block_num.
Referenced by BSL_ExecBCBVerifierAcceptor(), and BSL_ExecBIBVerifierAcceptor().
| int BSL_ExecBCBSource | ( | BSL_SecCtx_Execute_f | sec_context_fn, |
| BSL_LibCtx_t * | lib, | ||
| BSL_BundleRef_t * | bundle, | ||
| BSL_SecOper_t * | sec_oper, | ||
| BSL_SecOutcome_t * | outcome | ||
| ) |
References BSL_AbsSecBlock_Deinit(), BSL_AbsSecBlock_Init(), BSL_BundleCtx_CreateBlock(), BSL_ERR_HOST_CALLBACK_FAILED, BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecAnySource_Post(), BSL_LOG_ERR, BSL_LOG_INFO, BSL_SECBLOCKTYPE_BCB, BSL_SUCCESS, BSL_TLM_SECOP_FAIL_COUNT, BSL_TLM_SECOP_SOURCE_COUNT, BSL_TlmCounters_IncrementCounter(), and CHK_ARG_NONNULL.
Referenced by BSL_SecCtx_ExecutePolicyActionSet().
| int BSL_ExecBCBVerifierAcceptor | ( | BSL_SecCtx_Execute_f | sec_context_fn, |
| BSL_LibCtx_t * | lib, | ||
| BSL_BundleRef_t * | bundle, | ||
| BSL_SecOper_t * | sec_oper, | ||
| BSL_SecOutcome_t * | outcome | ||
| ) |
References BSL_AbsSecBlock_Deinit(), BSL_AbsSecBlock_Init(), BSL_AbsSecBlock_IsEmpty(), BSL_AbsSecBlock_StripResults(), BSL_BundleCtx_RemoveBlock(), BSL_ERR_FAILURE, BSL_ERR_HOST_CALLBACK_FAILED, BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecAnyVerifierAcceptor_Pre(), BSL_LOG_ERR, BSL_SecOper_GetTargetBlockNum(), BSL_SecOper_IsRoleVerifier(), BSL_SUCCESS, BSL_TLM_SECOP_ACCEPTOR_COUNT, BSL_TLM_SECOP_FAIL_COUNT, BSL_TLM_SECOP_VERIFIER_COUNT, BSL_TlmCounters_IncrementCounter(), CHK_ARG_NONNULL, and Encode_ASB().
Referenced by BSL_SecCtx_ExecutePolicyActionSet(), test_RFC9173_AppendixA_Example2_BCB_Acceptor(), and test_sec_accept_keyunwrap().
| int BSL_ExecBIBSource | ( | BSL_SecCtx_Execute_f | sec_context_fn, |
| BSL_LibCtx_t * | lib, | ||
| BSL_BundleRef_t * | bundle, | ||
| BSL_SecOper_t * | sec_oper, | ||
| BSL_SecOutcome_t * | outcome | ||
| ) |
Internal function to execute an operation as source.
References BSL_AbsSecBlock_Deinit(), BSL_AbsSecBlock_Init(), BSL_BundleCtx_CreateBlock(), BSL_BundleCtx_GetBlockMetadata(), BSL_ERR_BUNDLE_OPERATION_FAILED, BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecAnySource_Post(), BSL_LOG_ERR, BSL_SECBLOCKTYPE_BIB, BSL_SUCCESS, BSL_TLM_SECOP_FAIL_COUNT, BSL_TLM_SECOP_SOURCE_COUNT, BSL_TlmCounters_IncrementCounter(), CHK_ARG_NONNULL, and CHK_PROPERTY.
Referenced by BSL_SecCtx_ExecutePolicyActionSet().
| int BSL_ExecBIBVerifierAcceptor | ( | BSL_SecCtx_Execute_f | sec_context_fn, |
| BSL_LibCtx_t * | lib, | ||
| BSL_BundleRef_t * | bundle, | ||
| BSL_SecOper_t * | sec_oper, | ||
| BSL_SecOutcome_t * | outcome | ||
| ) |
References BSL_AbsSecBlock_Deinit(), BSL_AbsSecBlock_Init(), BSL_AbsSecBlock_IsEmpty(), BSL_AbsSecBlock_StripResults(), BSL_BundleCtx_RemoveBlock(), BSL_ERR_FAILURE, BSL_ERR_HOST_CALLBACK_FAILED, BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecAnyVerifierAcceptor_Pre(), BSL_LOG_ERR, BSL_SecOper_GetTargetBlockNum(), BSL_SecOper_IsConsistent(), BSL_SecOper_IsRoleVerifier(), BSL_SecOutcome_IsConsistent(), BSL_SUCCESS, BSL_TLM_SECOP_ACCEPTOR_COUNT, BSL_TLM_SECOP_FAIL_COUNT, BSL_TLM_SECOP_VERIFIER_COUNT, BSL_TlmCounters_IncrementCounter(), CHK_ARG_NONNULL, CHK_PRECONDITION, and Encode_ASB().
Referenced by BSL_SecCtx_ExecutePolicyActionSet(), and test_sec_accept_keyunwrap().
| int BSL_SecCtx_ExecutePolicyActionSet | ( | BSL_LibCtx_t * | lib, |
| BSL_SecurityResponseSet_t * | output_response, | ||
| BSL_BundleRef_t * | bundle, | ||
| const BSL_SecurityActionSet_t * | action_set | ||
| ) |
Call the underlying security context to perform the given action.
| [in] | lib | This BSL context |
| [out] | output_response | Pointer to allocated, zeroed memory into which the response is populated |
| [in,out] | bundle | Pointer to bundle, which may be modified. |
| [in] | action_set | Action containing all params and operations. |
Notes:
References action_set, ASSERT_PROPERTY, BSL_calloc(), BSL_ExecBCBSource(), BSL_ExecBCBVerifierAcceptor(), BSL_ExecBIBSource(), BSL_ExecBIBVerifierAcceptor(), BSL_free(), BSL_LOG_ERR, BSL_LOG_INFO, BSL_REASONCODE_FAILED_SECOP, BSL_REASONCODE_NO_ADDITIONAL_INFO, BSL_SECOP_CONCLUSION_FAILURE, BSL_SECOP_CONCLUSION_SUCCESS, BSL_SecOper_GetReasonCode(), BSL_SecOper_IsBIB(), BSL_SecOper_IsRoleSource(), BSL_SecOper_SetConclusion(), BSL_SecOper_SetReasonCode(), BSL_SecOutcome_Deinit(), BSL_SecOutcome_Init(), BSL_SecOutcome_Sizeof(), BSL_SecurityAction_CountSecOpers(), BSL_SecurityAction_GetSecOperAtIndex(), BSL_SecurityActionSet_IsConsistent(), BSL_SecurityResponseSet_AppendResult(), BSL_SUCCESS, CHK_ARG_NONNULL, and CHK_PRECONDITION.
Referenced by BSL_API_ApplySecurity(), test_RFC9173_AppendixA_Example3_Acceptor(), test_RFC9173_AppendixA_Example3_Source(), test_RFC9173_AppendixA_Example4_Acceptor(), test_RFC9173_AppendixA_Example4_Source(), test_SecurityContext_BIB_Acceptor(), test_SecurityContext_BIB_Source(), test_SecurityContext_BIB_Verifier(), and test_SecurityContext_BIB_Verifier_Failure().
| bool BSL_SecCtx_ValidatePolicyActionSet | ( | BSL_LibCtx_t * | lib, |
| const BSL_BundleRef_t * | bundle, | ||
| const BSL_SecurityActionSet_t * | action_set | ||
| ) |
Validate policy action set.
| [in] | lib | This BSL context |
| [in,out] | bundle | Pointer to bundle, which may be modified. |
| [in] | action_set | Action containing all params and operations. |
References action_set.
Referenced by BSL_API_QuerySecurity().
|
static |
References BSL_AbsSecBlock_EncodeToCBOR(), BSL_BundleCtx_WriteBTSD(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_Data_InitBuffer(), BSL_ERR_ENCODING, BSL_LOG_ERR, BSL_SeqWriter_Destroy(), BSL_SeqWriter_Put(), BSL_SUCCESS, BSL_TLM_ASB_ENCODE_BYTES, BSL_TLM_ASB_ENCODE_COUNT, BSL_TlmCounters_IncrementCounter(), BSL_Data_t::len, and BSL_Data_t::ptr.
Referenced by BSL_ExecAnySource_Post(), BSL_ExecBCBVerifierAcceptor(), and BSL_ExecBIBVerifierAcceptor().