BSL v0.0.0
AMMOS Bundle Protocol Security Library (BSL)
Loading...
Searching...
No Matches
SecOperation.c File Reference

Defines a security operation. More...

#include "SecOperation.h"
#include "SecParam.h"
+ Include dependency graph for SecOperation.c:

Go to the source code of this file.

Functions

size_t BSL_SecOper_Sizeof (void)
 
void BSL_SecOper_Init (BSL_SecOper_t *self, uint64_t context_id, uint64_t target_block_num, uint64_t sec_block_num, BSL_SecBlockType_e sec_type, BSL_SecRole_e sec_role, BSL_PolicyAction_e failure_code)
 Populate a pre-allocated Security Operation with the given values.
 
void BSL_SecOper_Deinit (BSL_SecOper_t *self)
 Empty and release any resources used internally by this structure.
 
size_t BSL_SecOper_CountParams (const BSL_SecOper_t *self)
 Get the count of parameters contained within this security operation.
 
bool BSL_SecOper_IsConsistent (const BSL_SecOper_t *self)
 Returns true if internal consistency and sanity checks pass.
 
void BSL_SecOper_AppendParam (BSL_SecOper_t *self, const BSL_SecParam_t *param)
 Add the given security parameter to this list of parameters.
 
uint64_t BSL_SecOper_GetSecurityBlockNum (const BSL_SecOper_t *self)
 Get the block number of the security block containing this sec operation.
 
uint64_t BSL_SecOper_GetTargetBlockNum (const BSL_SecOper_t *self)
 Get the block number of the target block covered by this security operation.
 
const BSL_SecParam_tBSL_SecOper_GetParamAt (const BSL_SecOper_t *self, size_t index)
 Returns a pointer to the Security Parameter at a given index in the list of all paramters.
 
bool BSL_SecOper_IsRoleSource (const BSL_SecOper_t *self)
 Return true if this security operation's role is SOURCE.
 
bool BSL_SecOper_IsRoleAccepter (const BSL_SecOper_t *self)
 Return true if this security operation's role is Acceptor.
 
bool BSL_SecOper_IsBIB (const BSL_SecOper_t *self)
 Return true if this security operation is BIB.
 

Detailed Description

Defines a security operation.

Definition in file SecOperation.c.

Function Documentation

◆ BSL_SecOper_AppendParam()

void BSL_SecOper_AppendParam ( BSL_SecOper_t self,
const BSL_SecParam_t param 
)

Add the given security parameter to this list of parameters.

Todo:
Clarify pointer/copy semantics.
Parameters
selfThis security operation
paramSecurity parameter to include.

Definition at line 81 of file SecOperation.c.

References BSL_SecOper_IsConsistent(), and BSL_SecParam_IsConsistent().

Referenced by BSLP_PolicyRule_EvaluateAsSecOper().

◆ BSL_SecOper_CountParams()

size_t BSL_SecOper_CountParams ( const BSL_SecOper_t self)

Get the count of parameters contained within this security operation.

Parameters
selfThis security operation.
Returns
Count of security parameters.

Definition at line 59 of file SecOperation.c.

References BSL_SecOper_IsConsistent().

Referenced by BSLX_BIB_InitFromSecOper().

◆ BSL_SecOper_Deinit()

void BSL_SecOper_Deinit ( BSL_SecOper_t self)

Empty and release any resources used internally by this structure.

Certain backend implementations may create dynamic data structures that may need to be cleaned up, so it is essential to call this under all circumstances.

Parameters
selfNon-NULL pointer to this security operation

Definition at line 52 of file SecOperation.c.

References BSL_SecOper_IsConsistent().

Referenced by BSL_SecurityActionSet_Deinit().

◆ BSL_SecOper_GetParamAt()

const BSL_SecParam_t * BSL_SecOper_GetParamAt ( const BSL_SecOper_t self,
size_t  index 
)

Returns a pointer to the Security Parameter at a given index in the list of all paramters.

Todo:
Clarify behavior if index is out of range.
Parameters
selfThis security operation
indexIndex of security paramter list to retrieve from
Returns
Pointer to security parameter type at given index.

Definition at line 105 of file SecOperation.c.

References BSL_SecOper_IsConsistent().

Referenced by BSLX_BIB_InitFromSecOper().

◆ BSL_SecOper_GetSecurityBlockNum()

uint64_t BSL_SecOper_GetSecurityBlockNum ( const BSL_SecOper_t self)

Get the block number of the security block containing this sec operation.

Parameters
selfThis security operation

Definition at line 91 of file SecOperation.c.

References BSL_SecOper_IsConsistent(), and BSL_SecOper_s::sec_block_num.

◆ BSL_SecOper_GetTargetBlockNum()

uint64_t BSL_SecOper_GetTargetBlockNum ( const BSL_SecOper_t self)

Get the block number of the target block covered by this security operation.

Parameters
selfThis security operation

Definition at line 98 of file SecOperation.c.

References BSL_SecOper_IsConsistent(), and BSL_SecOper_s::target_block_num.

◆ BSL_SecOper_Init()

void BSL_SecOper_Init ( BSL_SecOper_t self,
uint64_t  context_id,
uint64_t  target_block_num,
uint64_t  sec_block_num,
BSL_SecBlockType_e  sec_type,
BSL_SecRole_e  sec_role,
BSL_PolicyAction_e  failure_code 
)

Populate a pre-allocated Security Operation with the given values.

Parameters
selfNon-NULL pointer to this security operation.
context_idID of the security context
target_block_numBlock ID of security target block
sec_block_numBlock ID of security block.
sec_typeMember of BSL_SecBlock_Type_e enum indicating BIB or BCB
sec_roleMember of BSL_SecRole_e enum indicating role.

Definition at line 35 of file SecOperation.c.

References BSL_SecOper_s::_role, BSL_SecOper_IsConsistent(), BSL_SecOper_s::context_id, BSL_SecOper_s::failure_code, BSL_SecOper_s::sec_block_num, and BSL_SecOper_s::target_block_num.

Referenced by BSLP_PolicyRule_EvaluateAsSecOper().

◆ BSL_SecOper_IsBIB()

bool BSL_SecOper_IsBIB ( const BSL_SecOper_t self)

Return true if this security operation is BIB.

Parameters
selfThis security operation
Returns
boolen

Definition at line 125 of file SecOperation.c.

References BSL_SECBLOCKTYPE_BIB.

Referenced by BSL_SecCtx_ExecutePolicyActionSet().

◆ BSL_SecOper_IsConsistent()

bool BSL_SecOper_IsConsistent ( const BSL_SecOper_t self)

◆ BSL_SecOper_IsRoleAccepter()

bool BSL_SecOper_IsRoleAccepter ( const BSL_SecOper_t self)

Return true if this security operation's role is Acceptor.

Parameters
selfThis Security Operation
Returns
boolean

Definition at line 119 of file SecOperation.c.

References BSL_SecOper_s::_role, and BSL_SECROLE_ACCEPTOR.

◆ BSL_SecOper_IsRoleSource()

bool BSL_SecOper_IsRoleSource ( const BSL_SecOper_t self)

Return true if this security operation's role is SOURCE.

Parameters
selfThis Security Operation
Returns
boolean

Definition at line 113 of file SecOperation.c.

References BSL_SecOper_s::_role, and BSL_SECROLE_SOURCE.

Referenced by BSL_SecCtx_ExecutePolicyActionSet().

◆ BSL_SecOper_Sizeof()

size_t BSL_SecOper_Sizeof ( void  )

Definition at line 30 of file SecOperation.c.