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

Specific low-level tests of the COSE Context. More...

#include "TestUtils.h"
#include <bsl/BPSecLib_Private.h>
#include <bsl/crypto/CryptoInterface.h>
#include <bsl/dynamic/PublicInterfaceImpl.h>
#include <bsl/cose_sc/CoseContext.h>
#include <bsl/cose_sc/CoseMsg.h>
#include <bsl/mock_bpa/MockBPA.h>
#include <stdio.h>
#include <stdlib.h>
#include <unity.h>
+ Include dependency graph for test_CoseContext.c:

Enumerations

enum  OptMismatch_e {
  OPT_MISMATCH_NONE , OPT_MISMATCH_BAD_KEY_ID , OPT_MISMATCH_KEY_ALG , OPT_MISMATCH_TGT_ALG ,
  OPT_MISMATCH_NO_AAD_SCOPE , OPT_MISMATCH_MODIFY_BLK_0 , OPT_MISMATCH_MODIFY_BLK_1 , OPT_MISMATCH_MODIFY_BLK_3
}
 

Functions

void suiteSetUp (void)
 
int suiteTearDown (int failures)
 
void setUp (void)
 
void tearDown (void)
 
static void set_CoseSc_InvalidOptions_Source_baseline (BSL_SecOper_t *sec_oper)
 valid starting point
 
void test_CoseSc_InvalidOptions_Source (void)
 
void test_CoseSc_InvalidOptions_Verifier (void)
 
void test_AppendixA_Example1_BIB_Source (void)
 Purpose: Exercise BIB applying security to a target payload block.
 
void test_AppendixA_Example1_BIB_VerifyAccept (BSL_SecRole_e role, int mismatch)
 
static int ccsds_mac_rng (unsigned char *buf, int len)
 
void test_CCSDS_Example_Mac_Source (void)
 
void test_CCSDS_Example_Mac_VerifyAccept (BSL_SecRole_e role, int mismatch)
 
void test_AppendixA_Example4_BCB_Source (void)
 
void test_AppendixA_Example4_BCB_VerifyAccept (BSL_SecRole_e role, int mismatch)
 
static int cose_exA_5_rng (unsigned char *buf, int len)
 
void test_AppendixA_Example5_BCB_Source (void)
 
void test_AppendixA_Example5_BCB_VerifyAccept (BSL_SecRole_e role, int mismatch)
 
static int cose_exA_6_rng (unsigned char *buf, int len)
 
void test_AppendixA_Example6_BCB_Source (void)
 

Variables

static BSL_TestContext_t LocalTestCtx
 
static const char * exA_nosec
 Common input bundle from Appendix A.
 
static const char * exA_1_kid = "ExampleA.1"
 Key ID for Example A.1.
 
static const char * exA_1_sk
 Symmetric key for Example A.1.
 
static const char * exA_1_mac0
 Result bundle for Example A.1.
 
static const char * ccsds_mac_nosec
 Common input bundle for CCSDS/ESA.
 
static const char * ccsds_mac_kid = "ExampleA.5"
 
static const char * ccsds_mac_sk = "0e8a982b921d1086241798032fedc1f883eab72e4e43bb2d11cfae38ad7a972e"
 Symmetric key for test.
 
static const char * ccsds_mac_bib
 Result bundle for test.
 
static const char * exA_4_kid = "ExampleA.4"
 
static const char * exA_4_sk
 Symmetric key for Example A.4.
 
static const char * exA_4_biv = "6f3093eba5d85143c3dc0000"
 Base IV for Example A.4.
 
static const char * exA_4_enc0
 Result bundle for Example A.4 with different BCB block flags.
 
static const char * exA_5_kid = "ExampleA.5"
 
static const char * exA_5_sk = "0e8a982b921d1086241798032fedc1f883eab72e4e43bb2d11cfae38ad7a972e"
 Symmetric key for Example A.5.
 
static const char * exA_5_enc
 Result bundle for Example A.5 with different BCB block flags.
 
static const char * exA_6_kid = "ExampleA.6"
 
static const char * exA_6_sk = "6c4e5271e211e0c8329ab8f363097f16516a459f12a4060cf0164968fdccbd63"
 Symmetric key for Example A.6.
 
static const char * exA_6_enc
 Result bundle for Example A.6 with different BCB block flags.
 

Detailed Description

Specific low-level tests of the COSE Context.

Notes:

  • These tests use constructs defined in the BSL to exercise the context.
  • It uses test inputs and vectors from the COSE Context draft [17].
  • It does NOT use any of the "Plumbing" inside the BSL.

Enumeration Type Documentation

◆ OptMismatch_e

Enumerator
OPT_MISMATCH_NONE 
OPT_MISMATCH_BAD_KEY_ID 
OPT_MISMATCH_KEY_ALG 
OPT_MISMATCH_TGT_ALG 
OPT_MISMATCH_NO_AAD_SCOPE 
OPT_MISMATCH_MODIFY_BLK_0 
OPT_MISMATCH_MODIFY_BLK_1 
OPT_MISMATCH_MODIFY_BLK_3 

Function Documentation

◆ ccsds_mac_rng()

static int ccsds_mac_rng ( unsigned char *  buf,
int  len 
)
static

◆ cose_exA_5_rng()

static int cose_exA_5_rng ( unsigned char *  buf,
int  len 
)
static

◆ cose_exA_6_rng()

static int cose_exA_6_rng ( unsigned char *  buf,
int  len 
)
static

◆ set_CoseSc_InvalidOptions_Source_baseline()

◆ setUp()

void setUp ( void  )

◆ suiteSetUp()

◆ suiteTearDown()

int suiteTearDown ( int  failures)

◆ tearDown()

void tearDown ( void  )

◆ test_AppendixA_Example1_BIB_Source()

void test_AppendixA_Example1_BIB_Source ( void  )

Purpose: Exercise BIB applying security to a target payload block.

Steps:

  • Get an unsecured bundle with a primary and payload block
  • Decode it into a BSL_BundleCtx struct
  • Create a BIB security operation with hard-coded options
  • Run BSLX_CoseSc_Validate function and confirm result is 0.
  • Run BSLX_CoseSc_Execute function and confirm result is 0.
  • Check the operation after the above function to confirm 1 result (a COSE_Mac0 message)
  • Capture the MAC tag and ensure it matches the value in the test vector.

References BSL_TestContext_t::bsl, BSL_CBOR_Decode(), BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_ExecBIBSource(), BSL_IdValPair_Deinit(), BSL_IdValPair_GetAsBytestr(), BSL_IdValPair_GetId(), BSL_IdValPair_Init(), BSL_IdValPair_IsBytestr(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BIB, BSL_SecOper_AppendOption(), BSL_SecOper_CountResults(), BSL_SecOper_Deinit(), BSL_SecOper_FindResult(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_SOURCE, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_HMAC_SHA_384_384, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseMsg_Mac0_Decode(), BSLX_CoseMsg_Mac0_Deinit(), BSLX_CoseMsg_Mac0_Init(), BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_COSESC_RESULT_COSE_MAC0, BSLX_CoseSc_Validate(), mock_bpa_ctr_t::bundle_ref, mock_bpa_ctr_t::encoded, exA_1_kid, exA_1_mac0, exA_1_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example1_BIB_VerifyAccept()

void test_AppendixA_Example1_BIB_VerifyAccept ( BSL_SecRole_e  role,
int  mismatch 
)

References MockBPA_Bundle_t::blocks_num, BSL_TestContext_t::bsl, BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_Data_InitView(), BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecBIBVerifierAcceptor(), BSL_IdValPair_Deinit(), BSL_IdValPair_Init(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BIB, BSL_SecOper_AppendOption(), BSL_SecOper_Deinit(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_VERIFIER, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_HMAC_SHA_256_256, BSLX_COSEMSG_ALG_HMAC_SHA_384_384, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ALG, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_CoseSc_Validate(), MockBPA_CanonicalBlock_t::btsd, MockBPA_CanonicalBlock_t::btsd_len, mock_bpa_ctr_t::bundle, mock_bpa_ctr_t::bundle_ref, MockBPA_PrimaryBlock_t::encoded, mock_bpa_ctr_t::encoded, exA_1_kid, exA_1_mac0, exA_1_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, OPT_MISMATCH_BAD_KEY_ID, OPT_MISMATCH_KEY_ALG, OPT_MISMATCH_MODIFY_BLK_0, OPT_MISMATCH_MODIFY_BLK_1, OPT_MISMATCH_MODIFY_BLK_3, OPT_MISMATCH_NO_AAD_SCOPE, OPT_MISMATCH_NONE, OPT_MISMATCH_TGT_ALG, MockBPA_Bundle_t::primary_block, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example4_BCB_Source()

void test_AppendixA_Example4_BCB_Source ( void  )

References BSL_TestContext_t::bsl, BSL_CBOR_Decode(), BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_ExecBCBSource(), BSL_IdValPair_Deinit(), BSL_IdValPair_GetAsBytestr(), BSL_IdValPair_GetId(), BSL_IdValPair_Init(), BSL_IdValPair_IsBytestr(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BCB, BSL_SecOper_AppendOption(), BSL_SecOper_CountResults(), BSL_SecOper_Deinit(), BSL_SecOper_FindResult(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_SOURCE, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_GCM_256, BSLX_CoseMsg_Encrypt0_Decode(), BSLX_CoseMsg_Encrypt0_Deinit(), BSLX_CoseMsg_Encrypt0_Init(), BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_COSEMSG_KEY_PARAM_BASEIV, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_IV_COUNTER_OFFSET, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_COSESC_RESULT_COSE_ENCRYPT0, BSLX_CoseSc_Validate(), mock_bpa_ctr_t::bundle_ref, mock_bpa_ctr_t::encoded, exA_4_biv, exA_4_enc0, exA_4_kid, exA_4_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example4_BCB_VerifyAccept()

void test_AppendixA_Example4_BCB_VerifyAccept ( BSL_SecRole_e  role,
int  mismatch 
)

References MockBPA_Bundle_t::blocks_num, BSL_TestContext_t::bsl, BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_Data_InitView(), BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecBCBVerifierAcceptor(), BSL_IdValPair_Deinit(), BSL_IdValPair_Init(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BCB, BSL_SecOper_AppendOption(), BSL_SecOper_Deinit(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_VERIFIER, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_GCM_128, BSLX_COSEMSG_ALG_AES_GCM_256, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_COSEMSG_KEY_PARAM_BASEIV, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ALG, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_CoseSc_Validate(), MockBPA_CanonicalBlock_t::btsd, MockBPA_CanonicalBlock_t::btsd_len, mock_bpa_ctr_t::bundle, mock_bpa_ctr_t::bundle_ref, MockBPA_PrimaryBlock_t::encoded, mock_bpa_ctr_t::encoded, exA_4_biv, exA_4_enc0, exA_4_kid, exA_4_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, OPT_MISMATCH_BAD_KEY_ID, OPT_MISMATCH_KEY_ALG, OPT_MISMATCH_MODIFY_BLK_0, OPT_MISMATCH_MODIFY_BLK_1, OPT_MISMATCH_MODIFY_BLK_3, OPT_MISMATCH_NO_AAD_SCOPE, OPT_MISMATCH_NONE, OPT_MISMATCH_TGT_ALG, MockBPA_Bundle_t::primary_block, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example5_BCB_Source()

void test_AppendixA_Example5_BCB_Source ( void  )

References BSL_TestContext_t::bsl, BSL_CBOR_Decode(), BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Crypto_SetRngGenerator(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_ExecBCBSource(), BSL_IdValPair_Deinit(), BSL_IdValPair_GetAsBytestr(), BSL_IdValPair_GetId(), BSL_IdValPair_Init(), BSL_IdValPair_IsBytestr(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BCB, BSL_SecOper_AppendOption(), BSL_SecOper_CountResults(), BSL_SecOper_Deinit(), BSL_SecOper_FindResult(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_SOURCE, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_GCM_256, BSLX_COSEMSG_ALG_AES_KW_256, BSLX_CoseMsg_Encrypt_Decode(), BSLX_CoseMsg_Encrypt_Deinit(), BSLX_CoseMsg_Encrypt_Init(), BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_COSESC_RESULT_COSE_ENCRYPT, BSLX_CoseSc_Validate(), mock_bpa_ctr_t::bundle_ref, cose_exA_5_rng(), mock_bpa_ctr_t::encoded, exA_5_enc, exA_5_kid, exA_5_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example5_BCB_VerifyAccept()

void test_AppendixA_Example5_BCB_VerifyAccept ( BSL_SecRole_e  role,
int  mismatch 
)

References MockBPA_Bundle_t::blocks_num, BSL_TestContext_t::bsl, BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_Data_InitView(), BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecBCBVerifierAcceptor(), BSL_IdValPair_Deinit(), BSL_IdValPair_Init(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BCB, BSL_SecOper_AppendOption(), BSL_SecOper_Deinit(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_VERIFIER, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_GCM_128, BSLX_COSEMSG_ALG_AES_GCM_256, BSLX_COSEMSG_ALG_AES_KW_128, BSLX_COSEMSG_ALG_AES_KW_256, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ALG, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_CoseSc_Validate(), MockBPA_CanonicalBlock_t::btsd, MockBPA_CanonicalBlock_t::btsd_len, mock_bpa_ctr_t::bundle, mock_bpa_ctr_t::bundle_ref, MockBPA_PrimaryBlock_t::encoded, mock_bpa_ctr_t::encoded, exA_5_enc, exA_5_kid, exA_5_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, OPT_MISMATCH_BAD_KEY_ID, OPT_MISMATCH_KEY_ALG, OPT_MISMATCH_MODIFY_BLK_0, OPT_MISMATCH_MODIFY_BLK_1, OPT_MISMATCH_MODIFY_BLK_3, OPT_MISMATCH_NO_AAD_SCOPE, OPT_MISMATCH_NONE, OPT_MISMATCH_TGT_ALG, MockBPA_Bundle_t::primary_block, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_AppendixA_Example6_BCB_Source()

void test_AppendixA_Example6_BCB_Source ( void  )

References BSL_TestContext_t::bsl, BSL_CBOR_Decode(), BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Crypto_SetRngGenerator(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_ExecBCBSource(), BSL_IdValPair_Deinit(), BSL_IdValPair_GetAsBytestr(), BSL_IdValPair_GetId(), BSL_IdValPair_Init(), BSL_IdValPair_IsBytestr(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BCB, BSL_SecOper_AppendOption(), BSL_SecOper_CountResults(), BSL_SecOper_Deinit(), BSL_SecOper_FindResult(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_SOURCE, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_GCM_256, BSLX_COSEMSG_ALG_DIRECT_HKDF_SHA_512, BSLX_CoseMsg_Encrypt_Decode(), BSLX_CoseMsg_Encrypt_Deinit(), BSLX_CoseMsg_Encrypt_Init(), BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_SALT_LENGTH, BSLX_COSESC_OPTION_TGT_ALG, BSLX_COSESC_RESULT_COSE_ENCRYPT, BSLX_CoseSc_Validate(), mock_bpa_ctr_t::bundle_ref, cose_exA_6_rng(), mock_bpa_ctr_t::encoded, exA_6_enc, exA_6_kid, exA_6_sk, exA_nosec, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_CCSDS_Example_Mac_Source()

void test_CCSDS_Example_Mac_Source ( void  )

References BSL_TestContext_t::bsl, BSL_CBOR_Decode(), BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Crypto_SetRngGenerator(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_ExecBIBSource(), BSL_IdValPair_Deinit(), BSL_IdValPair_GetAsBytestr(), BSL_IdValPair_GetId(), BSL_IdValPair_Init(), BSL_IdValPair_IsBytestr(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BIB, BSL_SecOper_AppendOption(), BSL_SecOper_CountResults(), BSL_SecOper_Deinit(), BSL_SecOper_FindResult(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_SOURCE, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_KW_256, BSLX_COSEMSG_ALG_HMAC_SHA_384_384, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseMsg_Mac_Decode(), BSLX_CoseMsg_Mac_Deinit(), BSLX_CoseMsg_Mac_Init(), BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_COSESC_RESULT_COSE_MAC, BSLX_CoseSc_Validate(), mock_bpa_ctr_t::bundle_ref, ccsds_mac_bib, ccsds_mac_kid, ccsds_mac_nosec, ccsds_mac_rng(), ccsds_mac_sk, mock_bpa_ctr_t::encoded, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_CCSDS_Example_Mac_VerifyAccept()

void test_CCSDS_Example_Mac_VerifyAccept ( BSL_SecRole_e  role,
int  mismatch 
)

References MockBPA_Bundle_t::blocks_num, BSL_TestContext_t::bsl, BSL_CBOR_Encode_Twopass(), BSL_Crypto_AddRegistryKey(), BSL_Crypto_GetKeyStatistics(), BSL_CRYPTO_KEYSTATS_BYTES_PROCESSED, BSL_CRYPTO_KEYSTATS_TIMES_USED, BSL_Crypto_LoadKey(), BSL_Crypto_ReleaseKeyHandle(), BSL_Crypto_SetKeyParameter(), BSL_Data_Deinit(), BSL_Data_Init(), BSL_DATA_INIT_VIEW_CSTR, BSL_Data_InitView(), BSL_ERR_SECURITY_OPERATION_FAILED, BSL_ExecBCBVerifierAcceptor(), BSL_IdValPair_Deinit(), BSL_IdValPair_Init(), BSL_IdValPair_SetBytestr(), BSL_IdValPair_SetInt64(), BSL_IdValPair_SetRaw(), BSL_POLICYACTION_DROP_BUNDLE, BSL_SECBLOCKTYPE_BIB, BSL_SecOper_AppendOption(), BSL_SecOper_Deinit(), BSL_SecOper_Init(), BSL_SecOper_Populate(), BSL_SECROLE_VERIFIER, BSL_SUCCESS, BSL_TestUtils_DecodeBase16_cstr(), BSL_TestUtils_EncodeBundleToCBOR(), BSL_TestUtils_IsB16StrEqualTo(), BSL_TestUtils_LoadBundleFromCBOR(), BSLX_COSEMSG_ALG_AES_KW_128, BSLX_COSEMSG_ALG_AES_KW_256, BSLX_COSEMSG_ALG_HMAC_SHA_256_256, BSLX_COSEMSG_ALG_HMAC_SHA_384_384, BSLX_COSEMSG_KEY_PARAM_ALG, BSLX_CoseSc_AadScope_Encode(), BSLX_COSESC_CTX_ID, BSLX_CoseSc_Execute(), BSLX_COSESC_OPTION_AAD_SCOPE, BSLX_COSESC_OPTION_KEY_ALG, BSLX_COSESC_OPTION_KEY_ID, BSLX_COSESC_OPTION_TGT_ALG, BSLX_CoseSc_Validate(), MockBPA_CanonicalBlock_t::btsd, MockBPA_CanonicalBlock_t::btsd_len, mock_bpa_ctr_t::bundle, mock_bpa_ctr_t::bundle_ref, ccsds_mac_bib, ccsds_mac_kid, ccsds_mac_nosec, ccsds_mac_sk, MockBPA_PrimaryBlock_t::encoded, mock_bpa_ctr_t::encoded, keyhandle, keyid, BSL_Data_t::len, LocalTestCtx, BSL_TestContext_t::mock_bpa_ctr, OPT_MISMATCH_BAD_KEY_ID, OPT_MISMATCH_KEY_ALG, OPT_MISMATCH_MODIFY_BLK_0, OPT_MISMATCH_MODIFY_BLK_1, OPT_MISMATCH_MODIFY_BLK_3, OPT_MISMATCH_NO_AAD_SCOPE, OPT_MISMATCH_NONE, OPT_MISMATCH_TGT_ALG, MockBPA_Bundle_t::primary_block, BSL_Data_t::ptr, BSL_Crypto_KeyStats_t::stats, TEST_ASSERT_EQUAL(), TEST_ASSERT_EQUAL_INT_MESSAGE(), and TEST_ASSERT_TRUE().

◆ test_CoseSc_InvalidOptions_Source()

◆ test_CoseSc_InvalidOptions_Verifier()

Variable Documentation

◆ ccsds_mac_bib

const char* ccsds_mac_bib
static
Initial value:
=
"9F89070001820282040982028201018202820101821B000000BEC0F18301001B0000000202FBF00042179D850B050000589D81010301820282"
"0100818205A200012001818182186158858543A10106A0F658309AC51C5D72F96E44099C521298691C087ECF7DA8EC99A9CFB8A6FCB5A44A4B"
"054FF1669289F7EAF7719EBBF95FBABB3A818340A20124044A4578616D706C65412E355838442B1844E188743A7569623749A0FBE09C8540EE"
"EC72EE419744EAA8E70B8FFAD13FDE7C1FADCB4EDC68A641A6191683C43D87990F5797758506040100458202820100850A0301004382030185"
"070201004319F61885010100004568656C6C6FFF"

Result bundle for test.

Referenced by test_CCSDS_Example_Mac_Source(), and test_CCSDS_Example_Mac_VerifyAccept().

◆ ccsds_mac_kid

const char* ccsds_mac_kid = "ExampleA.5"
static

◆ ccsds_mac_nosec

const char* ccsds_mac_nosec
static
Initial value:
= "9f89070001820282040982028201018202820101821b000000bec0f18301"
"001b0000000202fbf00042179d8506040100458202820100850a03010043"
"82030185070201004319f61885010100004568656c6c6fff"

Common input bundle for CCSDS/ESA.

Referenced by test_CCSDS_Example_Mac_Source(), and test_CCSDS_Example_Mac_VerifyAccept().

◆ ccsds_mac_sk

const char* ccsds_mac_sk = "0e8a982b921d1086241798032fedc1f883eab72e4e43bb2d11cfae38ad7a972e"
static

Symmetric key for test.

Referenced by test_CCSDS_Example_Mac_Source(), and test_CCSDS_Example_Mac_VerifyAccept().

◆ exA_1_kid

const char* exA_1_kid = "ExampleA.1"
static

◆ exA_1_mac0

const char* exA_1_mac0
static
Initial value:
= "9f890700028201692f2f6473742f7376638201692f2f7372632f7376638201662f2f"
"7372632f821b000000bd51281400001a000f42404482a081c9850b03000058608101"
"03018201662f2f7372632f818205a2000120018181821158458443a10106a1044a45"
"78616d706c65412e31f65830ec8260a38a1a00fef2cd4aae063f50f01c5645e84c6c"
"4893ca895eed44ef60a5f50f9adf5cc5654499b881e5896378058601010002466568"
"656c6c6f444ec359d2ff"

Result bundle for Example A.1.

Referenced by test_AppendixA_Example1_BIB_Source(), and test_AppendixA_Example1_BIB_VerifyAccept().

◆ exA_1_sk

const char* exA_1_sk
static
Initial value:
= "3a5c74e32ab4558a99581ec3a816576812aabe895db04494cda2"
"5b711d7b5ed4077466e677860648412f1bf8c91d0624"

Symmetric key for Example A.1.

Referenced by test_AppendixA_Example1_BIB_Source(), and test_AppendixA_Example1_BIB_VerifyAccept().

◆ exA_4_biv

const char* exA_4_biv = "6f3093eba5d85143c3dc0000"
static

◆ exA_4_enc0

const char* exA_4_enc0
static
Initial value:
= "9f890700028201692f2f6473742f7376638201692f2f7372632f7376638201662f2f"
"7372632f821b000000bd51281400001a000f42404482a081c9850c03010058318101"
"03018201662f2f7372632f818205a20001200181818210578343a10103a2044a4578"
"616d706c65412e340642484af68601010002561fd25f64a2eee2ff1a1ab29812ba22"
"1874380974c13b442086c017ff"

Result bundle for Example A.4 with different BCB block flags.

Referenced by test_AppendixA_Example4_BCB_Source(), and test_AppendixA_Example4_BCB_VerifyAccept().

◆ exA_4_kid

const char* exA_4_kid = "ExampleA.4"
static

◆ exA_4_sk

const char* exA_4_sk
static
Initial value:
= "13bf9cead057c0aca2c9e52471ca4b19ddfaf4c0784e3f3e8e39"
"99dbae4ce45c"

Symmetric key for Example A.4.

Referenced by test_AppendixA_Example4_BCB_Source(), and test_AppendixA_Example4_BCB_VerifyAccept().

◆ exA_5_enc

const char* exA_5_enc
static
Initial value:
= "9f890700028201692f2f6473742f7376638201692f2f7372632f7376638201662f2f"
"7372632f821b000000bd51281400001a000f42404482a081c9850c030100586d8101"
"03018201662f2f7372632f818205a200012001818182186058518443a10103a1054c"
"6f3093eba5d85143c3dc484af6818340a20124044a4578616d706c65412e35582891"
"7f2045e1169502756252bf119a94cdac6a9d8944245b5a9a26d403a6331159e3d691"
"a708e9984d8601010002561fd25f64a2ee33e774abe16700bcfd9cf12ea5f7d84144"
"47abdef0ff"

Result bundle for Example A.5 with different BCB block flags.

Referenced by test_AppendixA_Example5_BCB_Source(), and test_AppendixA_Example5_BCB_VerifyAccept().

◆ exA_5_kid

const char* exA_5_kid = "ExampleA.5"
static

◆ exA_5_sk

const char* exA_5_sk = "0e8a982b921d1086241798032fedc1f883eab72e4e43bb2d11cfae38ad7a972e"
static

Symmetric key for Example A.5.

Referenced by test_AppendixA_Example5_BCB_Source(), and test_AppendixA_Example5_BCB_VerifyAccept().

◆ exA_6_enc

const char* exA_6_enc
static
Initial value:
= "9f890700028201692f2f6473742f7376638201692f2f7372632f7376638201662f2f"
"7372632f821b000000bd51281400001a000f42404482a081c9850c03010058578101"
"03018201662f2f7372632f818205a2000120018181821860583b8443a10103a1054c"
"6f3093eba5d85143c3dc484af6818343a1012aa2044a4578616d706c65412e363350"
"2fa8c8352aea17faf7407271a5e90eb8408601010002566d0664951176f40600518b"
"5c32a2a2137871f1f045ad44d7042de5ff"

Result bundle for Example A.6 with different BCB block flags.

Referenced by test_AppendixA_Example6_BCB_Source().

◆ exA_6_kid

const char* exA_6_kid = "ExampleA.6"
static

◆ exA_6_sk

const char* exA_6_sk = "6c4e5271e211e0c8329ab8f363097f16516a459f12a4060cf0164968fdccbd63"
static

Symmetric key for Example A.6.

Referenced by test_AppendixA_Example6_BCB_Source().

◆ exA_nosec

const char* exA_nosec
static
Initial value:
= "9f890700028201692f2f6473742f7376638201692f2f7372632f7376638201662f2f"
"7372632f821b000000bd51281400001a000f42404482a081c9860101000246656865"
"6c6c6f444ec359d2ff"

Common input bundle from Appendix A.

Referenced by test_AppendixA_Example1_BIB_Source(), test_AppendixA_Example1_BIB_VerifyAccept(), test_AppendixA_Example4_BCB_Source(), test_AppendixA_Example4_BCB_VerifyAccept(), test_AppendixA_Example5_BCB_Source(), test_AppendixA_Example5_BCB_VerifyAccept(), test_AppendixA_Example6_BCB_Source(), test_CoseSc_InvalidOptions_Source(), and test_CoseSc_InvalidOptions_Verifier().

◆ LocalTestCtx