BSL v1.1.1 - 39.g9f43410
AMMOS Bundle Protocol Security Library (BSL)
Loading...
Searching...
No Matches
BCB_AES_GCM.c File Reference

Contains functionality and data structures to implement BCB using security context in RFC9173. More...

#include "DefaultSecContext.h"
#include "DefaultSecContext_Private.h"
#include "rfc9173.h"
#include "bsl/BPSecLib_Private.h"
#include "bsl/crypto/CryptoInterface.h"
#include "bsl/dynamic/CBOR.h"
#include <qcbor/qcbor_encode.h>
#include <qcbor/qcbor_spiffy_decode.h>
#include <stdlib.h>
+ Include dependency graph for BCB_AES_GCM.c:

Functions

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_ComputeAAD (BSLX_BCB_t *bcb_context)
 
static int BSLX_BCB_Decrypt (BSLX_BCB_t *bcb_context)
 
int BSLX_BCB_Encrypt (BSLX_BCB_t *bcb_context)
 
int BSLX_BCB_GetOptions (const BSL_BundleRef_t *bundle, BSLX_BCB_t *bcb_context, const BSL_SecOper_t *sec_oper)
 Populate the BCB context with options from the operation.
 
int BSLX_BCB_Init (BSLX_BCB_t *bcb_context, BSL_BundleRef_t *bundle, const BSL_SecOper_t *sec_oper)
 
void BSLX_BCB_Deinit (BSLX_BCB_t *bcb_context)
 
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

Contains functionality and data structures to implement BCB using security context in RFC9173.

Function Documentation

◆ BSLX_BCB_ComputeAAD()

◆ BSLX_BCB_Decrypt()

◆ BSLX_BCB_Deinit()

◆ BSLX_BCB_Encrypt()

◆ 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_IdValPair_GetAsBytestr(), BSL_IdValPair_GetAsInt64(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_LOG_DEBUG, BSL_LOG_ERR, BSL_LOG_INFO, BSL_LOG_WARNING, BSL_SecOper_AddParam(), BSL_SecOper_AddResult(), BSL_SecOper_FindParam(), BSL_SecOper_FindResult(), BSL_SecOper_GetSecurityBlockNum(), BSL_SecOper_GetTargetBlockNum(), BSL_SecOper_IsRoleAcceptor(), BSL_SUCCESS, 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, BSL_Data_t::len, BSLX_BCB_t::opt_aad_scope, 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_GetOptions()

◆ BSLX_BCB_Init()

◆ BSLX_BCB_Validate()

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