BSL v1.1.1 - 64.gc92ac12
AMMOS Bundle Protocol Security Library (BSL)
Loading...
Searching...
No Matches
DefaultSecContext.h File Reference

Header for the implementation of an example default security context (RFC 9173). More...

+ Include dependency graph for DefaultSecContext.h:
+ This graph shows which files directly or indirectly include this file:

Enumerations

enum  BSLX_BIB_Options_e {
  BSLX_BIB_OPT_KEY_ID = 1000 , BSLX_BIB_OPT_USE_KEY_WRAP , BSLX_BIB_OPT_WRAPPED_KEY , BSLX_BIB_OPT_SHA_VARIANT ,
  BSLX_BIB_OPT_SCOPE
}
 Internal BIB option enumerations. More...
 
enum  BSLX_BCB_Options_e {
  BSLX_BCB_OPT_KEY_ID = 2000 , BSLX_BCB_OPT_USE_KEY_WRAP , BSLX_BCB_OPT_WRAPPED_KEY , BSLX_BCB_OPT_AES_VARIANT ,
  BSLX_BCB_OPT_SCOPE
}
 Internal BCB option enumerations. More...
 

Functions

bool BSLX_BIB_Validate (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper)
 Match signature BSL_SecCtx_Validate_f.
 
int BSLX_BIB_Execute (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper)
 Match signature BSL_SecCtx_Execute_f.
 
bool BSLX_BCB_Validate (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper)
 Match signature BSL_SecCtx_Validate_f.
 
int BSLX_BCB_Execute (BSL_LibCtx_t *lib, BSL_BundleRef_t *bundle, BSL_SecOper_t *sec_oper)
 Match signature BSL_SecCtx_Execute_f.
 

Detailed Description

Header for the implementation of an example default security context (RFC 9173).

Enumeration Type Documentation

◆ BSLX_BCB_Options_e

Internal BCB option enumerations.

Enumerator
BSLX_BCB_OPT_KEY_ID 

Used to pass in a key id found in the key registry.

BSLX_BCB_OPT_USE_KEY_WRAP 

A uint value 0 to skip key wrap, else use key wrap.

BSLX_BCB_OPT_WRAPPED_KEY 

Manually control the wrapped key.

Warning
This should only be used for testing.
BSLX_BCB_OPT_AES_VARIANT 

A uint value from the choices rfc9173_bcb_aes_variant_e.

BSLX_BCB_OPT_SCOPE 

A uint value from the choices rfc9173_bcb_aad_scope_flag_ids_e.

◆ BSLX_BIB_Options_e

Internal BIB option enumerations.

Enumerator
BSLX_BIB_OPT_KEY_ID 

Used to pass in a key id found in the key registry.

BSLX_BIB_OPT_USE_KEY_WRAP 

A uint value 0 to skip key wrap, else use key wrap.

BSLX_BIB_OPT_WRAPPED_KEY 

Manually control the wrapped key.

Warning
This should only be used for testing.
BSLX_BIB_OPT_SHA_VARIANT 

A uint value from the choices rfc9173_bib_sha_variantid_e.

BSLX_BIB_OPT_SCOPE 

A uint value from the choices rfc9173_bib_integ_scope_flag_ids_e.

Function Documentation

◆ BSLX_BCB_Execute()

int BSLX_BCB_Execute ( BSL_LibCtx_t *  lib,
BSL_BundleRef_t bundle,
BSL_SecOper_t *  sec_oper 
)

Match signature BSL_SecCtx_Execute_f.

References BSLX_BCB_t::aad_scope, BSLX_BCB_t::aes_variant, BSLX_BCB_t::authtag, BSLX_BCB_t::bsl_aes, BSL_BundleCtx_GetBlockMetadata(), BSL_CRYPTO_AES_128, BSL_CRYPTO_AES_256, BSL_Data_Deinit(), BSL_ERR_HOST_CALLBACK_FAILED, BSL_ERR_SECURITY_CONTEXT_FAILED, BSL_ERR_SECURITY_CONTEXT_VALIDATION_FAILED, BSL_LOG_DEBUG, BSL_LOG_ERR, BSL_LOG_INFO, BSL_SecOper_AddParam(), BSL_SecOper_AddResult(), BSL_SecOper_FindParam(), BSL_SecOper_FindResult(), BSL_SecOper_GetSecurityBlockNum(), BSL_SecOper_GetTargetBlockNum(), BSL_SecOper_IsRoleAcceptor(), BSL_SUCCESS, BSL_Variant_GetAsBytestr(), BSL_Variant_GetAsInt64(), BSL_Variant_SetBytestr(), BSL_Variant_SetInt64(), BSLX_BCB_ComputeAAD(), BSLX_BCB_Decrypt(), BSLX_BCB_Deinit(), BSLX_BCB_Encrypt(), BSLX_BCB_GetOptions(), BSLX_BCB_Init(), CHK_ARG_NONNULL, CHK_PRECONDITION, BSLX_BCB_t::err_count, BSLX_BCB_t::is_source, BSLX_BCB_t::iv, BSLX_BCB_t::keysize, BSLX_BCB_t::keywrap, BSL_Data_t::len, BSLX_BCB_t::opt_aad_scope, BSLX_BCB_t::opt_aes_variant, BSLX_BCB_t::opt_keywrap, BSLX_BCB_t::overwrite_btsd, RFC9173_BCB_AADSCOPEFLAGID_INC_SECURITY_HEADER, RFC9173_BCB_AES_VARIANT_A128GCM, RFC9173_BCB_AES_VARIANT_A256GCM, RFC9173_BCB_RESULTID_AUTHTAG, RFC9173_BCB_SECPARAM_AADSCOPE, RFC9173_BCB_SECPARAM_AESVARIANT, RFC9173_BCB_SECPARAM_IV, RFC9173_BCB_SECPARAM_WRAPPEDKEY, BSLX_BCB_t::sec_block, and BSLX_BCB_t::wrapped_key.

Referenced by BSL_TestUtils_SetupDefaultSecurityContext(), MockBPA_Agent_Init(), test_RFC9173_AppendixA_Example2_BCB_Acceptor(), test_RFC9173_AppendixA_Example2_BCB_Source(), test_sec_accept_keyunwrap(), and test_sec_source_keywrap().

◆ BSLX_BCB_Validate()

bool BSLX_BCB_Validate ( BSL_LibCtx_t *  lib,
BSL_BundleRef_t bundle,
BSL_SecOper_t *  sec_oper 
)

◆ BSLX_BIB_Execute()

int BSLX_BIB_Execute ( BSL_LibCtx_t *  lib,
BSL_BundleRef_t bundle,
BSL_SecOper_t *  sec_oper 
)

Match signature BSL_SecCtx_Execute_f.

References BSL_BundleCtx_GetBlockMetadata(), BSL_BundleCtx_GetBundleMetadata(), BSL_Crypto_Compare(), BSL_Data_Deinit(), BSL_DATA_INIT_NULL, BSL_Data_InitBuffer(), BSL_ERR_SECURITY_CONTEXT_FAILED, BSL_LOG_DEBUG, BSL_LOG_ERR, BSL_LOG_WARNING, BSL_SecOper_AddParam(), BSL_SecOper_AddResult(), BSL_SecOper_FindParam(), BSL_SecOper_FindResult(), BSL_SecOper_GetSecurityBlockNum(), BSL_SecOper_GetTargetBlockNum(), BSL_SecOper_IsConsistent(), BSL_SUCCESS, BSL_Variant_GetAsBytestr(), BSL_Variant_GetAsInt64(), BSL_Variant_IsBytestr(), BSL_Variant_SetBytestr(), BSL_Variant_SetInt64(), BSLX_BIB_Deinit(), BSLX_BIB_GenHMAC(), BSLX_BIB_GenIPPT(), BSLX_BIB_InitFromSecOper(), CHK_ARG_NONNULL, CHK_PRECONDITION, CHK_PROPERTY, BSLX_BIB_t::crypto_sha_variant, BSLX_BIB_t::err_count, BSLX_BIB_t::hmac_result_val, BSLX_BIB_t::ippt_scope, BSLX_BIB_t::is_source, BSLX_BIB_t::keywrap, BSL_Data_t::len, map_rfc9173_sha_variant_to_crypto(), BSLX_BIB_t::opt_ippt_scope, BSLX_BIB_t::opt_keywrap, BSLX_BIB_t::opt_sha_variant, BSLX_BIB_t::primary_block, BSL_Data_t::ptr, RFC9173_BIB_PARAMID_INTEG_SCOPE_FLAG, RFC9173_BIB_PARAMID_SHA_VARIANT, RFC9173_BIB_PARAMID_WRAPPED_KEY, RFC9173_BIB_RESULTID_HMAC, RFC9173_BIB_SHA_HMAC384, BSLX_BIB_t::sec_block, BSLX_BIB_t::sha_variant, BSLX_BIB_t::target_block, and BSLX_BIB_t::wrapped_key.

Referenced by BSL_TestUtils_SetupDefaultSecurityContext(), MockBPA_Agent_Init(), test_RFC9173_AppendixA_Example1_BIB_Source(), test_sec_accept_keyunwrap(), and test_sec_source_keywrap().

◆ BSLX_BIB_Validate()

bool BSLX_BIB_Validate ( BSL_LibCtx_t *  lib,
BSL_BundleRef_t bundle,
BSL_SecOper_t *  sec_oper 
)