From d15fccdbf457362617ef1491ad633d85027af327 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 09:39:23 -0400 Subject: [PATCH 01/20] [nasa/cryptolib#385] Add operational SAs --- .../internal/sa_interface_inmemory.template.c | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/sa/internal/sa_interface_inmemory.template.c b/src/sa/internal/sa_interface_inmemory.template.c index 96b7560d..1d14337c 100644 --- a/src/sa/internal/sa_interface_inmemory.template.c +++ b/src/sa/internal/sa_interface_inmemory.template.c @@ -264,7 +264,7 @@ void sa_populate(void) sa[1].gvcid_blk.vcid = 0; sa[1].gvcid_blk.mapid = TYPE_TC; - // TC - Encryption Only - AES-GCM-256 (Keyed) + // TC - Encryption Only - AES-GCM-256 (Operational) // IV = 0...0, IV-Len = 12, TFVN = 0, VCID = 0; MAC-Len = 0, ARSNW = 5 // EKID = 2 sa[2].spi = 2; @@ -276,8 +276,8 @@ void sa_populate(void) sa[2].ast = 0; sa[2].shivf_len = 12; sa[2].iv_len = 12; - sa[2].arsnw_len = 1; - sa[2].arsnw = 5; + sa[2].arsnw_len = 0; + sa[2].arsnw = 0; sa[2].arsn_len = 0; sa[2].gvcid_blk.tfvn = 0; sa[2].gvcid_blk.scid = SCID & 0x3FF; @@ -328,11 +328,11 @@ void sa_populate(void) sa[4].gvcid_blk.vcid = 0; sa[4].gvcid_blk.mapid = TYPE_TC; - // TM - CLEAR MODE (Keyed) + // TM - CLEAR MODE (Operational) // IV = 0...0, IV-Len = 12, MAC-Len = 0, TFVN = 0, VCID = 0, ARSNW = 5 // EKID = 5 sa[5].spi = 5; - sa[5].sa_state = SA_KEYED; + sa[5].sa_state = SA_OPERATIONAL; sa[5].est = 0; sa[5].ast = 0; sa[5].shivf_len = 12; @@ -344,14 +344,14 @@ void sa_populate(void) sa[5].gvcid_blk.tfvn = 0; sa[5].gvcid_blk.scid = SCID & 0x3FF; sa[5].gvcid_blk.vcid = 1; - sa[5].gvcid_blk.mapid = TYPE_TM; + sa[5].gvcid_blk.mapid = TYPE_TC; // TM - Encryption Only - AES-CBC-256 (Keyed) // IV = 0...0, IV-Len = 16, TFVN = 0, VCID = 0; MAC-Len = 0, ARSNW = 5 // EKID = 6 sa[6].spi = 6; sa[6].ekid = 6; - sa[6].sa_state = SA_KEYED; + sa[6].sa_state = SA_OPERATIONAL; sa[6].ecs_len = 1; sa[6].ecs = CRYPTO_CIPHER_AES256_CBC; sa[6].est = 1; @@ -366,7 +366,7 @@ void sa_populate(void) sa[6].gvcid_blk.tfvn = 0; sa[6].gvcid_blk.scid = SCID & 0x3FF; sa[6].gvcid_blk.vcid = 0; - sa[6].gvcid_blk.mapid = TYPE_TM; + sa[6].gvcid_blk.mapid = TYPE_TC; // TM - Authentication Only HMAC_SHA512 (Keyed) // IV = 0...0, IV-Len = 12, MAC-Len = 16, TFVN = 0, VCID = 0, ARSNW = 5 @@ -388,7 +388,7 @@ void sa_populate(void) sa[7].gvcid_blk.tfvn = 0; sa[7].gvcid_blk.scid = SCID & 0x3FF; sa[7].gvcid_blk.vcid = 0; - sa[7].gvcid_blk.mapid = TYPE_TM; + sa[7].gvcid_blk.mapid = TYPE_TC; // TM - Authenticated Encryption AES-CBC-256 (Keyed) // IV = 0...0, IV-Len = 16, MAC-Len = 16, TFVN = 0, VCID = 0, ARSNW = 5 @@ -411,13 +411,13 @@ void sa_populate(void) sa[8].gvcid_blk.tfvn = 0; sa[8].gvcid_blk.scid = SCID & 0x3FF; sa[8].gvcid_blk.vcid = 0; - sa[8].gvcid_blk.mapid = TYPE_TM; + sa[8].gvcid_blk.mapid = TYPE_TC; // AOS - Clear Mode // IV = 0...0, IV-Len = 12, MAC-Len = 0, TFVN = 1, VCID = 0, ARSNW = 5 // EKID = 9 sa[9].spi = 9; - sa[9].sa_state = SA_KEYED; + sa[9].sa_state = SA_OPERATIONAL; sa[9].est = 0; sa[9].ast = 0; sa[9].shivf_len = 12; @@ -429,7 +429,7 @@ void sa_populate(void) sa[9].gvcid_blk.tfvn = 0x01; sa[9].gvcid_blk.scid = SCID & 0x3FF; sa[9].gvcid_blk.vcid = 0; - sa[9].gvcid_blk.mapid = 0; + sa[9].gvcid_blk.mapid = TYPE_TC; // AOS - Authentication Only, HMAC_SHA512 (Keyed) // IV = 0...0, IV-Len = 16, MAC-Len = 16, TFVN = 1, VCID = 0, ARSNW = 5 @@ -449,14 +449,14 @@ void sa_populate(void) sa[10].gvcid_blk.tfvn = 0x01; sa[10].gvcid_blk.scid = SCID & 0x3FF; sa[10].gvcid_blk.vcid = 0; - sa[10].gvcid_blk.mapid = 0; + sa[10].gvcid_blk.mapid = TYPE_TC; // AOS - Encryption Only, AES-GCM-256 (Keyed) // IV = 0...0, IV-Len = 16, MAC-Len = 0, TFVN = 1, VCID = 0, ARSNW = 5 // EKID = 11 sa[11].spi = 11; sa[11].ekid = 11; - sa[11].sa_state = SA_KEYED; + sa[11].sa_state = SA_OPERATIONAL; sa[11].est = 1; sa[11].ast = 0; sa[11].ecs_len = 1; @@ -472,7 +472,7 @@ void sa_populate(void) sa[11].gvcid_blk.tfvn = 0x01; sa[11].gvcid_blk.scid = SCID & 0x3FF; sa[11].gvcid_blk.vcid = 0; - sa[11].gvcid_blk.mapid = 0; + sa[11].gvcid_blk.mapid = TYPE_TC; // AOS - Authenticated Encryption, AES-CBC-256 (Keyed) // IV = 0...0, IV-Len = 16, MAC-Len = 16, TFVN = 1, VCID = 0, ARSNW = 5 @@ -493,7 +493,7 @@ void sa_populate(void) sa[12].arsnw = 5; sa[12].gvcid_blk.tfvn = 0x01; sa[12].gvcid_blk.scid = SCID & 0x3FF; - sa[12].gvcid_blk.vcid = 0; + sa[12].gvcid_blk.vcid = TYPE_TC; // EP - Testing SAs From 95b1821cb16c49ffd46e37bec781edb7ec87c40f Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 09:39:49 -0400 Subject: [PATCH 02/20] [nasa/cryptolib#385] Fix support build script --- support/scripts/build_support.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/scripts/build_support.sh b/support/scripts/build_support.sh index 1355e16e..80303e12 100755 --- a/support/scripts/build_support.sh +++ b/support/scripts/build_support.sh @@ -11,4 +11,4 @@ source $SCRIPT_DIR/env.sh rm $BASE_DIR/CMakeCache.txt -cmake $BASE_DIR -DCODECOV=1 -DDEBUG=1 -DSUPPORT=1 -DTEST=1 && make && make test +cmake $BASE_DIR -DCODECOV=1 -DDEBUG=1 -DSUPPORT=1 -DTEST=1 -DCRYPTO_LIBGCRYPT=1 -DSA_INTERNAL=1 -DMC_INTERNAL=1 -DKEY_INTERNAL=1 && make && make test From 6268987ced3f4e26521ce7226b16a459d0a0b299 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 09:40:35 -0400 Subject: [PATCH 03/20] [nasa/cryptolib#385] Modify CMakeLists to generate only libcryptolib.so --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 004fe41c..471ff05e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -165,8 +165,8 @@ set_target_properties(crypto PROPERTIES PUBLIC_HEADER "${CRYPTO_INCLUDES}") set_target_properties(crypto PROPERTIES OUTPUT_NAME "cryptolib") add_custom_command(TARGET crypto POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/lib/libcrypto.so - COMMENT "Created ${PROJECT_BINARY_DIR}/lib/libCrypto.so" + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/src/libcryptolib.so + COMMENT "Created ${PROJECT_BINARY_DIR}/src/libcryptolib.so" ) if(DEFINED CFE_SYSTEM_PSPNAME) From fc5aaef323010c9de0fa2e9b0e6b3d3a012441b1 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 10:26:33 -0400 Subject: [PATCH 04/20] [nasa/cryptolib#385] Fix arsn and arsn lengths in SAs --- .../internal/sa_interface_inmemory.template.c | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/sa/internal/sa_interface_inmemory.template.c b/src/sa/internal/sa_interface_inmemory.template.c index 1d14337c..ae7f96c4 100644 --- a/src/sa/internal/sa_interface_inmemory.template.c +++ b/src/sa/internal/sa_interface_inmemory.template.c @@ -337,10 +337,10 @@ void sa_populate(void) sa[5].ast = 0; sa[5].shivf_len = 12; sa[5].iv_len = 12; - sa[5].shsnf_len = 2; + sa[5].shsnf_len = 0; sa[5].arsnw = 5; sa[5].arsnw_len = 1; - sa[5].arsn_len = 2; + sa[5].arsn_len = 0; sa[5].gvcid_blk.tfvn = 0; sa[5].gvcid_blk.scid = SCID & 0x3FF; sa[5].gvcid_blk.vcid = 1; @@ -360,7 +360,8 @@ void sa_populate(void) sa[6].iv_len = 16; sa[6].shplf_len = 1; sa[6].stmacf_len = 0; - sa[6].arsn_len = 2; + sa[6].arsn_len = 0; + sa[6].shsnf_len = 0; sa[6].arsnw_len = 1; sa[6].arsnw = 5; sa[6].gvcid_blk.tfvn = 0; @@ -424,8 +425,8 @@ void sa_populate(void) sa[9].iv_len = 12; sa[9].shsnf_len = 2; sa[9].arsnw = 5; - sa[9].arsnw_len = 1; - sa[9].arsn_len = 2; + sa[9].arsnw_len = 0; + sa[9].arsn_len = 0; sa[9].gvcid_blk.tfvn = 0x01; sa[9].gvcid_blk.scid = SCID & 0x3FF; sa[9].gvcid_blk.vcid = 0; @@ -465,8 +466,8 @@ void sa_populate(void) sa[11].iv_len = 16; sa[11].shivf_len = 16; sa[11].stmacf_len = 0; - sa[11].shsnf_len = 2; - sa[11].arsn_len = 2; + sa[11].shsnf_len = 0; + sa[11].arsn_len = 0; sa[11].arsnw_len = 1; sa[11].arsnw = 5; sa[11].gvcid_blk.tfvn = 0x01; @@ -504,10 +505,10 @@ void sa_populate(void) sa[13].ast = 0; sa[13].shivf_len = 12; sa[13].iv_len = 12; - sa[13].shsnf_len = 2; + sa[13].shsnf_len = 0; sa[13].arsnw = 5; sa[13].arsnw_len = 1; - sa[13].arsn_len = 2; + sa[13].arsn_len = 0; sa[13].gvcid_blk.tfvn = 2; sa[13].gvcid_blk.scid = SCID & 0x3FF; sa[13].gvcid_blk.vcid = 0; @@ -521,10 +522,10 @@ void sa_populate(void) sa[14].ast = 0; sa[14].shivf_len = 12; sa[14].iv_len = 12; - sa[14].shsnf_len = 2; + sa[14].shsnf_len = 0; sa[14].arsnw = 5; sa[14].arsnw_len = 1; - sa[14].arsn_len = 2; + sa[14].arsn_len = 0; sa[14].gvcid_blk.tfvn = 2; sa[14].gvcid_blk.scid = SCID & 0x3FF; sa[14].gvcid_blk.vcid = 2; @@ -538,10 +539,10 @@ void sa_populate(void) sa[15].ast = 0; sa[15].shivf_len = 12; sa[15].iv_len = 12; - sa[15].shsnf_len = 2; + sa[15].shsnf_len = 0; sa[15].arsnw = 5; sa[15].arsnw_len = 1; - sa[15].arsn_len = 2; + sa[15].arsn_len = 0; sa[15].gvcid_blk.tfvn = 2; sa[15].gvcid_blk.scid = SCID & 0x3FF; sa[15].gvcid_blk.vcid = 3; From 9b476cc0ee7000048d8415a3a0d8316b78714023 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 10:27:08 -0400 Subject: [PATCH 05/20] [nasa/cryptolib#385] Fix length calculations for TC frames --- support/standalone/standalone.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 43b8f42a..8e63051b 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -331,8 +331,8 @@ void crypto_standalone_tc_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o /* TC Header */ out_data[0] = 0x20; out_data[1] = CRYPTO_STANDALONE_FRAMING_SCID; - out_data[2] = ((tc_vcid << 2) & 0xFC) | (((uint16_t)CRYPTO_STANDALONE_FRAMING_TC_DATA_LEN >> 8) & 0x03); - out_data[3] = (uint16_t)CRYPTO_STANDALONE_FRAMING_TC_DATA_LEN & 0x00FF; + out_data[2] = ((tc_vcid << 2) & 0xFC) | (((*out_length - 1) >> 8) & 0x03); + out_data[3] = (*out_length - 1) & 0xFF; out_data[4] = tc_seq_num++; /* Segement Header */ From 1360aee76ba4ce93fe4611d615636782245073e2 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 11 Apr 2025 12:17:15 -0400 Subject: [PATCH 06/20] [nasa/cryptolib#385] Pushing WIP --- src/CMakeLists.txt | 10 +++++----- support/standalone/standalone.c | 15 +++++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 471ff05e..28bffcae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -128,7 +128,7 @@ endif() # Create the app module if(DEFINED CFE_SYSTEM_PSPNAME) - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/cpu${TGTSYS_${SYSVAR}}/${INSTALL_SUBDIR}") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${TGTSYS_${SYSVAR}}/${INSTALL_SUBDIR}/components/cryptolib") add_cfe_app(crypto ${LIB_SRC_FILES}) target_include_directories(crypto PUBLIC ../include) else() @@ -162,11 +162,11 @@ set_target_properties(crypto PROPERTIES PUBLIC_HEADER "${CRYPTO_INCLUDES}") # This causes the library to be installed as libcryptolib.so while still being # referred to as crypto from CMake. Without this, the library filename would be # libcrypto.so which would conflict with openssl -set_target_properties(crypto PROPERTIES OUTPUT_NAME "cryptolib") +set_target_properties(crypto PROPERTIES OUTPUT_NAME "libcryptolib") add_custom_command(TARGET crypto POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/src/libcryptolib.so - COMMENT "Created ${PROJECT_BINARY_DIR}/src/libcryptolib.so" + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/components/cryptolib/libcryptolib.so + COMMENT "Created ${PROJECT_BINARY_DIR}/components/cryptolib/libcryptolib.so" ) if(DEFINED CFE_SYSTEM_PSPNAME) @@ -175,7 +175,7 @@ if(DEFINED CFE_SYSTEM_PSPNAME) PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/host) else() install(TARGETS crypto - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + DESTINATION ${CMAKE_INSTALL_PREFIX}/components/cryptolib PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include) endif() diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 8e63051b..b3d4fa20 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -149,7 +149,9 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * { SaInterface sa_if = get_sa_interface_inmemory(); SecurityAssociation_t *test_association = NULL; - sa_if->sa_get_from_spi(vcid, &test_association); + int32_t status = CRYPTO_LIB_SUCCESS; + + status = sa_if->sa_get_from_spi(vcid, &test_association); /* Handle special case for VCID */ if (vcid == 1) @@ -158,7 +160,7 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * vcid = 0; } - if ((test_association->sa_state == SA_OPERATIONAL) && + if ((test_association->sa_state == SA_OPERATIONAL) && (status == CRYPTO_LIB_SUCCESS) && (test_association->gvcid_blk.mapid == TYPE_TC) && (test_association->gvcid_blk.scid == SCID)) { tc_vcid = vcid; @@ -456,9 +458,10 @@ void crypto_standalone_tm_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o { SaInterface sa_if = get_sa_interface_inmemory(); SecurityAssociation_t *sa_ptr = NULL; + int32_t status = CRYPTO_LIB_SUCCESS; - sa_if->sa_get_from_spi(spi, &sa_ptr); - if (!sa_ptr) + status = sa_if->sa_get_from_spi(spi, &sa_ptr); + if (status != CRYPTO_LIB_SUCCESS) { printf("WARNING - SA IS NULL!\n"); } @@ -514,7 +517,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if ((tm_ptr[0] == 0x08) || ((tm_ptr[0] == 0x03) && tm_ptr[1] == 0xff)) + if ((tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x03) && tm_ptr[1] == 0xff)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -526,7 +529,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin printf("\n"); #endif // Send all SPP telemetry packets - if (tm_ptr[0] == 0x08) + if (tm_ptr[0] == 0x09) { status = sendto(tm_write_sock->sockfd, tm_ptr, spp_len, 0, (struct sockaddr *)&tm_write_sock->saddr, sizeof(tm_write_sock->saddr)); From 1836b598d1b7106df199fae2457556f37a7d2d5f Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Tue, 15 Apr 2025 11:28:09 -0400 Subject: [PATCH 07/20] [nasa/cryptolib#385] Modified CMakeLists for NOS3 --- src/CMakeLists.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 28bffcae..c8c523ad 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -128,12 +128,13 @@ endif() # Create the app module if(DEFINED CFE_SYSTEM_PSPNAME) - set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${TGTSYS_${SYSVAR}}/${INSTALL_SUBDIR}/components/cryptolib") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${TGTSYS_${SYSVAR}}/${INSTALL_SUBDIR}") add_cfe_app(crypto ${LIB_SRC_FILES}) target_include_directories(crypto PUBLIC ../include) else() # Standalone build add_library(crypto SHARED ${LIB_SRC_FILES}) + target_include_directories(crypto PUBLIC ../include) endif() if(CRYPTO_LIBGCRYPT) @@ -159,23 +160,25 @@ endif() file(GLOB CRYPTO_INCLUDES ../include/*.h) set_target_properties(crypto PROPERTIES PUBLIC_HEADER "${CRYPTO_INCLUDES}") +file(GLOB CRYPTO_INCLUDES ../support/standalone/*.h) +set_target_properties(crypto PROPERTIES PUBLIC_HEADER "${CRYPTO_INCLUDES}") # This causes the library to be installed as libcryptolib.so while still being # referred to as crypto from CMake. Without this, the library filename would be # libcrypto.so which would conflict with openssl -set_target_properties(crypto PROPERTIES OUTPUT_NAME "libcryptolib") +set_target_properties(crypto PROPERTIES OUTPUT_NAME "cryptolib") add_custom_command(TARGET crypto POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/components/cryptolib/libcryptolib.so - COMMENT "Created ${PROJECT_BINARY_DIR}/components/cryptolib/libcryptolib.so" + COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_BINARY_DIR}/libcryptolib.so + COMMENT "Created ${PROJECT_BINARY_DIR}/libcryptolib.so" ) if(DEFINED CFE_SYSTEM_PSPNAME) install(TARGETS crypto DESTINATION ${CMAKE_INSTALL_PREFIX}/${TGTSYS_${SYSVAR}}/${INSTALL_SUBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/host) + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include) else() install(TARGETS crypto - DESTINATION ${CMAKE_INSTALL_PREFIX}/components/cryptolib + DESTINATION ${CMAKE_INSTALL_PREFIX}/ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/include) endif() From 3dfb2a2044bec2b43ad883b2b1bddd95e5df32da Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 18 Apr 2025 12:31:01 -0400 Subject: [PATCH 08/20] [nasa/nos3#619] Cryptolib standalone rework --- src/core/crypto_config.c | 7 +++-- .../internal/sa_interface_inmemory.template.c | 30 +++++++++---------- support/standalone/standalone.c | 24 +++++++++------ support/standalone/standalone.h | 4 +++ 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/src/core/crypto_config.c b/src/core/crypto_config.c index ebc05430..90bc2ad0 100644 --- a/src/core/crypto_config.c +++ b/src/core/crypto_config.c @@ -60,7 +60,7 @@ int32_t Crypto_SC_Init(void) { int32_t status = CRYPTO_LIB_SUCCESS; Crypto_Config_CryptoLib(KEY_TYPE_INTERNAL, MC_TYPE_INTERNAL, SA_TYPE_INMEMORY, CRYPTOGRAPHY_TYPE_LIBGCRYPT, - IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_PUS_HDR, + IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_TRUE, TC_NO_PUS_HDR, TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE, TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE); // TC @@ -69,7 +69,6 @@ int32_t Crypto_SC_Init(void) GvcidManagedParameters_t TC_UT_Managed_Parameters = { 0, 0x0003, 0, TC_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_HAS_SEGMENT_HDRS, 1024, TC_OCF_NA, 1}; Crypto_Config_Add_Gvcid_Managed_Parameters(TC_UT_Managed_Parameters); - // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 4, TC_HAS_FECF, TC_HAS_SEGMENT_HDRS, TC_OCF_NA, 1024, // AOS_FHEC_NA, AOS_IZ_NA, 0); TC_UT_Managed_Parameters.vcid = 2; @@ -79,7 +78,9 @@ int32_t Crypto_SC_Init(void) // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 1, TM_HAS_FECF, TM_SEGMENT_HDRS_NA, TM_HAS_OCF, 1786, // AOS_FHEC_NA, AOS_IZ_NA, 0); GvcidManagedParameters_t TM_UT_Managed_Parameters = { - 0, 0x0003, 1, TM_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TM_SEGMENT_HDRS_NA, 1786, TM_HAS_OCF, 1}; + 0, 0x0003, 1, TM_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TM_SEGMENT_HDRS_NA, 1786, TM_NO_OCF, 1}; + Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); + TM_UT_Managed_Parameters.vcid = 1; Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); TM_UT_Managed_Parameters.vcid = 2; Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); diff --git a/src/sa/internal/sa_interface_inmemory.template.c b/src/sa/internal/sa_interface_inmemory.template.c index ae7f96c4..8c4705cf 100644 --- a/src/sa/internal/sa_interface_inmemory.template.c +++ b/src/sa/internal/sa_interface_inmemory.template.c @@ -253,11 +253,11 @@ void sa_populate(void) sa[1].sa_state = SA_OPERATIONAL; sa[1].est = 0; sa[1].ast = 0; - sa[1].shivf_len = 12; - sa[1].iv_len = 12; + sa[1].shivf_len = 0; + sa[1].iv_len = 0; sa[1].shsnf_len = 0; - sa[1].arsnw = 5; - sa[1].arsnw_len = 1; + sa[1].arsnw = 0; + sa[1].arsnw_len = 0; sa[1].arsn_len = 0; sa[1].gvcid_blk.tfvn = 0; sa[1].gvcid_blk.scid = SCID & 0x3FF; @@ -276,8 +276,8 @@ void sa_populate(void) sa[2].ast = 0; sa[2].shivf_len = 12; sa[2].iv_len = 12; - sa[2].arsnw_len = 0; - sa[2].arsnw = 0; + sa[2].arsnw_len = 1; + sa[2].arsnw = 5; sa[2].arsn_len = 0; sa[2].gvcid_blk.tfvn = 0; sa[2].gvcid_blk.scid = SCID & 0x3FF; @@ -335,11 +335,11 @@ void sa_populate(void) sa[5].sa_state = SA_OPERATIONAL; sa[5].est = 0; sa[5].ast = 0; - sa[5].shivf_len = 12; - sa[5].iv_len = 12; + sa[5].shivf_len = 0; + sa[5].iv_len = 0; sa[5].shsnf_len = 0; - sa[5].arsnw = 5; - sa[5].arsnw_len = 1; + sa[5].arsnw = 0; + sa[5].arsnw_len = 0; sa[5].arsn_len = 0; sa[5].gvcid_blk.tfvn = 0; sa[5].gvcid_blk.scid = SCID & 0x3FF; @@ -353,12 +353,12 @@ void sa_populate(void) sa[6].ekid = 6; sa[6].sa_state = SA_OPERATIONAL; sa[6].ecs_len = 1; - sa[6].ecs = CRYPTO_CIPHER_AES256_CBC; + sa[6].ecs = CRYPTO_CIPHER_AES256_GCM; sa[6].est = 1; sa[6].ast = 0; - sa[6].shivf_len = 16; - sa[6].iv_len = 16; - sa[6].shplf_len = 1; + sa[6].shivf_len = 12; + sa[6].iv_len = 12; + sa[6].shplf_len = 0; sa[6].stmacf_len = 0; sa[6].arsn_len = 0; sa[6].shsnf_len = 0; @@ -366,7 +366,7 @@ void sa_populate(void) sa[6].arsnw = 5; sa[6].gvcid_blk.tfvn = 0; sa[6].gvcid_blk.scid = SCID & 0x3FF; - sa[6].gvcid_blk.vcid = 0; + sa[6].gvcid_blk.vcid = 2; sa[6].gvcid_blk.mapid = TYPE_TC; // TM - Authentication Only HMAC_SHA512 (Keyed) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index b3d4fa20..0bb85c45 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -29,8 +29,8 @@ static volatile uint8_t keepRunning = CRYPTO_LIB_SUCCESS; static volatile uint8_t tc_seq_num = 0; static volatile uint8_t tc_vcid = CRYPTO_STANDALONE_FRAMING_VCID; -static volatile uint8_t tc_debug = 0; -static volatile uint8_t tm_debug = 0; +static volatile uint8_t tc_debug = 1; +static volatile uint8_t tm_debug = 1; /* ** Functions @@ -152,6 +152,7 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * int32_t status = CRYPTO_LIB_SUCCESS; status = sa_if->sa_get_from_spi(vcid, &test_association); + Crypto_saPrint(test_association); /* Handle special case for VCID */ if (vcid == 1) @@ -293,7 +294,7 @@ int32_t crypto_standalone_udp_init(udp_info_t *sock, int32_t port, uint8_t bind_ status = bind(sock->sockfd, (struct sockaddr *)&sock->saddr, sizeof(sock->saddr)); if (status != 0) { - printf(" udp_init: Socker bind error with port %d \n", sock->port); + printf(" udp_init: Socket bind error with port %d \n", sock->port); status = CRYPTO_LIB_ERROR; } } @@ -467,9 +468,13 @@ void crypto_standalone_tm_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o } // Calculate security headers and trailers - uint8_t header_length = 6 + 2 + sa_ptr->shivf_len + sa_ptr->shplf_len + sa_ptr->shsnf_len + 40; // TODO: Why +40? + uint8_t header_length = TM_PRI_HDR_LENGTH + SDLS_SPI_LENGTH + sa_ptr->shivf_len + sa_ptr->shplf_len + sa_ptr->shsnf_len; // TODO: Why +40? uint8_t trailer_length = sa_ptr->stmacf_len; if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + { + trailer_length += 2; + } + if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { trailer_length += 4; } @@ -517,7 +522,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if ((tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x03) && tm_ptr[1] == 0xff)) + if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -529,7 +534,8 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin printf("\n"); #endif // Send all SPP telemetry packets - if (tm_ptr[0] == 0x09) + // 0x09 for HK/Device TLM Packets (Generic Components) + if (tm_ptr[0] == 0x08 || tm_ptr[0] == 0x09) { status = sendto(tm_write_sock->sockfd, tm_ptr, spp_len, 0, (struct sockaddr *)&tm_write_sock->saddr, sizeof(tm_write_sock->saddr)); @@ -633,7 +639,7 @@ void *crypto_standalone_tm_process(void *socks) { if (tm_debug == 1) { - if (((tm_ptr[4] & 0x0F) == 0x0F) && (tm_ptr[5] == 0xFE)) + if (((tm_ptr[4] & 0x07) == 0x07) && (tm_ptr[5] == 0xFE)) { // OID Frame } @@ -651,10 +657,10 @@ void *crypto_standalone_tm_process(void *socks) /* Frame */ #ifdef CRYPTO_STANDALONE_HANDLE_FRAMING #ifdef TM_CADU_HAS_ASM - uint16_t spi = (0xFFFF & tm_process_in[11]) | tm_process_in[12]; + uint16_t spi = (tm_process_in[10] << 8) | tm_process_in[11]; crypto_standalone_tm_frame(tm_ptr, tm_out_len, tm_framed, &tm_framed_len, spi); #else - uint16_t spi = (0xFFFF & tm_process_in[7]) | tm_process_in[8]; + uint16_t spi = (tm_process_in[6] << 8) | tm_process_in[7]; crypto_standalone_tm_frame(tm_process_in, tm_process_len, tm_framed, &tm_framed_len, spi); #endif memcpy(tm_process_in, tm_framed, tm_framed_len); diff --git a/support/standalone/standalone.h b/support/standalone/standalone.h index 376ece49..0f0d3a7b 100644 --- a/support/standalone/standalone.h +++ b/support/standalone/standalone.h @@ -73,6 +73,10 @@ extern "C" #define CRYPTO_MAX_INPUT_TOKENS 32 #define CRYPTO_MAX_INPUT_TOKEN_SIZE 64 +#define TM_PRI_HDR_LENGTH 6 +#define TM_ASM_LENGTH 4 +#define SDLS_SPI_LENGTH 2 + #define CRYPTO_CMD_UNKNOWN (-1) #define CRYPTO_CMD_HELP 0 #define CRYPTO_CMD_EXIT 1 From ab465608d45fc61f72a2e9bfe6c421a9dd7a06ba Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Mon, 21 Apr 2025 16:01:39 -0400 Subject: [PATCH 09/20] [nasa/nos3#619] Make TC TM AOS Auth SAs operational --- src/core/crypto_config.c | 12 ++--- .../internal/sa_interface_inmemory.template.c | 21 ++++---- support/standalone/standalone.c | 54 ++++++++++++++++--- support/standalone/standalone.h | 1 + 4 files changed, 62 insertions(+), 26 deletions(-) diff --git a/src/core/crypto_config.c b/src/core/crypto_config.c index 90bc2ad0..17ba4ddd 100644 --- a/src/core/crypto_config.c +++ b/src/core/crypto_config.c @@ -64,25 +64,21 @@ int32_t Crypto_SC_Init(void) TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE, TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE); // TC - // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 0, TC_HAS_FECF, TC_HAS_SEGMENT_HDRS, TC_OCF_NA, 1024, - // AOS_FHEC_NA, AOS_IZ_NA, 0); GvcidManagedParameters_t TC_UT_Managed_Parameters = { 0, 0x0003, 0, TC_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_HAS_SEGMENT_HDRS, 1024, TC_OCF_NA, 1}; Crypto_Config_Add_Gvcid_Managed_Parameters(TC_UT_Managed_Parameters); - // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 4, TC_HAS_FECF, TC_HAS_SEGMENT_HDRS, TC_OCF_NA, 1024, - // AOS_FHEC_NA, AOS_IZ_NA, 0); TC_UT_Managed_Parameters.vcid = 2; Crypto_Config_Add_Gvcid_Managed_Parameters(TC_UT_Managed_Parameters); + TC_UT_Managed_Parameters.vcid = 3; + Crypto_Config_Add_Gvcid_Managed_Parameters(TC_UT_Managed_Parameters); // TM - // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 1, TM_HAS_FECF, TM_SEGMENT_HDRS_NA, TM_HAS_OCF, 1786, - // AOS_FHEC_NA, AOS_IZ_NA, 0); GvcidManagedParameters_t TM_UT_Managed_Parameters = { 0, 0x0003, 1, TM_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TM_SEGMENT_HDRS_NA, 1786, TM_NO_OCF, 1}; Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); - TM_UT_Managed_Parameters.vcid = 1; + TM_UT_Managed_Parameters.vcid = 4; Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); - TM_UT_Managed_Parameters.vcid = 2; + TM_UT_Managed_Parameters.vcid = 5; Crypto_Config_Add_Gvcid_Managed_Parameters(TM_UT_Managed_Parameters); status = Crypto_Init(); return status; diff --git a/src/sa/internal/sa_interface_inmemory.template.c b/src/sa/internal/sa_interface_inmemory.template.c index 8c4705cf..3cc32c26 100644 --- a/src/sa/internal/sa_interface_inmemory.template.c +++ b/src/sa/internal/sa_interface_inmemory.template.c @@ -289,13 +289,14 @@ void sa_populate(void) // AKID = 3 sa[3].spi = 3; sa[3].akid = 3; - sa[3].sa_state = SA_KEYED; + sa[3].sa_state = SA_OPERATIONAL; sa[3].acs_len = 1; - sa[3].acs = CRYPTO_MAC_HMAC_SHA512; + sa[3].acs = CRYPTO_MAC_HMAC_SHA256; sa[3].est = 0; sa[3].ast = 1; - sa[3].shivf_len = 12; - sa[3].iv_len = 12; + sa[3].abm_len = ABM_SIZE; + sa[3].shivf_len = 0; + sa[3].iv_len = 0; sa[3].shsnf_len = 2; sa[3].arsn_len = 2; sa[3].arsnw_len = 1; @@ -303,7 +304,7 @@ void sa_populate(void) sa[3].stmacf_len = 16; sa[3].gvcid_blk.tfvn = 0; sa[3].gvcid_blk.scid = SCID & 0x3FF; - sa[3].gvcid_blk.vcid = 0; + sa[3].gvcid_blk.vcid = 3; sa[3].gvcid_blk.mapid = TYPE_TC; // TC - Authenticated Encryption - AES-GCM-256 (Keyed) @@ -346,7 +347,7 @@ void sa_populate(void) sa[5].gvcid_blk.vcid = 1; sa[5].gvcid_blk.mapid = TYPE_TC; - // TM - Encryption Only - AES-CBC-256 (Keyed) + // TM - Encryption Only - AES-GCM-256 (Keyed) // IV = 0...0, IV-Len = 16, TFVN = 0, VCID = 0; MAC-Len = 0, ARSNW = 5 // EKID = 6 sa[6].spi = 6; @@ -366,7 +367,7 @@ void sa_populate(void) sa[6].arsnw = 5; sa[6].gvcid_blk.tfvn = 0; sa[6].gvcid_blk.scid = SCID & 0x3FF; - sa[6].gvcid_blk.vcid = 2; + sa[6].gvcid_blk.vcid = 4; sa[6].gvcid_blk.mapid = TYPE_TC; // TM - Authentication Only HMAC_SHA512 (Keyed) @@ -374,9 +375,9 @@ void sa_populate(void) // AKID = 7 sa[7].spi = 7; sa[7].akid = 7; - sa[7].sa_state = SA_KEYED; + sa[7].sa_state = SA_OPERATIONAL; sa[7].acs_len = 1; - sa[7].acs = CRYPTO_MAC_HMAC_SHA512; + sa[7].acs = CRYPTO_MAC_HMAC_SHA256; sa[7].est = 0; sa[7].ast = 1; sa[7].shivf_len = 12; @@ -388,7 +389,7 @@ void sa_populate(void) sa[7].stmacf_len = 16; sa[7].gvcid_blk.tfvn = 0; sa[7].gvcid_blk.scid = SCID & 0x3FF; - sa[7].gvcid_blk.vcid = 0; + sa[7].gvcid_blk.vcid = 5; sa[7].gvcid_blk.mapid = TYPE_TC; // TM - Authenticated Encryption AES-CBC-256 (Keyed) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 0bb85c45..31121ad2 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -65,6 +65,7 @@ void crypto_standalone_print_help(void) "help - Display help \n" "noop - No operation command to device \n" "reset - Reset CryptoLib \n" + "active - Displays all operational SAs \n" "tc - Toggle TC debug prints \n" "tm - Toggle TM debug prints \n" "vcid # - Change active TC virtual channel \n" @@ -107,6 +108,10 @@ int32_t crypto_standalone_get_command(const char *str) { status = CRYPTO_CMD_TM_DEBUG; } + else if (strcmp(lcmd, "active") == 0) + { + status = CRYPTO_CMD_ACTIVE; + } return status; } @@ -151,17 +156,13 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * SecurityAssociation_t *test_association = NULL; int32_t status = CRYPTO_LIB_SUCCESS; - status = sa_if->sa_get_from_spi(vcid, &test_association); - Crypto_saPrint(test_association); - - /* Handle special case for VCID */ - if (vcid == 1) + status = sa_if->sa_get_operational_sa_from_gvcid(0, SCID, vcid, 0, &test_association); + if (status == CRYPTO_LIB_SUCCESS) { - printf("Special case for VCID 1! \n"); - vcid = 0; + Crypto_saPrint(test_association); } - if ((test_association->sa_state == SA_OPERATIONAL) && (status == CRYPTO_LIB_SUCCESS) && + if ((status == CRYPTO_LIB_SUCCESS) && (test_association->sa_state == SA_OPERATIONAL) && (test_association->gvcid_blk.mapid == TYPE_TC) && (test_association->gvcid_blk.scid == SCID)) { tc_vcid = vcid; @@ -171,6 +172,7 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * { printf("Error - virtual channel (VCID) %d is invalid! Sticking with prior vcid %d \n", vcid, tc_vcid); + status = CRYPTO_LIB_SUCCESS; } } else @@ -213,6 +215,42 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * } break; + case CRYPTO_CMD_ACTIVE: + if (crypto_standalone_check_number_arguments(num_tokens, 0) == CRYPTO_LIB_SUCCESS) + { + SaInterface sa_if = get_sa_interface_inmemory(); + SecurityAssociation_t *test_association = NULL; + + printf("Active SAs: \n\t"); + for (int i = 0; i < NUM_SA; i++) + { + sa_if->sa_get_from_spi(i, &test_association); + if (test_association->sa_state == SA_OPERATIONAL) + { + if(i<5) + { + printf("TC - "); + } + if(i>4 && i<9) + { + printf("TM - "); + } + if(i>8 && i<13) + { + printf("AOS - "); + } + if(i>12 && i<16) + { + printf("ExProc - "); + } + + printf("SPI %d - VCID %d - EST %d - AST %d\n\t", i, test_association->gvcid_blk.vcid, test_association->est, test_association->ast); + } + } + printf("\n"); + } + break; + default: printf("Invalid command format, type 'help' for more info\n"); status = CRYPTO_LIB_ERROR; diff --git a/support/standalone/standalone.h b/support/standalone/standalone.h index 0f0d3a7b..7ecac4bc 100644 --- a/support/standalone/standalone.h +++ b/support/standalone/standalone.h @@ -85,6 +85,7 @@ extern "C" #define CRYPTO_CMD_VCID 4 #define CRYPTO_CMD_TC_DEBUG 5 #define CRYPTO_CMD_TM_DEBUG 6 +#define CRYPTO_CMD_ACTIVE 7 /* ** Structures From 917c19e334f8128e7ab88908a431d4f8e5711e67 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Wed, 7 May 2025 10:09:22 -0400 Subject: [PATCH 10/20] nasa/nos3#385 whitelist cfdp msgid in standalone --- support/standalone/standalone.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 31121ad2..57ef886a 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -560,7 +560,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff)) + if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff) || (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -573,7 +573,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin #endif // Send all SPP telemetry packets // 0x09 for HK/Device TLM Packets (Generic Components) - if (tm_ptr[0] == 0x08 || tm_ptr[0] == 0x09) + if (tm_ptr[0] == 0x08 || tm_ptr[0] == 0x09 || (tm_ptr[0] == 0x0f && tm_ptr[1] == 0xfd)) { status = sendto(tm_write_sock->sockfd, tm_ptr, spp_len, 0, (struct sockaddr *)&tm_write_sock->saddr, sizeof(tm_write_sock->saddr)); @@ -599,7 +599,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin tm_process_len = tm_process_len - spp_len; } else if ((tm_ptr[0] == 0xFF && tm_ptr[1] == 0x48) || (tm_ptr[0] == 0x00 && tm_ptr[1] == 0x00) || - (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF)) + (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF)) { // TODO: Why 0x0200? // Idle Frame From 122022e91651ae3a5d92a245a820f32796ab0b15 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 9 May 2025 13:46:58 -0400 Subject: [PATCH 11/20] [nasa/cryptolib#385] cfdp debugging code block --- support/standalone/standalone.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 57ef886a..349e6ca4 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -30,7 +30,7 @@ static volatile uint8_t keepRunning = CRYPTO_LIB_SUCCESS; static volatile uint8_t tc_seq_num = 0; static volatile uint8_t tc_vcid = CRYPTO_STANDALONE_FRAMING_VCID; static volatile uint8_t tc_debug = 1; -static volatile uint8_t tm_debug = 1; +static volatile uint8_t tm_debug = 0; /* ** Functions @@ -560,7 +560,17 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff) || (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) + if (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD) // for custom CFDP debugging + { + spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; + printf("crypto_standalone_tm_process - SPP[%d]: 0x", spp_len); + for (int i = 0; i < spp_len; i++) + { + printf("%02x", tm_ptr[i]); + } + printf("\n"); + } + if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -677,7 +687,7 @@ void *crypto_standalone_tm_process(void *socks) { if (tm_debug == 1) { - if (((tm_ptr[4] & 0x07) == 0x07) && (tm_ptr[5] == 0xFE)) + if ((tm_ptr[4] == 0x07) && (tm_ptr[5] == 0xFE)) { // OID Frame } From 72509d4f3f31de1a7d49b6668c60207e0b358e3e Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Tue, 20 May 2025 15:52:31 -0400 Subject: [PATCH 12/20] nasa/nos3#619 fix cfdp packet header detection --- support/standalone/standalone.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 349e6ca4..934b3053 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -560,17 +560,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD) // for custom CFDP debugging - { - spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; - printf("crypto_standalone_tm_process - SPP[%d]: 0x", spp_len); - for (int i = 0; i < spp_len; i++) - { - printf("%02x", tm_ptr[i]); - } - printf("\n"); - } - if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && tm_ptr[1] == 0xff)) + if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && (tm_ptr[1] == 0xff)) || (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG From d01cc0b487afe63b34f6c8b614b192362b27654a Mon Sep 17 00:00:00 2001 From: Donnie-Ice <77851621+Donnie-Ice@users.noreply.github.com> Date: Tue, 20 May 2025 20:15:25 +0000 Subject: [PATCH 13/20] style: auto-format via clang-format --- support/standalone/standalone.c | 27 +++++++++++++++------------ support/standalone/standalone.h | 4 ++-- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 934b3053..bf8fa0d5 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -154,15 +154,15 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * { SaInterface sa_if = get_sa_interface_inmemory(); SecurityAssociation_t *test_association = NULL; - int32_t status = CRYPTO_LIB_SUCCESS; + int32_t status = CRYPTO_LIB_SUCCESS; status = sa_if->sa_get_operational_sa_from_gvcid(0, SCID, vcid, 0, &test_association); - if (status == CRYPTO_LIB_SUCCESS) + if (status == CRYPTO_LIB_SUCCESS) { Crypto_saPrint(test_association); } - if ((status == CRYPTO_LIB_SUCCESS) && (test_association->sa_state == SA_OPERATIONAL) && + if ((status == CRYPTO_LIB_SUCCESS) && (test_association->sa_state == SA_OPERATIONAL) && (test_association->gvcid_blk.mapid == TYPE_TC) && (test_association->gvcid_blk.scid == SCID)) { tc_vcid = vcid; @@ -227,24 +227,25 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * sa_if->sa_get_from_spi(i, &test_association); if (test_association->sa_state == SA_OPERATIONAL) { - if(i<5) + if (i < 5) { printf("TC - "); } - if(i>4 && i<9) + if (i > 4 && i < 9) { printf("TM - "); } - if(i>8 && i<13) + if (i > 8 && i < 13) { printf("AOS - "); } - if(i>12 && i<16) + if (i > 12 && i < 16) { printf("ExProc - "); } - printf("SPI %d - VCID %d - EST %d - AST %d\n\t", i, test_association->gvcid_blk.vcid, test_association->est, test_association->ast); + printf("SPI %d - VCID %d - EST %d - AST %d\n\t", i, test_association->gvcid_blk.vcid, + test_association->est, test_association->ast); } } printf("\n"); @@ -497,7 +498,7 @@ void crypto_standalone_tm_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o { SaInterface sa_if = get_sa_interface_inmemory(); SecurityAssociation_t *sa_ptr = NULL; - int32_t status = CRYPTO_LIB_SUCCESS; + int32_t status = CRYPTO_LIB_SUCCESS; status = sa_if->sa_get_from_spi(spi, &sa_ptr); if (status != CRYPTO_LIB_SUCCESS) @@ -506,7 +507,8 @@ void crypto_standalone_tm_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o } // Calculate security headers and trailers - uint8_t header_length = TM_PRI_HDR_LENGTH + SDLS_SPI_LENGTH + sa_ptr->shivf_len + sa_ptr->shplf_len + sa_ptr->shsnf_len; // TODO: Why +40? + uint8_t header_length = TM_PRI_HDR_LENGTH + SDLS_SPI_LENGTH + sa_ptr->shivf_len + sa_ptr->shplf_len + + sa_ptr->shsnf_len; // TODO: Why +40? uint8_t trailer_length = sa_ptr->stmacf_len; if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { @@ -560,7 +562,8 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; - if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && (tm_ptr[1] == 0xff)) || (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) + if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && (tm_ptr[1] == 0xff)) || + (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -599,7 +602,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin tm_process_len = tm_process_len - spp_len; } else if ((tm_ptr[0] == 0xFF && tm_ptr[1] == 0x48) || (tm_ptr[0] == 0x00 && tm_ptr[1] == 0x00) || - (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF)) + (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF)) { // TODO: Why 0x0200? // Idle Frame diff --git a/support/standalone/standalone.h b/support/standalone/standalone.h index 7ecac4bc..153b79a5 100644 --- a/support/standalone/standalone.h +++ b/support/standalone/standalone.h @@ -74,8 +74,8 @@ extern "C" #define CRYPTO_MAX_INPUT_TOKEN_SIZE 64 #define TM_PRI_HDR_LENGTH 6 -#define TM_ASM_LENGTH 4 -#define SDLS_SPI_LENGTH 2 +#define TM_ASM_LENGTH 4 +#define SDLS_SPI_LENGTH 2 #define CRYPTO_CMD_UNKNOWN (-1) #define CRYPTO_CMD_HELP 0 From 970fe6af226c900292d828835969bcc00d72e12a Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Wed, 21 May 2025 14:19:53 -0400 Subject: [PATCH 14/20] nasa/nos3#619 Fix cryptolib unit tests with new SAs --- test/unit/ut_aos_apply.c | 323 +++---------------------------------- test/unit/ut_aos_process.c | 91 ++--------- test/unit/ut_sa_save.c | 36 ++--- test/unit/ut_tc_apply.c | 6 +- test/unit/ut_tm_apply.c | 112 +------------ test/unit/ut_tm_process.c | 68 +------- 6 files changed, 67 insertions(+), 569 deletions(-) diff --git a/test/unit/ut_aos_apply.c b/test/unit/ut_aos_apply.c index 2561a308..53cbbe62 100644 --- a/test/unit/ut_aos_apply.c +++ b/test/unit/ut_aos_apply.c @@ -210,39 +210,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_aos_h = - "40C000000000000A112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAA778A1E133306963F1D9DCA32D6D60C23966A"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA2BB5"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -253,7 +221,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF) aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); SecurityAssociation_t *test_association; - sa_if->sa_get_from_spi(10, &test_association); + sa_if->sa_get_from_spi(9, &test_association); crypto_key_t *ekp = NULL; ekp = key_if->get_key(test_association->ekid); @@ -346,39 +314,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF_LEFT_BLANK) // Truth frame setup char *truth_aos_h = - "40C000000000000A112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAA3756F72DE2633CF59B14F1D89A5A7C67BBAABBAA0000"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA0000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -389,7 +325,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF_LEFT_BLANK) aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); SecurityAssociation_t *test_association; - sa_if->sa_get_from_spi(10, &test_association); + sa_if->sa_get_from_spi(9, &test_association); crypto_key_t *ekp = NULL; ekp = key_if->get_key(test_association->ekid); @@ -483,39 +419,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_FECF) // Truth frame setup char *truth_aos_h = - "40C00000000030F4000A112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAA3756F72DE2633CF59B14F1D89A5A7C67BBAABBAAFC09"; + "40C00000000030F400090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA7594"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -526,7 +430,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_FECF) aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); SecurityAssociation_t *test_association; - sa_if->sa_get_from_spi(10, &test_association); + sa_if->sa_get_from_spi(9, &test_association); crypto_key_t *ekp = NULL; ekp = key_if->get_key(test_association->ekid); @@ -621,39 +525,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_OID_FECF) // Truth frame setup char *truth_aos_h = - "40C00000000030F4666666666666000A112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAA3756F72DE2633CF59B14F1D89A5A7C67BBAABBAA3D89"; + "40C00000000030F466666666666600090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA87DD"; char *truth_aos_b = NULL; int truth_aos_len = 0; @@ -665,7 +537,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_OID_FECF) aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); SecurityAssociation_t *test_association; - sa_if->sa_get_from_spi(10, &test_association); + sa_if->sa_get_from_spi(9, &test_association); crypto_key_t *ekp = NULL; ekp = key_if->get_key(test_association->ekid); @@ -763,39 +635,7 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_1) // Truth frame setup char *truth_aos_h = - "40C000000000000A112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAA778A1E133306963F1D9DCA32D6D60C23966A"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD0ADA"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -805,13 +645,8 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_1) aos_frame_pri_hdr.scid = (((uint16_t)test_aos_b[0] & 0x3F) << 2) | (((uint16_t)test_aos_b[1] & 0xC0) >> 6); aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); - // Expose/setup SA for testing - // Configure SA 14 off - sa_if->sa_get_from_spi(14, &sa_ptr); - sa_ptr->sa_state = SA_KEYED; - - // Configure SA 15 on - sa_if->sa_get_from_spi(10, &sa_ptr); + // Configure SA 9 on + sa_if->sa_get_from_spi(9, &sa_ptr); sa_ptr->sa_state = SA_OPERATIONAL; crypto_key_t *ekp = NULL; @@ -909,39 +744,7 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_0) // Truth frame setup char *truth_aos_h = - "40C000000000000B112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAA5DB19EB46F096B17BBE72C50448218D93872"; + "40C0000000000009112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA5DB19EB46F096B17BBE72C50448218D9EF97"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -951,11 +754,7 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_0) aos_frame_pri_hdr.scid = (((uint16_t)test_aos_b[0] & 0x3F) << 2) | (((uint16_t)test_aos_b[1] & 0xC0) >> 6); aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); - // Expose/setup SA for testing - sa_if->sa_get_from_spi(10, &sa_ptr); // Disable SPI 10 - sa_ptr->sa_state = SA_KEYED; - - sa_if->sa_get_from_spi(11, &sa_ptr); // Enable and setup 11 + sa_if->sa_get_from_spi(9, &sa_ptr); // Enable and setup 11 sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->akid = 130; sa_ptr->ekid = 0; @@ -972,21 +771,6 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_0) sa_ptr->shsnf_len = 0; memset(sa_ptr->abm, 0x00, (sa_ptr->abm_len * sizeof(uint8_t))); // Bitmask of ones - // sa_if->sa_get_from_spi(10, &sa_ptr); - // sa_ptr->sa_state = SA_KEYED; - - // sa_if->sa_get_from_spi(11, &sa_ptr); - // sa_ptr->sa_state = SA_OPERATIONAL; - // sa_ptr->akid=130; - // sa_ptr->est = 0; - // sa_ptr->ast = 1; - // sa_ptr->acs_len = 1; - // sa_ptr->acs = CRYPTO_MAC_CMAC_AES256; - // sa_ptr->stmacf_len = 16; - // sa_ptr->abm_len = ABM_SIZE; - - memset(sa_ptr->abm, 0x00, (sa_ptr->abm_len * sizeof(uint8_t))); // Bitmask - status = Crypto_AOS_ApplySecurity((uint8_t *)test_aos_b, test_aos_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); @@ -1076,39 +860,7 @@ UTEST(AOS_APPLY, AES_GCM) // Truth frame setup char *truth_aos_h = - "40C000000000000ACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAA778A1E133306963F1D9DCA32D6D60C23C5D4"; + "40C00000000000090000000000000000000000000000CCCC112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA8069"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -1118,7 +870,7 @@ UTEST(AOS_APPLY, AES_GCM) aos_frame_pri_hdr.scid = (((uint16_t)test_aos_b[0] & 0x3F) << 2) | (((uint16_t)test_aos_b[1] & 0xC0) >> 6); aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); - sa_if->sa_get_from_spi(10, &sa_ptr); + sa_if->sa_get_from_spi(9, &sa_ptr); crypto_key_t *ekp = NULL; ekp = key_if->get_key(sa_ptr->ekid); ekp->key_state = KEY_ACTIVE; @@ -1218,39 +970,7 @@ UTEST(AOS_APPLY, AOS_KEY_STATE_TEST) // Truth frame setup char *truth_aos_h = - "40C000000000000B00000000000000000000000000000000000032B9721EB04D75174AAAFF34EB9F942F5C0707A3C4918FF016B9107B12" - "316E6C03EF5DDC68BA35152893EF7B9A8764D2A908F3C6CEBC23AC94290EA45455C67779B7BA49A899049613F80BEF44DC60E0AB41C63A" - "AC0DDD50438010FF0B28D57FDC9B6EFA412555717700328C20013CD7260A1F3043CC210F2379C1B54F0ADA49668753F992A7B37457185A" - "B28EA1DF00A28D58183D8A277148F662F5698143200B574E28AB766549401D18937E0FB491EB4D8C4A8766FCF29F57ED22EF9C212E8438" - "D04D3AFC5D968D4AECBDC97301B520F1E2943A2689278BF0321A5FC4BF77F042646419FBC66F94CCBD915F9B518DDB9A8C2DFE1CC0C138" - "9ADCACB0CCB227C77FF7A48E3E01EEB7C5AE88994A8193A92DC31D8B55B113D571421B8650F37F69A7F9E8258CE9F709A815FC10217FF8" - "FC2B298265FEF52F4FC3ADC439852146673E8CD0C283EF3CC3ED7C8DBA8F256B34928D16AB56002ABC1722A7A4E18339AF96720DD0429D" - "3E7F68F8CE1E09C749AC9A2BD54A287DEFBCC0611DB3FD84DCAF29F4FD102D65DC79C1124AA864D283E4007A770B839AE002D2DBDD910B" - "95DAC2E9C2CD3362F1D4361C747759B59CA07E971F5B27FF6F9868CB5024F51F7843150B1C07A7E40DE76408A91B563A5DE4705C4B1A09" - "CC644A6D9C72827F52CF34B2DCE1C12068BFAC4DD94EB0DD1D12EACC351CC969C756708DAE276B6F597F463D4727D6B6C8A406D474B456" - "486C200A78001894A4E6D4C56815B7E7788F82D13FB6448C5AB85C028935F8FE1951BC2F20BECBBB60E6ABAB9924C479552A1CBA01B5E5" - "1152071ECF8870129ADA932BA461ABD1F718F06200B7A1FCBA5EDF89E9CE148085282E4018F677E7AE6F30D8B5550BDEE1DEC39749C592" - "15220DA1D893CB922D85DE7B6BBCD9F3B787A78CE58FEDC6FEBCEC3F84AC2B8BA714D330F19A4E70E2BEE3587A6D98E89B67BB21400733" - "1D41053DEB5581807E6B7A9623928391C28B513C96EE6F6A0E60A7B352D207216F93A07160BC09F88B459ABDD5FC759CE58D7FBEDB1CA6" - "75A89D64B8F842070DA7C295530A562E84C7910C4502CACF5262BABA2378D1EBCF94BA77B8AFFB0C23573687CBD1135E55BCF808397A4F" - "83599F43A40BCB0CFA1621D8A3F77A8A2D64CBA4085DE543DA737FB5C8534A39F7C86B8C82C4D70C0EC13FFB09C3A53149CF7542BABD00" - "74651AF2D243C6380E9CE6BAC1D35F81AD9EACBCD23D20853F93E18E65E2EE64F31F486C96C027889A85C88261B9C7D2FFCE55412DDD3C" - "6C471B2D179E9805EA76B867DA04C2AF303AD458A37702002B418168BC08F4BAC37576F37460D89E06F359F20BC4A1E598B14A60F29634" - "465F8B167AE44C457E861DAD0983910A7B5A5AD6F2A93632DE340CDE2AEFF1DA2A9D45B40B88C4363F9074B7DE9A3A14B458C180181D9A" - "6B732450E3A38453FFDD0325AD063129E9EDA1EF05502710E3C344619F5B21B698FD83B2E6AA397D91988997C3E48FCEF4F031128A3F1F" - "7EDF6EB90CC04A05D70BED1D225104DE864A53DA42AD22CD400D7BBD96E0F29E59396D5FCF99A9B33BA102311C5C985618AD1779BD4EE1" - "7BCC4D39FE2675F2B7E40AB408347465625A1BC284C91FF997109DF1B0A824A0BE5656A56100FA121D3DB3BA66DE22108DEDB5AAACF308" - "C23777DF8B3CA6B8F0E1E2ECEE33B1A3DE7C354E1D4CF561B51134B8E3F652D0EC737B10FA25382455D2CFF9A63983D9B3C5EAF1DA3CFD" - "3ACB463AB5B0357A900220C91F4169A201FA8181B98307A281CE73760534E98F62DB627F58959279AF0FDB5DD4D2127CE3CDFF4DB759C0" - "88E75A8AA683B3A6FA6CCD4BF52E24ADC8A8B6E5A8A9C582E849777BE5CEE7B3CFD7B5DB819DC76E89C9954B720A2FDEE5D4F436B1745B" - "F626994994534E7691CB3F42E5F703FF9DBE53F5C34DFD988F6699F0743E1BB0427D599CE49E641A6A72B0462C5CE1F2FCB4D9248CBBF1" - "17378DD5E68BBA5271DF26A3336AD06B6EFA3AC73019515A8C5FD7DB8C5B3D812B25C12CA4C79115C4324698F70B33FD64E89791A1938D" - "AE814779D8720B4046C28C62C0BA6F449BF7DFC944828FB68A91E6347CD38EAE10ABDAC609F87807309F50D2EA330E4A8BD49FA2AA785F" - "CED71B8B409E283AB86C453125C06DAB315FB83463766D2A7BE97292E102EA426AB9550C0A9E754398C9D0256266E2789B921BB93FAF80" - "32919FA014FE307413DFF5DC6FE14B05E0F96A4B77FA826B4E6CEC615EA7BC782D81D850B2F5942B059BCB8378CF84943A503C5C8ED983" - "1031924047D1D7FC079136004424FCAE5EE4A63B2E447325D79354D715099463C2B263B989AC7B528AC5B9C7513A39371F90FDF6AAE1DC" - "E4B3B3892512398DA171E90C2BFCE9A5B93CDCBCEFC24B97B9A7CE5C46910E6609B04771E8A12F1D1541B606F05F83F369C74DD00A6F16" - "366A7883141E78B05B531C8C2F145949C47BEC9E968C909967D2"; + "40C000000000000B0000000000000000000000000000000010DF143C92A39B3568CC9916C9D06C715BF8017168F88FF016B9107B12316E6C03EF5DDC68BA35152893EF7B9A8764D2A908F3C6CEBC23AC94290EA45455C67779B7BA49A899049613F80BEF44DC60E0AB41C63AAC0DDD50438010FF0B28D57FDC9B6EFA412555717700328C20013CD7260A1F3043CC210F2379C1B54F0ADA49668753F992A7B37457185AB28EA1DF00A28D58183D8A277148F662F5698143200B574E28AB766549401D18937E0FB491EB4D8C4A8766FCF29F57ED22EF9C212E8438D04D3AFC5D968D4AECBDC97301B520F1E2943A2689278BF0321A5FC4BF77F042646419FBC66F94CCBD915F9B518DDB9A8C2DFE1CC0C1389ADCACB0CCB227C77FF7A48E3E01EEB7C5AE88994A8193A92DC31D8B55B113D571421B8650F37F69A7F9E8258CE9F709A815FC10217FF8FC2B298265FEF52F4FC3ADC439852146673E8CD0C283EF3CC3ED7C8DBA8F256B34928D16AB56002ABC1722A7A4E18339AF96720DD0429D3E7F68F8CE1E09C749AC9A2BD54A287DEFBCC0611DB3FD84DCAF29F4FD102D65DC79C1124AA864D283E4007A770B839AE002D2DBDD910B95DAC2E9C2CD3362F1D4361C747759B59CA07E971F5B27FF6F9868CB5024F51F7843150B1C07A7E40DE76408A91B563A5DE4705C4B1A09CC644A6D9C72827F52CF34B2DCE1C12068BFAC4DD94EB0DD1D12EACC351CC969C756708DAE276B6F597F463D4727D6B6C8A406D474B456486C200A78001894A4E6D4C56815B7E7788F82D13FB6448C5AB85C028935F8FE1951BC2F20BECBBB60E6ABAB9924C479552A1CBA01B5E51152071ECF8870129ADA932BA461ABD1F718F06200B7A1FCBA5EDF89E9CE148085282E4018F677E7AE6F30D8B5550BDEE1DEC39749C59215220DA1D893CB922D85DE7B6BBCD9F3B787A78CE58FEDC6FEBCEC3F84AC2B8BA714D330F19A4E70E2BEE3587A6D98E89B67BB214007331D41053DEB5581807E6B7A9623928391C28B513C96EE6F6A0E60A7B352D207216F93A07160BC09F88B459ABDD5FC759CE58D7FBEDB1CA675A89D64B8F842070DA7C295530A562E84C7910C4502CACF5262BABA2378D1EBCF94BA77B8AFFB0C23573687CBD1135E55BCF808397A4F83599F43A40BCB0CFA1621D8A3F77A8A2D64CBA4085DE543DA737FB5C8534A39F7C86B8C82C4D70C0EC13FFB09C3A53149CF7542BABD0074651AF2D243C6380E9CE6BAC1D35F81AD9EACBCD23D20853F93E18E65E2EE64F31F486C96C027889A85C88261B9C7D2FFCE55412DDD3C6C471B2D179E9805EA76B867DA04C2AF303AD458A37702002B418168BC08F4BAC37576F37460D89E06F359F20BC4A1E598B14A60F29634465F8B167AE44C457E861DAD0983910A7B5A5AD6F2A93632DE340CDE2AEFF1DA2A9D45B40B88C4363F9074B7DE9A3A14B458C180181D9A6B732450E3A38453FFDD0325AD063129E9EDA1EF05502710E3C344619F5B21B698FD83B2E6AA397D91988997C3E48FCEF4F031128A3F1F7EDF6EB90CC04A05D70BED1D225104DE864A53DA42AD22CD400D7BBD96E0F29E59396D5FCF99A9B33BA102311C5C985618AD1779BD4EE17BCC4D39FE2675F2B7E40AB408347465625A1BC284C91FF997109DF1B0A824A0BE5656A56100FA121D3DB3BA66DE22108DEDB5AAACF308C23777DF8B3CA6B8F0E1E2ECEE33B1A3DE7C354E1D4CF561B51134B8E3F652D0EC737B10FA25382455D2CFF9A63983D9B3C5EAF1DA3CFD3ACB463AB5B0357A900220C91F4169A201FA8181B98307A281CE73760534E98F62DB627F58959279AF0FDB5DD4D2127CE3CDFF4DB759C088E75A8AA683B3A6FA6CCD4BF52E24ADC8A8B6E5A8A9C582E849777BE5CEE7B3CFD7B5DB819DC76E89C9954B720A2FDEE5D4F436B1745BF626994994534E7691CB3F42E5F703FF9DBE53F5C34DFD988F6699F0743E1BB0427D599CE49E641A6A72B0462C5CE1F2FCB4D9248CBBF117378DD5E68BBA5271DF26A3336AD06B6EFA3AC73019515A8C5FD7DB8C5B3D812B25C12CA4C79115C4324698F70B33FD64E89791A1938DAE814779D8720B4046C28C62C0BA6F449BF7DFC944828FB68A91E6347CD38EAE10ABDAC609F87807309F50D2EA330E4A8BD49FA2AA785FCED71B8B409E283AB86C453125C06DAB315FB83463766D2A7BE97292E102EA426AB9550C0A9E754398C9D0256266E2789B921BB93FAF8032919FA014FE307413DFF5DC6FE14B05E0F96A4B77FA826B4E6CEC615EA7BC782D81D850B2F5942B059BCB8378CF84943A503C5C8ED9831031924047D1D7FC079136004424FCAE5EE4A63B2E447325D79354D715099463C2B263B989AC7B528AC5B9C7513A39371F90FDF6AAE1DCE4B3B3892512398DA171E90C2BFCE9A5B93CDCBCEFC24B97B9A7CE5C46910E6609B04771E8A12F1D1541B606F05F83F369C74DD00A6F16366A7883141E78B010BEC38C88E6E22F7A67B02779E860F40AAA11AD"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -1262,6 +982,8 @@ UTEST(AOS_APPLY, AOS_KEY_STATE_TEST) // Expose/setup SA for testing // Configure SA 14 off + sa_if->sa_get_from_spi(9, &sa_ptr); + sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(10, &sa_ptr); sa_ptr->sa_state = SA_KEYED; @@ -1371,13 +1093,14 @@ UTEST(AOS_APPLY, AEAD_GCM_BITMASK_1) aos_frame_pri_hdr.scid = (((uint16_t)test_aos_b[0] & 0x3F) << 2) | (((uint16_t)test_aos_b[1] & 0xC0) >> 6); aos_frame_pri_hdr.vcid = ((uint8_t)test_aos_b[1] & 0x3F); - // Expose/setup SA for testing - // Configure SA 14 off + sa_if->sa_get_from_spi(9, &sa_ptr); + sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(10, &sa_ptr); sa_ptr->sa_state = SA_KEYED; - - // Configure SA 17 on sa_if->sa_get_from_spi(11, &sa_ptr); + sa_ptr->sa_state = SA_KEYED; + // Configure SA 17 on + sa_if->sa_get_from_spi(12, &sa_ptr); sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->ekid = 130; sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; diff --git a/test/unit/ut_aos_process.c b/test/unit/ut_aos_process.c index a1e94b6d..476788ce 100644 --- a/test/unit/ut_aos_process.c +++ b/test/unit/ut_aos_process.c @@ -718,6 +718,8 @@ UTEST(AOS_PROCESS, AES_CMAC_256_TEST_1) int framed_aos_len = 0; hex_conversion(framed_aos_h, &framed_aos_b, &framed_aos_len); + sa_if->sa_get_from_spi(9, &sa_ptr); // Disable SPI 10 + sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(10, &sa_ptr); // Disable SPI 10 sa_ptr->sa_state = SA_KEYED; @@ -740,39 +742,7 @@ UTEST(AOS_PROCESS, AES_CMAC_256_TEST_1) // Truth frame setup char *truth_aos_h = - "42C000001800000000000000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABB000000000000000000000000000000000000"; + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB000000000000000000000000000000000000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -869,7 +839,7 @@ UTEST(AOS_PROCESS, AES_HMAC_256_TEST_0) // Truth frame setup char *truth_aos_h = - "42C000001800000000000000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" @@ -1021,7 +991,7 @@ UTEST(AOS_PROCESS, AES_HMAC_256_TEST_1) // Truth frame setup char *truth_aos_h = - "42C000001800000000000000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" @@ -1171,7 +1141,7 @@ UTEST(AOS_PROCESS, AES_HMAC_512_TEST_0) // Truth frame setup char *truth_aos_h = - "42C000001800000000000000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" @@ -1321,7 +1291,7 @@ UTEST(AOS_PROCESS, AES_HMAC_512_TEST_1) // Truth frame setup char *truth_aos_h = - "42C000001800000000000000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" @@ -1663,44 +1633,13 @@ UTEST(AOS_PROCESS, AEAD_GCM_BITMASK_1) // Truth frame setup char *truth_aos_h = - "42C000000000000000000000000000000000000000000000000015C1B5DB5CF084716870EB0A784FC8285D766989E0DB22E3BD68B9E0C7" - "F7D629E5998ECCE605A62C7C42CE5645FF7670E16486D056BA0C2F2127E15B2988046A7854A97A17A5ACC4A3BDF4999F96700BD6D1D19D" - "CAF7257AE8D5A07D65FDB24E09CB9475AFFE99DBFE26A927A77CA1778290E756D969B9DC596635152EE907648ED47AF49A795FC6B6006F" - "B9EA0BC627413FDE38A151D42D91A9B0DE910BF3DDFED55EF475959EFEE324DD367134E476DCADB086C03ED80FC9DFB91475181EBCEFDF" - "511BDCC06B76DA5D9E64736C9AEE79CF631808ABB97D0240D6745B19F49F2F8CC635643EE90992F759A0B5BC31BDEC1DC99B857743F15F" - "9CD7CAB941CEF28B71C230347A0D81A2E78C68A3739314D19AF3E281ECDFC82CC07FE1CE8521722BE567CE77D15BF5A7FEBE77D4733879" - "6E03F7D62B7B014659AD2FEBA369FDD25044F5F99615977B04CA7DA8244EAA53022E9DEA10D60797251A3DEC9C729705663119E5F6D659" - "FC3C0C5D6D62EAD0793CE5DA578C6D7A856677694A8C8B905FE07E5F7ACE5BA7B7D0210184C14D8D2925DDCA5E2AC9239862A5F17CBF7B" - "EC99BB8E4A05791C7C62F9C196687EBF599DDA66830EF3CDBCF983451E9136F6D6E2B2A6004911A9D24576B9448BB074961280ECF97CD6" - "2CB27CA4B4B67A0BCCC642E8B77A03246E49DFB8C32807745D65756B56CEA4841D6074116FF398ABB5F9ABA13B2AB4A964CBD8DB884790" - "D3CCE3A0DB3E07D8CB89077A645874C241F406CDC090A59EBD106E9DCA615A051ED4273B50AF10F770E78925E6F72AF9F23AA6A55F0E0C" - "BCF7622D15214073A34A9DF1A50BF672ADC15A6E0BF0B119CF6C9CFC57F53B1301D39C0DC5AA7333340C2F36143040BB88F220E9716B1A" - "A3296E98A8AB5DBD48540E6D09E5D5DEABA1F9A9B3E3A8D0A929D339148D3735CF8E990004401764BA4C229F592FB8259BEC408CC8B0C9" - "B2C744D3C06E5550AE46F3BF0AB8EBA1390C6D69533FCBB103685FDAFF48C20965596A76C3FF2806BB43E5FA0ADB3AAA30880E19D7D2A4" - "53669E364155F40A74982A35BE8E6943AE616FA434672307537222684939A5D5CE49B972F80963F1AE7A46FC6325FD48161E7AD8CD53AD" - "B6A191F3C5BC9BA17175289473C6FD554C7B694247A5958B0F7D1D5D28D1174A36FF43F3FF7373769B819C8306494645963665441072CF" - "D53D731BAFD1730E538C9CC325F849B5BA88C52B4912A4BC65B73FC6302CA6D100D965060AE206A7E9AD12911DC183B61125C336AA1BC0" - "DDD1A6082520D8C8F8AAC8D8B210582E4ED9DD940BCC83FA009297DBE2099D741F3DA828064574D6F5BAF88D009A93EF786A124D6C6BC1" - "76E34A588D0B8969D881AF84232351FA9A2613D57F3153AC69409D9B609F60EDD483F5967414400CF08D11875F2435E6CE72623739DC52" - "E5986D48CD4BD135564304983694727FE2B90E0488FB6E680D197181145613F0B1F4CFA3756C025EB2B4E0C8E691D1856F5911963FFA6A" - "ABCCD9D3FD6F26A481BC74E69D25393E6E3AAADDDBCAD96A801A56F7DFD4100D8FCC196CDD8029B8823AA5C73FA03B51B47E119DE79F96" - "9C4E19A4216F68AD17EBA83BD6EABC84D32335B0318B2252A05A87E23EB3304D42489D1E31A94D94043C7FDFEE75054692FCB3E20E8A95" - "0E424749962EEDF3A9A7B775E43AD475509893A85387FBDA3A036CE40A8C05092CC93A9F79ABD65C2181D26A9E4A8BB6E29E8B679CAC8D" - "D64A59312A710FC31A709533DC58C2E32AC092B9149A2CD75803DCF9460021EFAA1F9051605797CDDEE9A5346C155B0AB63BE2AFDD6A8D" - "69C747A3AE8FF2608C8D83CF6A2957AFC5E7A5E6D68196612498291FB9D793CEC1A68FECFD59F50DA7285CEBE67E71A0AA48FEE85128C6" - "C5D4A7A1709E75060432700E4CB334FA64F03A03946ED845BC2D4775C535F376B15A17B92A3FA4D3708F36A16715B7FD8F2BFF24D7176C" - "2148D0F4E7737027ECD6AE6358AB053BEF97B174DAE966AFE02EE02A0A70AD0E51A3DE418E78EE8D39000A397F5CECBF48D38DA89797B7" - "434335B07989E739601BE66305455E08EE8531F0618FAF9CC61E305C58C634BE60D67985DB44E223CAF6105A4EC22F25BECD9F615F0D22" - "6EF6E0BFD30E2BFC46F7DB5BF3C1E75E32C160E8B5F6AD69B2D1283AB0EA3B51841FE438C4775620F34609E93BB4C2403B819FBC0437AA" - "078A21E58E3189104CB830868E5F01472009B70A5F2A66BC08B6187D48643B425F6AC01E8C653B0B64A319F756E0147FACB7183EA77218" - "39DB6E3B2B876BC78A3BC98E032019E0437533D5E6CB1F1C38EEFA743AC0ED7B1AA151BF49544A3D88A85357D3A79D0D59CCECBDCDAFD4" - "FD813C20B6243247E2C6684B68E2FA22CF3B99C50EEE588BDD402276E24CAD6DE47A056B6D0790E709FCECE2D917408F8EACED04B6E2D6" - "F543D737D704D3A4000000000000000000000000000000000000"; + "42C000000000000000000000000000000000000000000000112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA0D918B9DBB8492C6C96C03914BF6BCA80000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); - SaInterface sa_if = get_sa_interface_inmemory(); + sa_if->sa_get_from_spi(9, &sa_ptr); // Disable SPI 10 + sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(10, &sa_ptr); // Disable SPI 10 sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(11, &sa_ptr); // Enable and setup 11 @@ -1708,11 +1647,11 @@ UTEST(AOS_PROCESS, AEAD_GCM_BITMASK_1) sa_ptr->akid = 0; sa_ptr->ekid = 130; sa_ptr->est = 1; - sa_ptr->ast = 1; + sa_ptr->ast = 0; sa_ptr->acs_len = 0; sa_ptr->ecs_len = 1; sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; - sa_ptr->stmacf_len = 16; + //sa_ptr->stmacf_len = 16; sa_ptr->abm_len = ABM_SIZE; sa_ptr->gvcid_blk.scid = 44; sa_ptr->iv_len = 16; @@ -2012,7 +1951,7 @@ UTEST(AOS_PROCESS, AOS_FHECF_TEST) status = Crypto_Init(); // Test frame setup - char *framed_aos_h = "42C000000000b3e50005000000000000000000000000FFFF"; + char *framed_aos_h = "42C000000000b3e50009000000000000000000000000FFFF"; char *framed_aos_b = NULL; int framed_aos_len = 0; hex_conversion(framed_aos_h, &framed_aos_b, &framed_aos_len); @@ -2021,12 +1960,14 @@ UTEST(AOS_PROCESS, AOS_FHECF_TEST) SaInterface sa_if = get_sa_interface_inmemory(); sa_if->sa_get_from_spi(10, &sa_ptr); // Disable SPI 10 sa_ptr->sa_state = SA_KEYED; - sa_if->sa_get_from_spi(5, &sa_ptr); // Enable and setup 5 + sa_if->sa_get_from_spi(9, &sa_ptr); // Enable and setup 5 sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->est = 1; sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; sa_ptr->arsn_len = 0; sa_ptr->shsnf_len = 0; + sa_ptr->iv_len = 12; + sa_ptr->shivf_len = 12; crypto_key_t *ekp = NULL; ekp = key_if->get_key(sa_ptr->ekid); diff --git a/test/unit/ut_sa_save.c b/test/unit/ut_sa_save.c index fce67aef..1db19ac3 100644 --- a/test/unit/ut_sa_save.c +++ b/test/unit/ut_sa_save.c @@ -566,14 +566,14 @@ UTEST(SA_SAVE, VERIFY_SAVE_ADJACENT) ASSERT_EQ(test_association->akid, 3); // test_association->ek_ref = sa_ptr->ek_ref; // test_association->ak_ref = sa_ptr->ak_ref; - ASSERT_EQ(test_association->sa_state, SA_KEYED); + ASSERT_EQ(test_association->sa_state, SA_OPERATIONAL); ASSERT_EQ(test_association->gvcid_blk.tfvn, 0); ASSERT_EQ(test_association->gvcid_blk.scid, 3); - ASSERT_EQ(test_association->gvcid_blk.vcid, 0); + ASSERT_EQ(test_association->gvcid_blk.vcid, 3); ASSERT_EQ(test_association->gvcid_blk.mapid, TYPE_TC); ASSERT_EQ(test_association->est, 0); ASSERT_EQ(test_association->ast, 1); - ASSERT_EQ(test_association->shivf_len, 12); + ASSERT_EQ(test_association->shivf_len, 0); ASSERT_EQ(test_association->shsnf_len, 2); ASSERT_EQ(test_association->shplf_len, 0); ASSERT_EQ(test_association->stmacf_len, 16); @@ -593,10 +593,10 @@ UTEST(SA_SAVE, VERIFY_SAVE_ADJACENT) ASSERT_EQ(test_association->iv[10], 0x00); ASSERT_EQ(test_association->iv[11], 0x00); - ASSERT_EQ(test_association->iv_len, 12); + ASSERT_EQ(test_association->iv_len, 0); ASSERT_EQ(test_association->acs_len, 1); - ASSERT_EQ(test_association->acs, 3); - ASSERT_EQ(test_association->abm_len, 0); + ASSERT_EQ(test_association->acs, 2); + ASSERT_EQ(test_association->abm_len, 1786); for (int i = 0; i < test_association->abm_len; i++) { ASSERT_EQ(test_association->abm[i], 0x00); @@ -618,15 +618,15 @@ UTEST(SA_SAVE, VERIFY_SAVE_ADJACENT) ASSERT_EQ(test_association->akid, 5); // test_association->ek_ref = sa_ptr->ek_ref; // test_association->ak_ref = sa_ptr->ak_ref; - ASSERT_EQ(test_association->sa_state, SA_KEYED); + ASSERT_EQ(test_association->sa_state, SA_OPERATIONAL); ASSERT_EQ(test_association->gvcid_blk.tfvn, 0); ASSERT_EQ(test_association->gvcid_blk.scid, 3); ASSERT_EQ(test_association->gvcid_blk.vcid, 1); - ASSERT_EQ(test_association->gvcid_blk.mapid, 2); + ASSERT_EQ(test_association->gvcid_blk.mapid, 0); ASSERT_EQ(test_association->est, 0); ASSERT_EQ(test_association->ast, 0); - ASSERT_EQ(test_association->shivf_len, 12); - ASSERT_EQ(test_association->shsnf_len, 2); + ASSERT_EQ(test_association->shivf_len, 0); + ASSERT_EQ(test_association->shsnf_len, 0); ASSERT_EQ(test_association->shplf_len, 0); ASSERT_EQ(test_association->stmacf_len, 0); ASSERT_EQ(test_association->ecs, 0); @@ -645,7 +645,7 @@ UTEST(SA_SAVE, VERIFY_SAVE_ADJACENT) ASSERT_EQ(test_association->iv[10], 0x00); ASSERT_EQ(test_association->iv[11], 0x00); - ASSERT_EQ(test_association->iv_len, 12); + ASSERT_EQ(test_association->iv_len, 0); ASSERT_EQ(test_association->acs_len, 0); ASSERT_EQ(test_association->acs, 0x00); ASSERT_EQ(test_association->abm_len, 0); @@ -654,14 +654,14 @@ UTEST(SA_SAVE, VERIFY_SAVE_ADJACENT) ASSERT_EQ(test_association->abm[i], 0x00); } // sa[location].abm[0] = sa_ptr->abm; - ASSERT_EQ(test_association->arsn_len, 2); + ASSERT_EQ(test_association->arsn_len, 0); for (int i = 0; i < test_association->arsn_len; i++) { ASSERT_EQ(test_association->arsn[i], 0); } // sa[location].arsn[0] = sa_ptr->arsn; - ASSERT_EQ(test_association->arsnw_len, 1); - ASSERT_EQ(test_association->arsnw, 5); + ASSERT_EQ(test_association->arsnw_len, 0); + ASSERT_EQ(test_association->arsnw, 0); } UTEST(SA_SAVE, VERIFY_SAVE_EDGES) @@ -685,7 +685,7 @@ UTEST(SA_SAVE, VERIFY_SAVE_EDGES) ASSERT_EQ(test_association->gvcid_blk.mapid, TYPE_TC); ASSERT_EQ(test_association->est, 0); ASSERT_EQ(test_association->ast, 0); - ASSERT_EQ(test_association->shivf_len, 12); + ASSERT_EQ(test_association->shivf_len, 0); ASSERT_EQ(test_association->shsnf_len, 0); ASSERT_EQ(test_association->shplf_len, 0); ASSERT_EQ(test_association->stmacf_len, 0); @@ -705,7 +705,7 @@ UTEST(SA_SAVE, VERIFY_SAVE_EDGES) ASSERT_EQ(test_association->iv[10], 0x00); ASSERT_EQ(test_association->iv[11], 0x00); - ASSERT_EQ(test_association->iv_len, 12); + ASSERT_EQ(test_association->iv_len, 0); ASSERT_EQ(test_association->acs_len, 0); ASSERT_EQ(test_association->acs, 0x00); ASSERT_EQ(test_association->abm_len, 0); @@ -720,8 +720,8 @@ UTEST(SA_SAVE, VERIFY_SAVE_EDGES) ASSERT_EQ(test_association->arsn[i], 0); } // sa[location].arsn[0] = sa_ptr->arsn; - ASSERT_EQ(test_association->arsnw_len, 1); - ASSERT_EQ(test_association->arsnw, 5); + ASSERT_EQ(test_association->arsnw_len, 0); + ASSERT_EQ(test_association->arsnw, 0); // VERIFY SA 17 sa_if->sa_get_from_spi(17, &test_association); diff --git a/test/unit/ut_tc_apply.c b/test/unit/ut_tc_apply.c index 83413cf4..d9ce587e 100644 --- a/test/unit/ut_tc_apply.c +++ b/test/unit/ut_tc_apply.c @@ -1411,7 +1411,7 @@ UTEST(TC_APPLY_SECURITY, PLAINTEXT_W_ARSN) return_val = Crypto_TC_ApplySecurity((uint8_t *)raw_tc_sdls_ping_b, raw_tc_sdls_ping_len, &ptr_enc_frame, &enc_frame_len); // 200300230000010000000100011980D2C9000E197F0B001B0004000400003040D95E85F3 - char *truth_data_h = "2003002d000001000000000000000000000000000100011980d2c9000e197f0b001b0004000400003040d95e9750"; + char *truth_data_h = "20030021000001000100011980D2C9000E197F0B001B0004000400003040D95EE1F1"; uint8_t *truth_data_b = NULL; int truth_data_l = 0; @@ -1489,12 +1489,12 @@ UTEST(TC_APPLY_SECURITY, TC_HEAP_BUFFER_OVERFLOW_TEST) // Crypto_Config_Add_Gvcid_Managed_Parameter(0, 0x0003, 0, TC_HAS_FECF, TC_NO_SEGMENT_HDRS, TC_OCF_NA, 1024, // AOS_FHEC_NA, AOS_IZ_NA, 0); GvcidManagedParameters_t TC_UT_Managed_Parameters = { - 1, 0x0003, 0, TC_NO_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_NO_SEGMENT_HDRS, 1024, TC_OCF_NA, 1}; + 0, 0x0003, 0, TC_NO_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_NO_SEGMENT_HDRS, 1024, TC_OCF_NA, 1}; Crypto_Config_Add_Gvcid_Managed_Parameters(TC_UT_Managed_Parameters); status = Crypto_Init(); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Test string - char *test_frame_pt_h = "6403000000"; + char *test_frame_pt_h = "2003000000"; char *test_frame_pt_b = NULL; int test_frame_pt_len = 0; diff --git a/test/unit/ut_tm_apply.c b/test/unit/ut_tm_apply.c index aea35379..ebeece80 100644 --- a/test/unit/ut_tm_apply.c +++ b/test/unit/ut_tm_apply.c @@ -233,39 +233,7 @@ UTEST(TM_APPLY_SECURITY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_tm_h = - "003000001800000100000000000000000000000066778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBB2C1"; + "003000001800000108010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBD1B0"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -1829,39 +1797,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFFF00AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBD254"; + "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB844C"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -2005,39 +1941,7 @@ UTEST(TM_APPLY_ENC_VAL, AEAD_AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFFF00AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBCCDDCCDDCCDDCCDDCCDDCCDDCCDDCCDD2261"; + "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFBFEADCEF6419EAC34DA005629917865BE934B8D437776E648E6A73489010869614BF7A3CA0F5499C599C0BA901667E44DB94BE17DCFB16ED0381BA19E587E1B2A6C896992ED9EDDBB3CA6EFBCA517122DBCD73D33D01614985A2291094B39AC5C1BDF1B30915105DD875CB4489D6E87C5EFD2EEC36E03957733B6601839726052086959A903DA2BB018549737EDA801E64816FC13A5CDC17D404547B3DF2030D91470EBCB99C6833BB2CE09BBA0936F6BA84C5735D72D00A7C140FABCA5FD917DDC340ED01E34C5DDCE5BA140A4765B63A17E75FB180C8AD1B99BD0E7E3AA7FC9441DAD814F19EE9B01CDC6A590674BD439FE33122173752162FD4A6F22CE7572E5D75F2DDBB0B7305AB242A06ECE23122410A2320C2E7816FB0204254401BFB2D14D3E6FC58291D9C9C9A43AAD73630CA6DD51D9A7AF24887E6152C2F2F242BA839B3D2088438192F9DFA7CB6CEDD30B0525AB744345D928765E4A4A09CF943887DF994AC8C558A00E10E54A9969A0EE77B4EE807A08246490E3255B93C0B156A7242B3C04ACA9031C3EB071ABA87A008622F59A08B6296BF9BC176361CEBB7524223F47BB180C9ACE9D615DB746FE636AEAA0224978EE9C20000400E9817A951C9B9839219D405EB99E1288CB190250C53F9BC044C131C56D769027FF53B34BE3046E37F71B1D306BD60DBA45F714388D79E9DF98B7978B333F3F97AD4D24DDFA104021B58BDA62089950A79B4B8C6DEBF79D497603B8684EC1C70D51B7FD12E1D8D54D09BC61712F47749103F5E6E6B59215427CF80B26B190F91C8A7A58DC86D5D8BB5891F54889BBF5ADA7DEDE2759962BB1BFC1E7645B481B4F52CA911122AE7A47DFB211A5A079E05AAB9E8F66B03A3FF20350462E9C47E71B9A3826CEDF393038CBB0F1780DEE6853F53BFF5A7DD7E8B900587F039C1C74AF05100A2330F3F16AF723587EF1ADFE08232E454A272A448162A99ED419389C672927C6584215176FCA123A5E3E8799B407D2A671F4700306144664C3215B47FF4FE4377EC752A15C5A2548289820BE59F8CA364FCABFDE5589E971DC2DC7A800A2A97EB1A839D697486D58A561CAE27060DC49F24303206D1FA15F28AB4A390FB7C06380981B781CC068B5CC5EF2BBCA19A66A23F0E500C6C559B6171F0323E262BF156A8781C4E4F6B8B710EA4E0BEE0D6461B56DB0BCE75BB0686C59567C1E2479455E86E3A43B73A6B6AC57FEC643D0BE90AB5605302E481163C4AC7B654B328495C979F7DD721758D20D7B6C943A59717EEBFA61F800DF084682595CAD671780CC771DA000027CA5371E907FBB221732491F3073D2DDCA0D9DD5EC251DE46E7671C37210DC5740539150441552DCAA79C28AFD6928054527B22B8522151BAFF24972E823F38E855E02F6153C9180E4B4F3DFDDD81CC0AFD42F05F8D71A00F53DCB255DAD958B8A3D6B5607991AC1C9A50F8B0A96DAA47EB674DB038BEFF48DFAC61F8DDCEF2F1630CFAA9AE20FECD8611DC68A1DBE92A4160FC1C4B51F5FB38FFAB867652CFC94B3E85BA94F07E00BA1E3F364BE053E98F79084F9CF50346B0638F63E48C56DF47CC4FD8602027321B80D9EC408321E3FB77A9EF7D90A30EB4DCA55265631E0A9AD5EAFE3B8FB1DC533DBC47B705A7ADA738BD9103D3D31EC0F0C8C7BA4AE119100AA64BB5EB96B82F6DCD1F7732619AA32CE2C175752871E9D21B90D9571173E9874BE7FD1ED85B762A4CEEA15966E4C66E5783AF30ADB74088874A9C065DD1C140D15B57CE0BEF9B15BDF51BBB4CCEAE8899F7C5AE13CE1F258DD0603D358F466ED36367DB4600CD647E7D835BEE1061A1475DC4EA81ACC5E979BC7725A03EF1BD5E9CC46CDF4E74CB60FCDAFC8899B58DFD579B8D4210ED94643641792D94BA8079CE8C447CAD117641A2E66AE26744FC7C3297529D7149597AE1A7A0753AACC75D26B924061BAC64853BF092611F8108FFE94D042D0A0B16CFAFA3DD10D8C1A403B478BF4D9DCAAF3775220E6583E34355C5AC960761FDC2AA714CB7E8C3DEEED61E6C5B5A0B03645F7ED1B48E5B280D19B406F03D86DC4389026319A037FE8BE09BD771DE4C9BC2F8990C21349C4D4309D1886FFBF9203A07371E3D149C3A367FD959E1B26234F2F6827ABB97CF4BBC2800E7AAE65EC572F6B072DFFF79A1BDF94D98A49FCB252290B3F090D18C837C1C6138004A456CB65FF5CF2065AF9445A60FC2E2E5C2E14DB5621670CFD6C15AAFDEC826E4E49AD2AF26D185D6E30132273FD394883A293A29DE5DB363A8230131D50661C9718F2F3E8932062C9CF75615955F56269077F7634612D265E90C77D5446CF3FB12F4166D512340F204D6654EC035988A4596EB58E26AE05ABEDEA460FBA5802917B5B302D80628FDFFE410862D1F1C0B6740B801909C5BDB74AD370D53CDA8D993D500A6A0554E5F333FE1DBF57E166BBDC1F231CF94CBB8E0B6592CA7DFED501414DD089C48"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -2052,11 +1956,13 @@ UTEST(TM_APPLY_ENC_VAL, AEAD_AES_GCM_BITMASK_1) sa_if->sa_get_from_spi(5, &sa_ptr); sa_ptr->gvcid_blk.scid = 44; sa_ptr->gvcid_blk.vcid = 0; + sa_ptr->shsnf_len = 0; sa_ptr->arsn_len = 0; sa_ptr->abm_len = 1786; memset(sa_ptr->abm, 0xFF, (sa_ptr->abm_len * sizeof(uint8_t))); // Bitmask sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->ast = 1; + sa_ptr->est = 1; sa_ptr->ecs_len = 1; sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; sa_ptr->acs_len = 1; @@ -2092,26 +1998,18 @@ UTEST(TM_APPLY_ENC_VAL, AEAD_AES_GCM_BITMASK_1) printf("Static frame contents:\n\t"); for (int i = 0; i < 1786; i++) { - // printf("[%d]: %02x -> %02x \n", i, (uint8_t)framed_tm_b[i], truth_tm_b[i]); printf("%02x", (uint8_t)framed_tm_b[i]); - // ASSERT_EQ(*(ptr_enc_frame + enc_data_idx), buffer_nist_ct_b[i]); - // enc_data_idx++; } printf("\n"); printf("Truth Contents\n\t"); for (int i = 0; i < 1786; i++) { - // printf("[%d]: %02x -> %02x \n", i, (uint8_t)framed_tm_b[i], truth_tm_b[i]); printf("%02x", (uint8_t)truth_tm_b[i]); - // ASSERT_EQ(*(ptr_enc_frame + enc_data_idx), buffer_nist_ct_b[i]); - // enc_data_idx++; } printf("\n"); for (int i = 0; i < 1786; i++) { - // printf("[%d]: %02x -> %02x \n", i, *((uint8_t)framed_tm_b+ i), (uint8_t)truth_tm_b[i]); - // printf("%02x", (uint8_t)*(truth_tm_b+i)); if (framed_tm_b[i] != truth_tm_b[i]) { printf("Error at index %d: checking frame %02x against truth %02X\n", i, (uint8_t)framed_tm_b[i], diff --git a/test/unit/ut_tm_process.c b/test/unit/ut_tm_process.c index 5cd2836e..b79e67d3 100644 --- a/test/unit/ut_tm_process.c +++ b/test/unit/ut_tm_process.c @@ -251,39 +251,7 @@ UTEST(TM_PROCESS_SECURITY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_tm_h = - "02C000001800000000000000000000000000000066778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" - "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" - "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB0000"; + "02C000001800000008010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB0000"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -1774,39 +1742,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02c00000180000000000000000000000000000000000000000200b5f5dd262db1cd3d1dbeb406c8d10111256a140fe3444b96a9c580f6f" - "9a2a7a7cea29f43e8bd16168a78c9880784060e41e1644280ab75c8b3dc8d3d9a962fe3a2e7e644eabb916663202c9075ebd964a65cc36" - "9f1a982fa33f035f4e821a99e536372206debdf94407de6f2a7c3a4b290bfddf070e2f61b9715ed3f22e662ff4d2dc449bb0b11152f8d8" - "366ea87c42039c6ade651af1ba49cce8629a54120a516f704904c2881084a9def40ae362976a64ae0dc96e25149cf2b2907180f540e81c" - "ed17363b25771c3a2517f09ebf99888dc93b16c15392a02b3bdc369a79504edb181bbd93dfcff64a40e878ff366e2d5fa37bcc95bf0540" - "d94b6be8df31bb63e20d581fad51c9fbf3cfd503bd1cb222931a646aff35ed6d248a6d1efac165f10cc58cd4163da93e6a5aa9a4c44307" - "29fb09bec6c35cd3b6a687aeb60e9d40119170d52124802fe2c07bf1df092952f2f54b08083b9073f8ec8d2b41843292b1bc2100dbc4c1" - "dd3e7af90f113d05375f7787b3d5acaffd7570c389b1f91bc24ce311a039ee40c674d6e335073ba69df310e90b9347bd2428ca6cb39fac" - "ef4e7ab23ef7e885f3b14b68d5bc6f6bb82175e9b303f424bd372ddefbd31d5a81cf8297b889b2a115f3b623b5a480f006678857d6797b" - "a5bf3fe86223dfb5e2f63e34339d8874605ee567ded852cc12acfa93594048a2360e0cc98cc6ee3ab7578195a6fb82e216380995c8c110" - "dcd2b76e506995d13aff08ea03958c3246e8f26dc08149209accbec1cabf03355ac197aa08f59a7d1b1423e49a0bb34c7599c4989e0ff2" - "d5252b384e2f949a37700ce3893dbd020735ac4fefcc4bd856497e0dfcabf6e18246ebeb9328e7627916a55034f6f79c563cca3938f4aa" - "7f130df5e4e65b6d42a3fc7fd7083e56b7398097374bb71d7fdc570bb634be837de56705ab229b563d0cdd6f71baf13995e82d15388f4d" - "a4b0653b90b913df0dd18407a963f75d74848cc2eb538110faeafd9504de3108703ddbd171ea3cd0c763b98eec9f5e1dd90bd587ab7a64" - "79d24098178d88f884f637e17aed88f181574e5568a8000e37c0480c87814cb0affe2b31a67c577d41707b9d243a6da7762aac54667d57" - "f0295ad13f83fe9a3abcdd96cd123a01c237260452c3eda2653e76a531d2f6afc806f2fab0a9e75a77be6dc5dc41a1c2acbb0eb7bd2beb" - "ec817e9047f2ae0b7c11d8e89c53ab05638c96935b56f1d2e8822b12a6c0421e882f47fd5877fd19d077ae487d11270deb030808345567" - "2787622449475be950ed5ffd5a63a9832fefd79403fc649e0b860987a41dfa98587513c480b5c2e491565b18193ab246b0d3cbc0f53fc4" - "4aa4ae0ea03e358764814b5e7848b2a9cf220db5ddd1017308cfa97b55b380ad2aba90e9fe589419ae2c0d844638e960a55ede96dffa77" - "8687e31f3042761f9edfe550b2d192cbdcfbc0f5cf11f190eebbf96783b74e007c0763fe8dae1a8752638ccd503666e06f4865a5af3f9f" - "8d76195acc267631567d4a66102c4bdb732cea41110cd13436806a7bfc31b66b258f6b2755cd09b2aa2f98571c3f308cc632572aff9fe9" - "0014a135d2032901a779af29d8fb34584680a924bdfe8c9108dcf977bb3b88230e974926cb916669d6579c0cc06e1a40528bf9072cbd64" - "7fb92980fbb5a47d13c2b5c2251605e63eb923556716bbd0717f624d34367b614009798bb79c4f7a7262caa7b52daa7e46407a24f4fc13" - "094c3ef63481cb99edd118c565dcdbf74698121e985d74c6ce70093ffe73c9ac58ca2fd64a53e840cfb843bc9ec695eab7af50d3c2a05d" - "7e69906379e0c2486828a8ac13655ab41b0b08358e9ed4ccc0c4eed4dca7190315ea025a917d45b4e5e35e2c9df1f993fba9ecac30c718" - "71f947a0f038b31761f56df24eab00ee103bcb1784a517710dd40b35472d7176390e70a7890f4d169a59eb8115edad9dcb60fa1ef6cd52" - "efa8069ad612c0301d0a912425bdee29482c7deabaa03125ff9d91cdcc310b17b5453b80f875c053ae1c9e93c51eb10f44e645638e2f6b" - "7a186a68d19e588691a31d299ad1dac56f05e34114f2387c00b779b1f7f95b024d12e7222b4b96095550ba5c03c0ad4cd5bf52da768759" - "70421a7dc51214fb83a664a65422b97d7c43aeaedf771fa0c72d381f561364304345c4b7cc2b95b1923282293e18297b3b88c5755960f0" - "dcd09d1665b453c32a00f39ff1b54009215e02be43150eb4cf3dbba72ba23bc80d02826e1c34a19660bcdae6a26cbb6f6d0d72106c1f21" - "53924903323e0197e46e706a6bf56d4b8c7af0c3b23b2c774590ffe93e4a8298ba372591802a17718ca9174eb31d488fe34583e6300d42" - "7cb97a0cce46dfcfbeff73f0bcd6165b61053599af2646b925028ac76164bcd68b9f4af98c0dde866063d809115fc45d05fe1944685f96" - "4529d85b48cbf3188386721a51d5f945136f432c303454fa0000"; + "02C0000018000000000000000000000000000000000000001E642C7DC7BE80E3832F65AD01DFEC41B3DD8F2B5311F62FBF4C62B6919EE89BB9C0A8BDA4B0934F05B5EE1435EE8953CE3EDFA6CC72D4E048CFA18F25A0AEEB67817530D8826B8CC07ED3B62243361C5591E5D4331BEE2345193917966976CC0FF4B8659C2F12822945EB99022105F909F9EBD83618CF711A38F507CDD6521C5298F6CCC7F815B81A848FD3C483252717B6FC2380A9F4C0237B08F2BFBC7A4B9FCD09CC647DE188119659C3EE5624323FB83AC391337AA5426D9647C214E65F2E4F7AA010E4883BB55F52852A4BC35C22A56924361B4FB5F40195895A89BAD00094C4C8C5EFC3F5977227ED62A61B27D9A3409CA15FFDE1EA2DAABA0EA4327E59D95A74332FBEC4367665ECF22E1C7F1EC078AB08975E88CA23EC578D68540B064D2728CE39B433ADB829A2A2C554D3A8B180229F4F5F6882A3548E95BFAC100FC08AE1BB488C14A78C9457A098DDF5B8A1EB09A96970E5948068BD9806352FE87624C00831130A5A2DC03115210CB8FDBA7BC07905E679B1AB58063E1D97F675CB6D03733BA8A5F0254D2BEF842B0D1FE6AF7701316BA28511636C3D8879E11B4F0A74A02CC8DD87E565BA0A0265F379A8605084A1FC5287E43C8FA45483F56846E3BCB8136E61EA90DFFB0088B0543E2933037F2035BBE4AF47184F446AFC6DA153871097A5139A4FAB74B6B8F33176B4CB4B352B4126D49D189754512D39D4EE21B1F3D0161CAFB19846A3CCC1BDBE1E87D5C73770531B93E2E838ED33571C4F4149DC7AD60CAA3658904B0B2AE083896191F8844537EB879D84FB3266A0902CBFC8DDF8A271F54C1A600B81F1126574D775B3F1C6D56D0FE86F889EDDD71FD577A429158DC1BADFA06DDC7B56AADC4D47BA52521CBDA3045FB4A6183D0A74E92AECDC855976514717241C447DCC742005F97558C46D6EDDA91FD65527B62B0FBA6E95C08BCC085E2517E649EAB4DF4E8A59FF4899F504D0D4537475F8A193433C421FC0517C049B900920D1D358B7785E517DEFE24A850A601DF9A222C915D653F7CAA3606C607EE12D2B9A295B01BEC3FF9B36627646FE36BCD564C4C5E086382544EFC5CF81EB0C661B2B7E36FD785255BDA7DACC04887008D6C20D5277690E7D8DE41F381201695B9AE7FFEF8DE2786B757A1C06A3F5ED6BAC2D1940400973B1EA85580C34CCEB228AFBC0ED9E307ADA1D62877ABEC09D2775466CDBD0869D8079CFEB15DD27140A137102204646095251B4C425EFB3270EAEFD8D1D0A6E5DF39A54CEB10D736693C376F6CFC76A8CC7DBB78CADB1FEB357D5B1E6F5486D5F12CA9816380FF66AFC9FB9DEFC06F6EF8155AF8C84C4D69A87B302D7DAE9CCFD2C9FA46799AE5AA557C3FB4E24DD362D4B77BEF76A864EBFB0FB27C26D01C6F9A541018E64CFCA7598934DBB4FDCB50B643E860BFD6055323AC9CB199CE9AE50E6EE94BB9794BA28BE6A4B2079ACC7C4276C5326C28B1A201EA6FA65BF76B9AC3795D11D6B8F46A9A9C235CEB9007754BC5F0C29D73D607D8449AF9C232CCD7E5764BF8EEB3F33A4AB592BDF4BE45D0CC98EF88C47030F7155FEC85AAAE1A949475EBBCDB87936B8161099BF9A2794D314AAA6B417ACB7A4643C025DD518AA8664D97829953E5C8621EBD7595B7B87CA654C8782545399814357362605A3089E03C098F00858925CAE8A4476A7C69F6AFBC97DF9C9897560332AC41EEEE139DF5E0A00C841F27180B5589BF85A1920AF6EE9174DD4D634C2B2FDD258D5452A5A5258644C5B6C5B10C6EBFDC2CD9F31C1EFAC8F44C9D37BB0831A8A78510C6EF45A1746FF394BA202DC841E18566C8659C7968013BF63A097D62F1D6735CFD14BA10140893E138D57765C8CB7B998DD353F91406CD55E3E59F2DE1D9172B8CFC5E998F833995F1479D9F81E614707386FD73F324781647FC35A583E703F5E5C238373F60CB264FE2BBA03EBCF6AF631F2F78222052D674F46CEFB42E3607787B9CE193869BC37F9F35E2F6F3CA52EAC87DAC6544E9A10B5E7B17C9A9B3CF1AC123BFA5F8F3547F0E30EF11632CC75DDFA04AF182C6FD47279842CDA2DC6B3EABA7243B761992B494586FFC6FF52C173C55FBB8D0DBCEB63BD131A9D5B967D3BF295D562A20A6DE72E1BB105CD68A0FBC4C6CA3382236DD4E520D5C9083B88A4A39150E4354AF3D7491A06BAD214FE79E4E1DE2C6C585250002025B00E8DE24B0E880BB7D6970C8FF23C36C1221873257E8F560434A775094B1C2CD4FE473ADD8D4F26714C183D5CC06D1FD8E4A08A2990ACD7E8234DEAE3252BE0EC833EA73DC155D110DBA7FC90941B573523BE18329436621D54F902A1342EDD6673403A12FE0AF08D1127D76B5F465D245CAFE9E522D1F9BF2D0A45F1CBCBDF0FC1B690AE3AF18AA5C3C10306108CBA578D14569649DB474486F5C9EF17B852469B734AE1F419397590BD7AB3A1378FA6D1CA7C10763A916C175E9528803707AA01140000"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); From 936c85df563292501f1734171d44dc1a2db5b7fd Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Wed, 21 May 2025 14:25:11 -0400 Subject: [PATCH 15/20] nasa/nos3#619 Fix last unit test after merge --- test/unit/ut_aos_apply.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unit/ut_aos_apply.c b/test/unit/ut_aos_apply.c index 306b2b35..70707046 100644 --- a/test/unit/ut_aos_apply.c +++ b/test/unit/ut_aos_apply.c @@ -1196,6 +1196,8 @@ UTEST(AOS_APPLY, AES_CBC_256_ENCRYPT_AUTH_16B_PADDING) // Setup security association SecurityAssociation_t *sa_ptr; + sa_if->sa_get_from_spi(9, &sa_ptr); + sa_ptr->sa_state = SA_NONE; sa_if->sa_get_from_spi(10, &sa_ptr); sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->est = 1; // Encryption on From 021ae027fae6ddd696155f2cee6258298f8dc09a Mon Sep 17 00:00:00 2001 From: Donnie-Ice <77851621+Donnie-Ice@users.noreply.github.com> Date: Wed, 21 May 2025 18:26:51 +0000 Subject: [PATCH 16/20] style: auto-format via clang-format --- test/unit/ut_aos_apply.c | 274 +++++++++++++++++++++++++++++++++++-- test/unit/ut_aos_process.c | 86 ++++++++++-- test/unit/ut_tc_apply.c | 2 +- test/unit/ut_tm_apply.c | 102 +++++++++++++- test/unit/ut_tm_process.c | 68 ++++++++- 5 files changed, 506 insertions(+), 26 deletions(-) diff --git a/test/unit/ut_aos_apply.c b/test/unit/ut_aos_apply.c index 70707046..6170d21d 100644 --- a/test/unit/ut_aos_apply.c +++ b/test/unit/ut_aos_apply.c @@ -210,7 +210,39 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_aos_h = - "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA2BB5"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA2BB5"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -315,7 +347,39 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF_LEFT_BLANK) // Truth frame setup char *truth_aos_h = - "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA0000"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA0000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -421,7 +485,39 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_FECF) // Truth frame setup char *truth_aos_h = - "40C00000000030F400090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA7594"; + "40C00000000030F400090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA7594"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -528,7 +624,39 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_OID_FECF) // Truth frame setup char *truth_aos_h = - "40C00000000030F466666666666600090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA87DD"; + "40C00000000030F466666666666600090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA87DD"; char *truth_aos_b = NULL; int truth_aos_len = 0; @@ -638,7 +766,39 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_1) // Truth frame setup char *truth_aos_h = - "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD0ADA"; + "40C00000000000090000000000000000000000000000FFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD0ADA"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -748,7 +908,39 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_0) // Truth frame setup char *truth_aos_h = - "40C0000000000009112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA5DB19EB46F096B17BBE72C50448218D9EF97"; + "40C0000000000009112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAA5DB19EB46F096B17BBE72C50448218D9EF97"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -865,7 +1057,39 @@ UTEST(AOS_APPLY, AES_GCM) // Truth frame setup char *truth_aos_h = - "40C00000000000090000000000000000000000000000CCCC112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA8069"; + "40C00000000000090000000000000000000000000000CCCC112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA8069"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -976,7 +1200,39 @@ UTEST(AOS_APPLY, AOS_KEY_STATE_TEST) // Truth frame setup char *truth_aos_h = - "40C000000000000B0000000000000000000000000000000010DF143C92A39B3568CC9916C9D06C715BF8017168F88FF016B9107B12316E6C03EF5DDC68BA35152893EF7B9A8764D2A908F3C6CEBC23AC94290EA45455C67779B7BA49A899049613F80BEF44DC60E0AB41C63AAC0DDD50438010FF0B28D57FDC9B6EFA412555717700328C20013CD7260A1F3043CC210F2379C1B54F0ADA49668753F992A7B37457185AB28EA1DF00A28D58183D8A277148F662F5698143200B574E28AB766549401D18937E0FB491EB4D8C4A8766FCF29F57ED22EF9C212E8438D04D3AFC5D968D4AECBDC97301B520F1E2943A2689278BF0321A5FC4BF77F042646419FBC66F94CCBD915F9B518DDB9A8C2DFE1CC0C1389ADCACB0CCB227C77FF7A48E3E01EEB7C5AE88994A8193A92DC31D8B55B113D571421B8650F37F69A7F9E8258CE9F709A815FC10217FF8FC2B298265FEF52F4FC3ADC439852146673E8CD0C283EF3CC3ED7C8DBA8F256B34928D16AB56002ABC1722A7A4E18339AF96720DD0429D3E7F68F8CE1E09C749AC9A2BD54A287DEFBCC0611DB3FD84DCAF29F4FD102D65DC79C1124AA864D283E4007A770B839AE002D2DBDD910B95DAC2E9C2CD3362F1D4361C747759B59CA07E971F5B27FF6F9868CB5024F51F7843150B1C07A7E40DE76408A91B563A5DE4705C4B1A09CC644A6D9C72827F52CF34B2DCE1C12068BFAC4DD94EB0DD1D12EACC351CC969C756708DAE276B6F597F463D4727D6B6C8A406D474B456486C200A78001894A4E6D4C56815B7E7788F82D13FB6448C5AB85C028935F8FE1951BC2F20BECBBB60E6ABAB9924C479552A1CBA01B5E51152071ECF8870129ADA932BA461ABD1F718F06200B7A1FCBA5EDF89E9CE148085282E4018F677E7AE6F30D8B5550BDEE1DEC39749C59215220DA1D893CB922D85DE7B6BBCD9F3B787A78CE58FEDC6FEBCEC3F84AC2B8BA714D330F19A4E70E2BEE3587A6D98E89B67BB214007331D41053DEB5581807E6B7A9623928391C28B513C96EE6F6A0E60A7B352D207216F93A07160BC09F88B459ABDD5FC759CE58D7FBEDB1CA675A89D64B8F842070DA7C295530A562E84C7910C4502CACF5262BABA2378D1EBCF94BA77B8AFFB0C23573687CBD1135E55BCF808397A4F83599F43A40BCB0CFA1621D8A3F77A8A2D64CBA4085DE543DA737FB5C8534A39F7C86B8C82C4D70C0EC13FFB09C3A53149CF7542BABD0074651AF2D243C6380E9CE6BAC1D35F81AD9EACBCD23D20853F93E18E65E2EE64F31F486C96C027889A85C88261B9C7D2FFCE55412DDD3C6C471B2D179E9805EA76B867DA04C2AF303AD458A37702002B418168BC08F4BAC37576F37460D89E06F359F20BC4A1E598B14A60F29634465F8B167AE44C457E861DAD0983910A7B5A5AD6F2A93632DE340CDE2AEFF1DA2A9D45B40B88C4363F9074B7DE9A3A14B458C180181D9A6B732450E3A38453FFDD0325AD063129E9EDA1EF05502710E3C344619F5B21B698FD83B2E6AA397D91988997C3E48FCEF4F031128A3F1F7EDF6EB90CC04A05D70BED1D225104DE864A53DA42AD22CD400D7BBD96E0F29E59396D5FCF99A9B33BA102311C5C985618AD1779BD4EE17BCC4D39FE2675F2B7E40AB408347465625A1BC284C91FF997109DF1B0A824A0BE5656A56100FA121D3DB3BA66DE22108DEDB5AAACF308C23777DF8B3CA6B8F0E1E2ECEE33B1A3DE7C354E1D4CF561B51134B8E3F652D0EC737B10FA25382455D2CFF9A63983D9B3C5EAF1DA3CFD3ACB463AB5B0357A900220C91F4169A201FA8181B98307A281CE73760534E98F62DB627F58959279AF0FDB5DD4D2127CE3CDFF4DB759C088E75A8AA683B3A6FA6CCD4BF52E24ADC8A8B6E5A8A9C582E849777BE5CEE7B3CFD7B5DB819DC76E89C9954B720A2FDEE5D4F436B1745BF626994994534E7691CB3F42E5F703FF9DBE53F5C34DFD988F6699F0743E1BB0427D599CE49E641A6A72B0462C5CE1F2FCB4D9248CBBF117378DD5E68BBA5271DF26A3336AD06B6EFA3AC73019515A8C5FD7DB8C5B3D812B25C12CA4C79115C4324698F70B33FD64E89791A1938DAE814779D8720B4046C28C62C0BA6F449BF7DFC944828FB68A91E6347CD38EAE10ABDAC609F87807309F50D2EA330E4A8BD49FA2AA785FCED71B8B409E283AB86C453125C06DAB315FB83463766D2A7BE97292E102EA426AB9550C0A9E754398C9D0256266E2789B921BB93FAF8032919FA014FE307413DFF5DC6FE14B05E0F96A4B77FA826B4E6CEC615EA7BC782D81D850B2F5942B059BCB8378CF84943A503C5C8ED9831031924047D1D7FC079136004424FCAE5EE4A63B2E447325D79354D715099463C2B263B989AC7B528AC5B9C7513A39371F90FDF6AAE1DCE4B3B3892512398DA171E90C2BFCE9A5B93CDCBCEFC24B97B9A7CE5C46910E6609B04771E8A12F1D1541B606F05F83F369C74DD00A6F16366A7883141E78B010BEC38C88E6E22F7A67B02779E860F40AAA11AD"; + "40C000000000000B0000000000000000000000000000000010DF143C92A39B3568CC9916C9D06C715BF8017168F88FF016B9107B12316E" + "6C03EF5DDC68BA35152893EF7B9A8764D2A908F3C6CEBC23AC94290EA45455C67779B7BA49A899049613F80BEF44DC60E0AB41C63AAC0D" + "DD50438010FF0B28D57FDC9B6EFA412555717700328C20013CD7260A1F3043CC210F2379C1B54F0ADA49668753F992A7B37457185AB28E" + "A1DF00A28D58183D8A277148F662F5698143200B574E28AB766549401D18937E0FB491EB4D8C4A8766FCF29F57ED22EF9C212E8438D04D" + "3AFC5D968D4AECBDC97301B520F1E2943A2689278BF0321A5FC4BF77F042646419FBC66F94CCBD915F9B518DDB9A8C2DFE1CC0C1389ADC" + "ACB0CCB227C77FF7A48E3E01EEB7C5AE88994A8193A92DC31D8B55B113D571421B8650F37F69A7F9E8258CE9F709A815FC10217FF8FC2B" + "298265FEF52F4FC3ADC439852146673E8CD0C283EF3CC3ED7C8DBA8F256B34928D16AB56002ABC1722A7A4E18339AF96720DD0429D3E7F" + "68F8CE1E09C749AC9A2BD54A287DEFBCC0611DB3FD84DCAF29F4FD102D65DC79C1124AA864D283E4007A770B839AE002D2DBDD910B95DA" + "C2E9C2CD3362F1D4361C747759B59CA07E971F5B27FF6F9868CB5024F51F7843150B1C07A7E40DE76408A91B563A5DE4705C4B1A09CC64" + "4A6D9C72827F52CF34B2DCE1C12068BFAC4DD94EB0DD1D12EACC351CC969C756708DAE276B6F597F463D4727D6B6C8A406D474B456486C" + "200A78001894A4E6D4C56815B7E7788F82D13FB6448C5AB85C028935F8FE1951BC2F20BECBBB60E6ABAB9924C479552A1CBA01B5E51152" + "071ECF8870129ADA932BA461ABD1F718F06200B7A1FCBA5EDF89E9CE148085282E4018F677E7AE6F30D8B5550BDEE1DEC39749C5921522" + "0DA1D893CB922D85DE7B6BBCD9F3B787A78CE58FEDC6FEBCEC3F84AC2B8BA714D330F19A4E70E2BEE3587A6D98E89B67BB214007331D41" + "053DEB5581807E6B7A9623928391C28B513C96EE6F6A0E60A7B352D207216F93A07160BC09F88B459ABDD5FC759CE58D7FBEDB1CA675A8" + "9D64B8F842070DA7C295530A562E84C7910C4502CACF5262BABA2378D1EBCF94BA77B8AFFB0C23573687CBD1135E55BCF808397A4F8359" + "9F43A40BCB0CFA1621D8A3F77A8A2D64CBA4085DE543DA737FB5C8534A39F7C86B8C82C4D70C0EC13FFB09C3A53149CF7542BABD007465" + "1AF2D243C6380E9CE6BAC1D35F81AD9EACBCD23D20853F93E18E65E2EE64F31F486C96C027889A85C88261B9C7D2FFCE55412DDD3C6C47" + "1B2D179E9805EA76B867DA04C2AF303AD458A37702002B418168BC08F4BAC37576F37460D89E06F359F20BC4A1E598B14A60F29634465F" + "8B167AE44C457E861DAD0983910A7B5A5AD6F2A93632DE340CDE2AEFF1DA2A9D45B40B88C4363F9074B7DE9A3A14B458C180181D9A6B73" + "2450E3A38453FFDD0325AD063129E9EDA1EF05502710E3C344619F5B21B698FD83B2E6AA397D91988997C3E48FCEF4F031128A3F1F7EDF" + "6EB90CC04A05D70BED1D225104DE864A53DA42AD22CD400D7BBD96E0F29E59396D5FCF99A9B33BA102311C5C985618AD1779BD4EE17BCC" + "4D39FE2675F2B7E40AB408347465625A1BC284C91FF997109DF1B0A824A0BE5656A56100FA121D3DB3BA66DE22108DEDB5AAACF308C237" + "77DF8B3CA6B8F0E1E2ECEE33B1A3DE7C354E1D4CF561B51134B8E3F652D0EC737B10FA25382455D2CFF9A63983D9B3C5EAF1DA3CFD3ACB" + "463AB5B0357A900220C91F4169A201FA8181B98307A281CE73760534E98F62DB627F58959279AF0FDB5DD4D2127CE3CDFF4DB759C088E7" + "5A8AA683B3A6FA6CCD4BF52E24ADC8A8B6E5A8A9C582E849777BE5CEE7B3CFD7B5DB819DC76E89C9954B720A2FDEE5D4F436B1745BF626" + "994994534E7691CB3F42E5F703FF9DBE53F5C34DFD988F6699F0743E1BB0427D599CE49E641A6A72B0462C5CE1F2FCB4D9248CBBF11737" + "8DD5E68BBA5271DF26A3336AD06B6EFA3AC73019515A8C5FD7DB8C5B3D812B25C12CA4C79115C4324698F70B33FD64E89791A1938DAE81" + "4779D8720B4046C28C62C0BA6F449BF7DFC944828FB68A91E6347CD38EAE10ABDAC609F87807309F50D2EA330E4A8BD49FA2AA785FCED7" + "1B8B409E283AB86C453125C06DAB315FB83463766D2A7BE97292E102EA426AB9550C0A9E754398C9D0256266E2789B921BB93FAF803291" + "9FA014FE307413DFF5DC6FE14B05E0F96A4B77FA826B4E6CEC615EA7BC782D81D850B2F5942B059BCB8378CF84943A503C5C8ED9831031" + "924047D1D7FC079136004424FCAE5EE4A63B2E447325D79354D715099463C2B263B989AC7B528AC5B9C7513A39371F90FDF6AAE1DCE4B3" + "B3892512398DA171E90C2BFCE9A5B93CDCBCEFC24B97B9A7CE5C46910E6609B04771E8A12F1D1541B606F05F83F369C74DD00A6F16366A" + "7883141E78B010BEC38C88E6E22F7A67B02779E860F40AAA11AD"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -1197,7 +1453,7 @@ UTEST(AOS_APPLY, AES_CBC_256_ENCRYPT_AUTH_16B_PADDING) // Setup security association SecurityAssociation_t *sa_ptr; sa_if->sa_get_from_spi(9, &sa_ptr); - sa_ptr->sa_state = SA_NONE; + sa_ptr->sa_state = SA_NONE; sa_if->sa_get_from_spi(10, &sa_ptr); sa_ptr->sa_state = SA_OPERATIONAL; sa_ptr->est = 1; // Encryption on diff --git a/test/unit/ut_aos_process.c b/test/unit/ut_aos_process.c index 57b17c24..63031d89 100644 --- a/test/unit/ut_aos_process.c +++ b/test/unit/ut_aos_process.c @@ -742,7 +742,39 @@ UTEST(AOS_PROCESS, AES_CMAC_256_TEST_1) // Truth frame setup char *truth_aos_h = - "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB000000000000000000000000000000000000"; + "42C000001800000000010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABB000000000000000000000000000000000000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -1633,7 +1665,39 @@ UTEST(AOS_PROCESS, AEAD_GCM_BITMASK_1) // Truth frame setup char *truth_aos_h = - "42C000000000000000000000000000000000000000000000112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA0D918B9DBB8492C6C96C03914BF6BCA80000"; + "42C000000000000000000000000000000000000000000000112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAA0D918B9DBB8492C6C96C03914BF6BCA80000"; char *truth_aos_b = NULL; int truth_aos_len = 0; hex_conversion(truth_aos_h, &truth_aos_b, &truth_aos_len); @@ -1643,15 +1707,15 @@ UTEST(AOS_PROCESS, AEAD_GCM_BITMASK_1) sa_if->sa_get_from_spi(10, &sa_ptr); // Disable SPI 10 sa_ptr->sa_state = SA_KEYED; sa_if->sa_get_from_spi(11, &sa_ptr); // Enable and setup 11 - sa_ptr->sa_state = SA_OPERATIONAL; - sa_ptr->akid = 0; - sa_ptr->ekid = 130; - sa_ptr->est = 1; - sa_ptr->ast = 0; - sa_ptr->acs_len = 0; - sa_ptr->ecs_len = 1; - sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; - //sa_ptr->stmacf_len = 16; + sa_ptr->sa_state = SA_OPERATIONAL; + sa_ptr->akid = 0; + sa_ptr->ekid = 130; + sa_ptr->est = 1; + sa_ptr->ast = 0; + sa_ptr->acs_len = 0; + sa_ptr->ecs_len = 1; + sa_ptr->ecs = CRYPTO_CIPHER_AES256_GCM; + // sa_ptr->stmacf_len = 16; sa_ptr->abm_len = ABM_SIZE; sa_ptr->gvcid_blk.scid = 44; sa_ptr->iv_len = 16; diff --git a/test/unit/ut_tc_apply.c b/test/unit/ut_tc_apply.c index d9ce587e..9ebb5d9c 100644 --- a/test/unit/ut_tc_apply.c +++ b/test/unit/ut_tc_apply.c @@ -1411,7 +1411,7 @@ UTEST(TC_APPLY_SECURITY, PLAINTEXT_W_ARSN) return_val = Crypto_TC_ApplySecurity((uint8_t *)raw_tc_sdls_ping_b, raw_tc_sdls_ping_len, &ptr_enc_frame, &enc_frame_len); // 200300230000010000000100011980D2C9000E197F0B001B0004000400003040D95E85F3 - char *truth_data_h = "20030021000001000100011980D2C9000E197F0B001B0004000400003040D95EE1F1"; + char *truth_data_h = "20030021000001000100011980D2C9000E197F0B001B0004000400003040D95EE1F1"; uint8_t *truth_data_b = NULL; int truth_data_l = 0; diff --git a/test/unit/ut_tm_apply.c b/test/unit/ut_tm_apply.c index 7bc8a260..9f25d7a7 100644 --- a/test/unit/ut_tm_apply.c +++ b/test/unit/ut_tm_apply.c @@ -233,7 +233,39 @@ UTEST(TM_APPLY_SECURITY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_tm_h = - "003000001800000108010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBD1B0"; + "003000001800000108010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBD1B0"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -1797,7 +1829,39 @@ UTEST(TM_APPLY_ENC_VAL, AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB844C"; + "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB844C"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -1941,7 +2005,39 @@ UTEST(TM_APPLY_ENC_VAL, AEAD_AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFBFEADCEF6419EAC34DA005629917865BE934B8D437776E648E6A73489010869614BF7A3CA0F5499C599C0BA901667E44DB94BE17DCFB16ED0381BA19E587E1B2A6C896992ED9EDDBB3CA6EFBCA517122DBCD73D33D01614985A2291094B39AC5C1BDF1B30915105DD875CB4489D6E87C5EFD2EEC36E03957733B6601839726052086959A903DA2BB018549737EDA801E64816FC13A5CDC17D404547B3DF2030D91470EBCB99C6833BB2CE09BBA0936F6BA84C5735D72D00A7C140FABCA5FD917DDC340ED01E34C5DDCE5BA140A4765B63A17E75FB180C8AD1B99BD0E7E3AA7FC9441DAD814F19EE9B01CDC6A590674BD439FE33122173752162FD4A6F22CE7572E5D75F2DDBB0B7305AB242A06ECE23122410A2320C2E7816FB0204254401BFB2D14D3E6FC58291D9C9C9A43AAD73630CA6DD51D9A7AF24887E6152C2F2F242BA839B3D2088438192F9DFA7CB6CEDD30B0525AB744345D928765E4A4A09CF943887DF994AC8C558A00E10E54A9969A0EE77B4EE807A08246490E3255B93C0B156A7242B3C04ACA9031C3EB071ABA87A008622F59A08B6296BF9BC176361CEBB7524223F47BB180C9ACE9D615DB746FE636AEAA0224978EE9C20000400E9817A951C9B9839219D405EB99E1288CB190250C53F9BC044C131C56D769027FF53B34BE3046E37F71B1D306BD60DBA45F714388D79E9DF98B7978B333F3F97AD4D24DDFA104021B58BDA62089950A79B4B8C6DEBF79D497603B8684EC1C70D51B7FD12E1D8D54D09BC61712F47749103F5E6E6B59215427CF80B26B190F91C8A7A58DC86D5D8BB5891F54889BBF5ADA7DEDE2759962BB1BFC1E7645B481B4F52CA911122AE7A47DFB211A5A079E05AAB9E8F66B03A3FF20350462E9C47E71B9A3826CEDF393038CBB0F1780DEE6853F53BFF5A7DD7E8B900587F039C1C74AF05100A2330F3F16AF723587EF1ADFE08232E454A272A448162A99ED419389C672927C6584215176FCA123A5E3E8799B407D2A671F4700306144664C3215B47FF4FE4377EC752A15C5A2548289820BE59F8CA364FCABFDE5589E971DC2DC7A800A2A97EB1A839D697486D58A561CAE27060DC49F24303206D1FA15F28AB4A390FB7C06380981B781CC068B5CC5EF2BBCA19A66A23F0E500C6C559B6171F0323E262BF156A8781C4E4F6B8B710EA4E0BEE0D6461B56DB0BCE75BB0686C59567C1E2479455E86E3A43B73A6B6AC57FEC643D0BE90AB5605302E481163C4AC7B654B328495C979F7DD721758D20D7B6C943A59717EEBFA61F800DF084682595CAD671780CC771DA000027CA5371E907FBB221732491F3073D2DDCA0D9DD5EC251DE46E7671C37210DC5740539150441552DCAA79C28AFD6928054527B22B8522151BAFF24972E823F38E855E02F6153C9180E4B4F3DFDDD81CC0AFD42F05F8D71A00F53DCB255DAD958B8A3D6B5607991AC1C9A50F8B0A96DAA47EB674DB038BEFF48DFAC61F8DDCEF2F1630CFAA9AE20FECD8611DC68A1DBE92A4160FC1C4B51F5FB38FFAB867652CFC94B3E85BA94F07E00BA1E3F364BE053E98F79084F9CF50346B0638F63E48C56DF47CC4FD8602027321B80D9EC408321E3FB77A9EF7D90A30EB4DCA55265631E0A9AD5EAFE3B8FB1DC533DBC47B705A7ADA738BD9103D3D31EC0F0C8C7BA4AE119100AA64BB5EB96B82F6DCD1F7732619AA32CE2C175752871E9D21B90D9571173E9874BE7FD1ED85B762A4CEEA15966E4C66E5783AF30ADB74088874A9C065DD1C140D15B57CE0BEF9B15BDF51BBB4CCEAE8899F7C5AE13CE1F258DD0603D358F466ED36367DB4600CD647E7D835BEE1061A1475DC4EA81ACC5E979BC7725A03EF1BD5E9CC46CDF4E74CB60FCDAFC8899B58DFD579B8D4210ED94643641792D94BA8079CE8C447CAD117641A2E66AE26744FC7C3297529D7149597AE1A7A0753AACC75D26B924061BAC64853BF092611F8108FFE94D042D0A0B16CFAFA3DD10D8C1A403B478BF4D9DCAAF3775220E6583E34355C5AC960761FDC2AA714CB7E8C3DEEED61E6C5B5A0B03645F7ED1B48E5B280D19B406F03D86DC4389026319A037FE8BE09BD771DE4C9BC2F8990C21349C4D4309D1886FFBF9203A07371E3D149C3A367FD959E1B26234F2F6827ABB97CF4BBC2800E7AAE65EC572F6B072DFFF79A1BDF94D98A49FCB252290B3F090D18C837C1C6138004A456CB65FF5CF2065AF9445A60FC2E2E5C2E14DB5621670CFD6C15AAFDEC826E4E49AD2AF26D185D6E30132273FD394883A293A29DE5DB363A8230131D50661C9718F2F3E8932062C9CF75615955F56269077F7634612D265E90C77D5446CF3FB12F4166D512340F204D6654EC035988A4596EB58E26AE05ABEDEA460FBA5802917B5B302D80628FDFFE410862D1F1C0B6740B801909C5BDB74AD370D53CDA8D993D500A6A0554E5F333FE1DBF57E166BBDC1F231CF94CBB8E0B6592CA7DFED501414DD089C48"; + "02C0000018000005DEADBEEFDEADBEEFDEADBEEFDEADBEEFBFEADCEF6419EAC34DA005629917865BE934B8D437776E648E6A7348901086" + "9614BF7A3CA0F5499C599C0BA901667E44DB94BE17DCFB16ED0381BA19E587E1B2A6C896992ED9EDDBB3CA6EFBCA517122DBCD73D33D01" + "614985A2291094B39AC5C1BDF1B30915105DD875CB4489D6E87C5EFD2EEC36E03957733B6601839726052086959A903DA2BB018549737E" + "DA801E64816FC13A5CDC17D404547B3DF2030D91470EBCB99C6833BB2CE09BBA0936F6BA84C5735D72D00A7C140FABCA5FD917DDC340ED" + "01E34C5DDCE5BA140A4765B63A17E75FB180C8AD1B99BD0E7E3AA7FC9441DAD814F19EE9B01CDC6A590674BD439FE33122173752162FD4" + "A6F22CE7572E5D75F2DDBB0B7305AB242A06ECE23122410A2320C2E7816FB0204254401BFB2D14D3E6FC58291D9C9C9A43AAD73630CA6D" + "D51D9A7AF24887E6152C2F2F242BA839B3D2088438192F9DFA7CB6CEDD30B0525AB744345D928765E4A4A09CF943887DF994AC8C558A00" + "E10E54A9969A0EE77B4EE807A08246490E3255B93C0B156A7242B3C04ACA9031C3EB071ABA87A008622F59A08B6296BF9BC176361CEBB7" + "524223F47BB180C9ACE9D615DB746FE636AEAA0224978EE9C20000400E9817A951C9B9839219D405EB99E1288CB190250C53F9BC044C13" + "1C56D769027FF53B34BE3046E37F71B1D306BD60DBA45F714388D79E9DF98B7978B333F3F97AD4D24DDFA104021B58BDA62089950A79B4" + "B8C6DEBF79D497603B8684EC1C70D51B7FD12E1D8D54D09BC61712F47749103F5E6E6B59215427CF80B26B190F91C8A7A58DC86D5D8BB5" + "891F54889BBF5ADA7DEDE2759962BB1BFC1E7645B481B4F52CA911122AE7A47DFB211A5A079E05AAB9E8F66B03A3FF20350462E9C47E71" + "B9A3826CEDF393038CBB0F1780DEE6853F53BFF5A7DD7E8B900587F039C1C74AF05100A2330F3F16AF723587EF1ADFE08232E454A272A4" + "48162A99ED419389C672927C6584215176FCA123A5E3E8799B407D2A671F4700306144664C3215B47FF4FE4377EC752A15C5A254828982" + "0BE59F8CA364FCABFDE5589E971DC2DC7A800A2A97EB1A839D697486D58A561CAE27060DC49F24303206D1FA15F28AB4A390FB7C063809" + "81B781CC068B5CC5EF2BBCA19A66A23F0E500C6C559B6171F0323E262BF156A8781C4E4F6B8B710EA4E0BEE0D6461B56DB0BCE75BB0686" + "C59567C1E2479455E86E3A43B73A6B6AC57FEC643D0BE90AB5605302E481163C4AC7B654B328495C979F7DD721758D20D7B6C943A59717" + "EEBFA61F800DF084682595CAD671780CC771DA000027CA5371E907FBB221732491F3073D2DDCA0D9DD5EC251DE46E7671C37210DC57405" + "39150441552DCAA79C28AFD6928054527B22B8522151BAFF24972E823F38E855E02F6153C9180E4B4F3DFDDD81CC0AFD42F05F8D71A00F" + "53DCB255DAD958B8A3D6B5607991AC1C9A50F8B0A96DAA47EB674DB038BEFF48DFAC61F8DDCEF2F1630CFAA9AE20FECD8611DC68A1DBE9" + "2A4160FC1C4B51F5FB38FFAB867652CFC94B3E85BA94F07E00BA1E3F364BE053E98F79084F9CF50346B0638F63E48C56DF47CC4FD86020" + "27321B80D9EC408321E3FB77A9EF7D90A30EB4DCA55265631E0A9AD5EAFE3B8FB1DC533DBC47B705A7ADA738BD9103D3D31EC0F0C8C7BA" + "4AE119100AA64BB5EB96B82F6DCD1F7732619AA32CE2C175752871E9D21B90D9571173E9874BE7FD1ED85B762A4CEEA15966E4C66E5783" + "AF30ADB74088874A9C065DD1C140D15B57CE0BEF9B15BDF51BBB4CCEAE8899F7C5AE13CE1F258DD0603D358F466ED36367DB4600CD647E" + "7D835BEE1061A1475DC4EA81ACC5E979BC7725A03EF1BD5E9CC46CDF4E74CB60FCDAFC8899B58DFD579B8D4210ED94643641792D94BA80" + "79CE8C447CAD117641A2E66AE26744FC7C3297529D7149597AE1A7A0753AACC75D26B924061BAC64853BF092611F8108FFE94D042D0A0B" + "16CFAFA3DD10D8C1A403B478BF4D9DCAAF3775220E6583E34355C5AC960761FDC2AA714CB7E8C3DEEED61E6C5B5A0B03645F7ED1B48E5B" + "280D19B406F03D86DC4389026319A037FE8BE09BD771DE4C9BC2F8990C21349C4D4309D1886FFBF9203A07371E3D149C3A367FD959E1B2" + "6234F2F6827ABB97CF4BBC2800E7AAE65EC572F6B072DFFF79A1BDF94D98A49FCB252290B3F090D18C837C1C6138004A456CB65FF5CF20" + "65AF9445A60FC2E2E5C2E14DB5621670CFD6C15AAFDEC826E4E49AD2AF26D185D6E30132273FD394883A293A29DE5DB363A8230131D506" + "61C9718F2F3E8932062C9CF75615955F56269077F7634612D265E90C77D5446CF3FB12F4166D512340F204D6654EC035988A4596EB58E2" + "6AE05ABEDEA460FBA5802917B5B302D80628FDFFE410862D1F1C0B6740B801909C5BDB74AD370D53CDA8D993D500A6A0554E5F333FE1DB" + "F57E166BBDC1F231CF94CBB8E0B6592CA7DFED501414DD089C48"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); diff --git a/test/unit/ut_tm_process.c b/test/unit/ut_tm_process.c index b79e67d3..10350f12 100644 --- a/test/unit/ut_tm_process.c +++ b/test/unit/ut_tm_process.c @@ -251,7 +251,39 @@ UTEST(TM_PROCESS_SECURITY, HAPPY_PATH_CLEAR_FECF) // Truth frame setup char *truth_tm_h = - "02C000001800000008010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB0000"; + "02C000001800000008010000000F00112233445566778899AABBCCDDEEFFA107FF000006D2ABBABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAA" + "BBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB" + "AABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABBAABB0000"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); @@ -1742,7 +1774,39 @@ UTEST(TM_PROCESS_ENC_VAL, AES_GCM_BITMASK_1) // Truth frame setup char *truth_tm_h = - "02C0000018000000000000000000000000000000000000001E642C7DC7BE80E3832F65AD01DFEC41B3DD8F2B5311F62FBF4C62B6919EE89BB9C0A8BDA4B0934F05B5EE1435EE8953CE3EDFA6CC72D4E048CFA18F25A0AEEB67817530D8826B8CC07ED3B62243361C5591E5D4331BEE2345193917966976CC0FF4B8659C2F12822945EB99022105F909F9EBD83618CF711A38F507CDD6521C5298F6CCC7F815B81A848FD3C483252717B6FC2380A9F4C0237B08F2BFBC7A4B9FCD09CC647DE188119659C3EE5624323FB83AC391337AA5426D9647C214E65F2E4F7AA010E4883BB55F52852A4BC35C22A56924361B4FB5F40195895A89BAD00094C4C8C5EFC3F5977227ED62A61B27D9A3409CA15FFDE1EA2DAABA0EA4327E59D95A74332FBEC4367665ECF22E1C7F1EC078AB08975E88CA23EC578D68540B064D2728CE39B433ADB829A2A2C554D3A8B180229F4F5F6882A3548E95BFAC100FC08AE1BB488C14A78C9457A098DDF5B8A1EB09A96970E5948068BD9806352FE87624C00831130A5A2DC03115210CB8FDBA7BC07905E679B1AB58063E1D97F675CB6D03733BA8A5F0254D2BEF842B0D1FE6AF7701316BA28511636C3D8879E11B4F0A74A02CC8DD87E565BA0A0265F379A8605084A1FC5287E43C8FA45483F56846E3BCB8136E61EA90DFFB0088B0543E2933037F2035BBE4AF47184F446AFC6DA153871097A5139A4FAB74B6B8F33176B4CB4B352B4126D49D189754512D39D4EE21B1F3D0161CAFB19846A3CCC1BDBE1E87D5C73770531B93E2E838ED33571C4F4149DC7AD60CAA3658904B0B2AE083896191F8844537EB879D84FB3266A0902CBFC8DDF8A271F54C1A600B81F1126574D775B3F1C6D56D0FE86F889EDDD71FD577A429158DC1BADFA06DDC7B56AADC4D47BA52521CBDA3045FB4A6183D0A74E92AECDC855976514717241C447DCC742005F97558C46D6EDDA91FD65527B62B0FBA6E95C08BCC085E2517E649EAB4DF4E8A59FF4899F504D0D4537475F8A193433C421FC0517C049B900920D1D358B7785E517DEFE24A850A601DF9A222C915D653F7CAA3606C607EE12D2B9A295B01BEC3FF9B36627646FE36BCD564C4C5E086382544EFC5CF81EB0C661B2B7E36FD785255BDA7DACC04887008D6C20D5277690E7D8DE41F381201695B9AE7FFEF8DE2786B757A1C06A3F5ED6BAC2D1940400973B1EA85580C34CCEB228AFBC0ED9E307ADA1D62877ABEC09D2775466CDBD0869D8079CFEB15DD27140A137102204646095251B4C425EFB3270EAEFD8D1D0A6E5DF39A54CEB10D736693C376F6CFC76A8CC7DBB78CADB1FEB357D5B1E6F5486D5F12CA9816380FF66AFC9FB9DEFC06F6EF8155AF8C84C4D69A87B302D7DAE9CCFD2C9FA46799AE5AA557C3FB4E24DD362D4B77BEF76A864EBFB0FB27C26D01C6F9A541018E64CFCA7598934DBB4FDCB50B643E860BFD6055323AC9CB199CE9AE50E6EE94BB9794BA28BE6A4B2079ACC7C4276C5326C28B1A201EA6FA65BF76B9AC3795D11D6B8F46A9A9C235CEB9007754BC5F0C29D73D607D8449AF9C232CCD7E5764BF8EEB3F33A4AB592BDF4BE45D0CC98EF88C47030F7155FEC85AAAE1A949475EBBCDB87936B8161099BF9A2794D314AAA6B417ACB7A4643C025DD518AA8664D97829953E5C8621EBD7595B7B87CA654C8782545399814357362605A3089E03C098F00858925CAE8A4476A7C69F6AFBC97DF9C9897560332AC41EEEE139DF5E0A00C841F27180B5589BF85A1920AF6EE9174DD4D634C2B2FDD258D5452A5A5258644C5B6C5B10C6EBFDC2CD9F31C1EFAC8F44C9D37BB0831A8A78510C6EF45A1746FF394BA202DC841E18566C8659C7968013BF63A097D62F1D6735CFD14BA10140893E138D57765C8CB7B998DD353F91406CD55E3E59F2DE1D9172B8CFC5E998F833995F1479D9F81E614707386FD73F324781647FC35A583E703F5E5C238373F60CB264FE2BBA03EBCF6AF631F2F78222052D674F46CEFB42E3607787B9CE193869BC37F9F35E2F6F3CA52EAC87DAC6544E9A10B5E7B17C9A9B3CF1AC123BFA5F8F3547F0E30EF11632CC75DDFA04AF182C6FD47279842CDA2DC6B3EABA7243B761992B494586FFC6FF52C173C55FBB8D0DBCEB63BD131A9D5B967D3BF295D562A20A6DE72E1BB105CD68A0FBC4C6CA3382236DD4E520D5C9083B88A4A39150E4354AF3D7491A06BAD214FE79E4E1DE2C6C585250002025B00E8DE24B0E880BB7D6970C8FF23C36C1221873257E8F560434A775094B1C2CD4FE473ADD8D4F26714C183D5CC06D1FD8E4A08A2990ACD7E8234DEAE3252BE0EC833EA73DC155D110DBA7FC90941B573523BE18329436621D54F902A1342EDD6673403A12FE0AF08D1127D76B5F465D245CAFE9E522D1F9BF2D0A45F1CBCBDF0FC1B690AE3AF18AA5C3C10306108CBA578D14569649DB474486F5C9EF17B852469B734AE1F419397590BD7AB3A1378FA6D1CA7C10763A916C175E9528803707AA01140000"; + "02C0000018000000000000000000000000000000000000001E642C7DC7BE80E3832F65AD01DFEC41B3DD8F2B5311F62FBF4C62B6919EE8" + "9BB9C0A8BDA4B0934F05B5EE1435EE8953CE3EDFA6CC72D4E048CFA18F25A0AEEB67817530D8826B8CC07ED3B62243361C5591E5D4331B" + "EE2345193917966976CC0FF4B8659C2F12822945EB99022105F909F9EBD83618CF711A38F507CDD6521C5298F6CCC7F815B81A848FD3C4" + "83252717B6FC2380A9F4C0237B08F2BFBC7A4B9FCD09CC647DE188119659C3EE5624323FB83AC391337AA5426D9647C214E65F2E4F7AA0" + "10E4883BB55F52852A4BC35C22A56924361B4FB5F40195895A89BAD00094C4C8C5EFC3F5977227ED62A61B27D9A3409CA15FFDE1EA2DAA" + "BA0EA4327E59D95A74332FBEC4367665ECF22E1C7F1EC078AB08975E88CA23EC578D68540B064D2728CE39B433ADB829A2A2C554D3A8B1" + "80229F4F5F6882A3548E95BFAC100FC08AE1BB488C14A78C9457A098DDF5B8A1EB09A96970E5948068BD9806352FE87624C00831130A5A" + "2DC03115210CB8FDBA7BC07905E679B1AB58063E1D97F675CB6D03733BA8A5F0254D2BEF842B0D1FE6AF7701316BA28511636C3D8879E1" + "1B4F0A74A02CC8DD87E565BA0A0265F379A8605084A1FC5287E43C8FA45483F56846E3BCB8136E61EA90DFFB0088B0543E2933037F2035" + "BBE4AF47184F446AFC6DA153871097A5139A4FAB74B6B8F33176B4CB4B352B4126D49D189754512D39D4EE21B1F3D0161CAFB19846A3CC" + "C1BDBE1E87D5C73770531B93E2E838ED33571C4F4149DC7AD60CAA3658904B0B2AE083896191F8844537EB879D84FB3266A0902CBFC8DD" + "F8A271F54C1A600B81F1126574D775B3F1C6D56D0FE86F889EDDD71FD577A429158DC1BADFA06DDC7B56AADC4D47BA52521CBDA3045FB4" + "A6183D0A74E92AECDC855976514717241C447DCC742005F97558C46D6EDDA91FD65527B62B0FBA6E95C08BCC085E2517E649EAB4DF4E8A" + "59FF4899F504D0D4537475F8A193433C421FC0517C049B900920D1D358B7785E517DEFE24A850A601DF9A222C915D653F7CAA3606C607E" + "E12D2B9A295B01BEC3FF9B36627646FE36BCD564C4C5E086382544EFC5CF81EB0C661B2B7E36FD785255BDA7DACC04887008D6C20D5277" + "690E7D8DE41F381201695B9AE7FFEF8DE2786B757A1C06A3F5ED6BAC2D1940400973B1EA85580C34CCEB228AFBC0ED9E307ADA1D62877A" + "BEC09D2775466CDBD0869D8079CFEB15DD27140A137102204646095251B4C425EFB3270EAEFD8D1D0A6E5DF39A54CEB10D736693C376F6" + "CFC76A8CC7DBB78CADB1FEB357D5B1E6F5486D5F12CA9816380FF66AFC9FB9DEFC06F6EF8155AF8C84C4D69A87B302D7DAE9CCFD2C9FA4" + "6799AE5AA557C3FB4E24DD362D4B77BEF76A864EBFB0FB27C26D01C6F9A541018E64CFCA7598934DBB4FDCB50B643E860BFD6055323AC9" + "CB199CE9AE50E6EE94BB9794BA28BE6A4B2079ACC7C4276C5326C28B1A201EA6FA65BF76B9AC3795D11D6B8F46A9A9C235CEB9007754BC" + "5F0C29D73D607D8449AF9C232CCD7E5764BF8EEB3F33A4AB592BDF4BE45D0CC98EF88C47030F7155FEC85AAAE1A949475EBBCDB87936B8" + "161099BF9A2794D314AAA6B417ACB7A4643C025DD518AA8664D97829953E5C8621EBD7595B7B87CA654C8782545399814357362605A308" + "9E03C098F00858925CAE8A4476A7C69F6AFBC97DF9C9897560332AC41EEEE139DF5E0A00C841F27180B5589BF85A1920AF6EE9174DD4D6" + "34C2B2FDD258D5452A5A5258644C5B6C5B10C6EBFDC2CD9F31C1EFAC8F44C9D37BB0831A8A78510C6EF45A1746FF394BA202DC841E1856" + "6C8659C7968013BF63A097D62F1D6735CFD14BA10140893E138D57765C8CB7B998DD353F91406CD55E3E59F2DE1D9172B8CFC5E998F833" + "995F1479D9F81E614707386FD73F324781647FC35A583E703F5E5C238373F60CB264FE2BBA03EBCF6AF631F2F78222052D674F46CEFB42" + "E3607787B9CE193869BC37F9F35E2F6F3CA52EAC87DAC6544E9A10B5E7B17C9A9B3CF1AC123BFA5F8F3547F0E30EF11632CC75DDFA04AF" + "182C6FD47279842CDA2DC6B3EABA7243B761992B494586FFC6FF52C173C55FBB8D0DBCEB63BD131A9D5B967D3BF295D562A20A6DE72E1B" + "B105CD68A0FBC4C6CA3382236DD4E520D5C9083B88A4A39150E4354AF3D7491A06BAD214FE79E4E1DE2C6C585250002025B00E8DE24B0E" + "880BB7D6970C8FF23C36C1221873257E8F560434A775094B1C2CD4FE473ADD8D4F26714C183D5CC06D1FD8E4A08A2990ACD7E8234DEAE3" + "252BE0EC833EA73DC155D110DBA7FC90941B573523BE18329436621D54F902A1342EDD6673403A12FE0AF08D1127D76B5F465D245CAFE9" + "E522D1F9BF2D0A45F1CBCBDF0FC1B690AE3AF18AA5C3C10306108CBA578D14569649DB474486F5C9EF17B852469B734AE1F419397590BD" + "7AB3A1378FA6D1CA7C10763A916C175E9528803707AA01140000"; char *truth_tm_b = NULL; int truth_tm_len = 0; hex_conversion(truth_tm_h, &truth_tm_b, &truth_tm_len); From c49d8d9888d4f0cd77a611213605c9fac7117012 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Fri, 30 May 2025 10:59:03 -0400 Subject: [PATCH 17/20] [nasa/nos3#619] Fix race condition with multithreading in standalone --- include/crypto.h | 4 +- src/core/crypto.c | 4 +- src/core/crypto_aos.c | 116 +++++++++--------- src/core/crypto_config.c | 8 +- src/core/crypto_tc.c | 26 ++-- src/core/crypto_tm.c | 96 +++++++-------- .../internal/sa_interface_inmemory.template.c | 2 +- support/standalone/standalone.c | 44 +++++-- test/unit/ut_aos_apply.c | 16 +-- test/unit/ut_aos_process.c | 40 +++--- test/unit/ut_tm_apply.c | 40 +++--- test/unit/ut_tm_process.c | 36 +++--- 12 files changed, 232 insertions(+), 200 deletions(-) diff --git a/include/crypto.h b/include/crypto.h index 4831211a..189125e1 100644 --- a/include/crypto.h +++ b/include/crypto.h @@ -329,7 +329,9 @@ extern CamConfig_t *cam_config; extern GvcidManagedParameters_t *gvcid_managed_parameters; extern GvcidManagedParameters_t *current_managed_parameters; extern GvcidManagedParameters_t gvcid_managed_parameters_array[GVCID_MAX_PARAM_SIZE]; -extern GvcidManagedParameters_t current_managed_parameters_struct; +extern GvcidManagedParameters_t tc_current_managed_parameters_struct; +extern GvcidManagedParameters_t tm_current_managed_parameters_struct; +extern GvcidManagedParameters_t aos_current_managed_parameters_struct; extern int gvcid_counter; extern KeyInterface key_if; extern McInterface mc_if; diff --git a/src/core/crypto.c b/src/core/crypto.c index 1610b55e..f30d75c0 100644 --- a/src/core/crypto.c +++ b/src/core/crypto.c @@ -1444,8 +1444,8 @@ int32_t Crypto_Get_Security_Trailer_Length(SecurityAssociation_t *sa_ptr) **/ void Crypto_Set_FSR(uint8_t *p_ingest, uint16_t byte_idx, uint16_t pdu_len, SecurityAssociation_t *sa_ptr) { - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF || - current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF || + aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { Telemetry_Frame_Ocf_Fsr_t temp_report; byte_idx += (pdu_len + sa_ptr->stmacf_len); diff --git a/src/core/crypto_aos.c b/src/core/crypto_aos.c index 1f520264..fc6b1324 100644 --- a/src/core/crypto_aos.c +++ b/src/core/crypto_aos.c @@ -119,7 +119,7 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } status = Crypto_Get_Managed_Parameters_For_Gvcid(tfvn, scid, vcid, gvcid_managed_parameters_array, - ¤t_managed_parameters_struct); + &aos_current_managed_parameters_struct); // No managed parameters found if (status != CRYPTO_LIB_SUCCESS) @@ -131,7 +131,7 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) return status; } - if ((len_ingest < current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && + if ((len_ingest < aos_current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) { status = CRYPTO_LIB_ERR_AOS_FL_LT_MAX_FRAME_SIZE; @@ -140,9 +140,9 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } else if ((sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC) || (sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC_MAC)) { - if ((current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) + if ((aos_current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) { - cbc_padding = current_managed_parameters_struct.max_frame_size - len_ingest; + cbc_padding = aos_current_managed_parameters_struct.max_frame_size - len_ingest; } else { @@ -158,19 +158,19 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) ** Special case for CBC mode ciphers that require padding */ if ((sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC || sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC_MAC) && - (current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) + (aos_current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) { // For CBC mode, allow frames that are slightly shorter to account for padding - cbc_padding = current_managed_parameters_struct.max_frame_size - len_ingest; + cbc_padding = aos_current_managed_parameters_struct.max_frame_size - len_ingest; #ifdef AOS_DEBUG printf(KYEL "CBC padding of %d bytes will be applied\n" RESET, cbc_padding); #endif } - else if ((current_managed_parameters_struct.max_frame_size - len_ingest) != 0) + else if ((aos_current_managed_parameters_struct.max_frame_size - len_ingest) != 0) { #ifdef AOS_DEBUG printf(KRED "Frame length %d does not match required fixed length %d\n" RESET, len_ingest, - current_managed_parameters_struct.max_frame_size); + aos_current_managed_parameters_struct.max_frame_size); #endif status = CRYPTO_LIB_ERR_AOS_FL_LT_MAX_FRAME_SIZE; mc_if->mc_log(status); @@ -179,7 +179,7 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) #ifdef AOS_DEBUG printf(KYEL "AOS BEFORE Apply Sec:\n\t" RESET); - for (int16_t i = 0; i < current_managed_parameters_struct.max_frame_size - cbc_padding; i++) + for (int16_t i = 0; i < aos_current_managed_parameters_struct.max_frame_size - cbc_padding; i++) { printf("%02X", pTfBuffer[i]); } @@ -250,7 +250,7 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) idx = 6; // Detect if optional 2 byte FHEC is present - if (current_managed_parameters_struct.aos_has_fhec == AOS_HAS_FHEC) + if (aos_current_managed_parameters_struct.aos_has_fhec == AOS_HAS_FHEC) { #ifdef AOS_DEBUG printf(KYEL "Calculating FHECF...\n" RESET); @@ -263,15 +263,15 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) // Detect if optional variable length Insert Zone is present // Per CCSDS 732.0-B-4 Section 4.1.3, Insert Zone is optional but fixed length for a physical channel - if (current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) + if (aos_current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) { // Section 4.1.3.2 - Validate Insert Zone length - if (current_managed_parameters_struct.aos_iz_len <= 0) + if (aos_current_managed_parameters_struct.aos_iz_len <= 0) { status = CRYPTO_LIB_ERR_INVALID_AOS_IZ_LENGTH; #ifdef AOS_DEBUG printf(KRED "Error: Invalid Insert Zone length %d. Must be between 1 and 65535 octets.\n" RESET, - current_managed_parameters_struct.aos_iz_len); + aos_current_managed_parameters_struct.aos_iz_len); #endif mc_if->mc_log(status); return status; @@ -280,10 +280,10 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) // Section 4.1.3.2.3 - All bits of the Insert Zone shall be set by the sending end // Based on the managed parameter configuration, we're not modifying the Insert Zone contents #ifdef AOS_DEBUG - printf(KYEL "Insert Zone present with length %d octets\n" RESET, current_managed_parameters_struct.aos_iz_len); + printf(KYEL "Insert Zone present with length %d octets\n" RESET, aos_current_managed_parameters_struct.aos_iz_len); #endif - idx += current_managed_parameters_struct.aos_iz_len; + idx += aos_current_managed_parameters_struct.aos_iz_len; } // Idx is now at SPI location @@ -402,9 +402,9 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) **/ data_loc = idx; // Calculate size of data to be encrypted - pdu_len = current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; + pdu_len = aos_current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; - if (current_managed_parameters_struct.max_frame_size < idx - sa_ptr->stmacf_len) + if (aos_current_managed_parameters_struct.max_frame_size < idx - sa_ptr->stmacf_len) { status = CRYPTO_LIB_ERR_AOS_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -412,16 +412,16 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } // Check other managed parameter flags, subtract their lengths from data field if present - if (current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { pdu_len -= 4; } - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { pdu_len -= 2; } - if (current_managed_parameters_struct.max_frame_size < pdu_len) + if (aos_current_managed_parameters_struct.max_frame_size < pdu_len) { status = CRYPTO_LIB_ERR_AOS_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -432,15 +432,15 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) printf(KYEL "Data location starts at: %d\n" RESET, idx); printf(KYEL "Data size is: %d\n" RESET, pdu_len); printf(KYEL "Index at end of SPI is: %d\n", idx); - if (current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { // If OCF exists, comes immediately after MAC printf(KYEL "OCF Location is: %d" RESET, idx + pdu_len + sa_ptr->stmacf_len); } - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { // If FECF exists, comes just before end of the frame - printf(KYEL "FECF Location is: %d\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KYEL "FECF Location is: %d\n" RESET, aos_current_managed_parameters_struct.max_frame_size - 2); } #endif @@ -732,7 +732,7 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) #endif // Handle OCF (Operational Control Field) per CCSDS 732.0-B-4 Section 4.1.4 - if (current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { // Section 4.1.4.2 - OCF is always 4 octets uint16_t ocf_location = idx + pdu_len + sa_ptr->stmacf_len; @@ -762,28 +762,28 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) **/ // Only calculate & insert FECF if CryptoLib is configured to do so & gvcid includes FECF. - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { #ifdef FECF_DEBUG - printf(KCYN "Calcing FECF over %d bytes\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KCYN "Calcing FECF over %d bytes\n" RESET, aos_current_managed_parameters_struct.max_frame_size - 2); #endif if (crypto_config.crypto_create_fecf == CRYPTO_AOS_CREATE_FECF_TRUE) { - new_fecf = Crypto_Calc_FECF((uint8_t *)pTfBuffer, current_managed_parameters_struct.max_frame_size - 2); - pTfBuffer[current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)((new_fecf & 0xFF00) >> 8); - pTfBuffer[current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)(new_fecf & 0x00FF); + new_fecf = Crypto_Calc_FECF((uint8_t *)pTfBuffer, aos_current_managed_parameters_struct.max_frame_size - 2); + pTfBuffer[aos_current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)((new_fecf & 0xFF00) >> 8); + pTfBuffer[aos_current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)(new_fecf & 0x00FF); } else // CRYPTO_TC_CREATE_FECF_FALSE { - pTfBuffer[current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)0x00; - pTfBuffer[current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)0x00; + pTfBuffer[aos_current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)0x00; + pTfBuffer[aos_current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)0x00; } idx += 2; } #ifdef AOS_DEBUG printf(KYEL "Printing new AOS frame:\n\t"); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf("%02X", pTfBuffer[i]); } @@ -873,7 +873,7 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 // Lookup-retrieve managed parameters for frame via gvcid: status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); if (status != CRYPTO_LIB_SUCCESS) { @@ -886,7 +886,7 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 // Increment to end of Primary Header start, depends on FHECF presence byte_idx = 6; - if (current_managed_parameters_struct.aos_has_fhec == AOS_HAS_FHEC) + if (aos_current_managed_parameters_struct.aos_has_fhec == AOS_HAS_FHEC) { uint16_t recieved_fhecf = (((p_ingest[aos_hdr_len] << 8) & 0xFF00) | (p_ingest[aos_hdr_len + 1] & 0x00FF)); #ifdef AOS_DEBUG @@ -910,15 +910,15 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 // Detect if optional variable length Insert Zone is present // Per CCSDS 732.0-B-4 Section 4.1.3, Insert Zone is optional but fixed length for a physical channel - if (current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) + if (aos_current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) { // Section 4.1.3.2 - Validate Insert Zone length - if (current_managed_parameters_struct.aos_iz_len <= 0) + if (aos_current_managed_parameters_struct.aos_iz_len <= 0) { status = CRYPTO_LIB_ERR_INVALID_AOS_IZ_LENGTH; #ifdef AOS_DEBUG printf(KRED "Error: Invalid Insert Zone length %d. Must be between 1 and 65535 octets.\n" RESET, - current_managed_parameters_struct.aos_iz_len); + aos_current_managed_parameters_struct.aos_iz_len); #endif mc_if->mc_log(status); return status; @@ -927,10 +927,10 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 // Section 4.1.3.2.3 - All bits of the Insert Zone shall be set by the sending end // Based on the managed parameter configuration, we're not modifying the Insert Zone contents #ifdef AOS_DEBUG - printf(KYEL "Insert Zone present with length %d octets\n" RESET, current_managed_parameters_struct.aos_iz_len); + printf(KYEL "Insert Zone present with length %d octets\n" RESET, aos_current_managed_parameters_struct.aos_iz_len); #endif - byte_idx += current_managed_parameters_struct.aos_iz_len; + byte_idx += aos_current_managed_parameters_struct.aos_iz_len; } /** @@ -1026,7 +1026,7 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 } #endif - if (len_ingest < current_managed_parameters_struct.max_frame_size) + if (len_ingest < aos_current_managed_parameters_struct.max_frame_size) { status = CRYPTO_LIB_ERR_AOS_FL_LT_MAX_FRAME_SIZE; mc_if->mc_log(status); @@ -1034,10 +1034,10 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 } // Parse & Check FECF, if present, and update fecf length - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { - uint16_t received_fecf = (((p_ingest[current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | - (p_ingest[current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); + uint16_t received_fecf = (((p_ingest[aos_current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | + (p_ingest[aos_current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); if (crypto_config.crypto_check_fecf == AOS_CHECK_FECF_TRUE) { @@ -1066,12 +1066,12 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 } } // Needs to be AOS_HAS_FECF (checked above, or AOS_NO_FECF) - else if (current_managed_parameters_struct.has_fecf != AOS_NO_FECF) + else if (aos_current_managed_parameters_struct.has_fecf != AOS_NO_FECF) { #ifdef AOS_DEBUG printf(KRED "AOS_Process Error...tfvn: %d scid: 0x%04X vcid: 0x%02X fecf_enum: %d\n" RESET, - current_managed_parameters_struct.tfvn, current_managed_parameters_struct.scid, - current_managed_parameters_struct.vcid, current_managed_parameters_struct.has_fecf); + aos_current_managed_parameters_struct.tfvn, aos_current_managed_parameters_struct.scid, + aos_current_managed_parameters_struct.vcid, aos_current_managed_parameters_struct.has_fecf); #endif status = CRYPTO_LIB_ERR_TC_ENUM_USED_FOR_AOS_CONFIG; mc_if->mc_log(status); @@ -1094,12 +1094,12 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 memcpy(p_new_dec_frame, &p_ingest[0], aos_hdr_len); // Copy over insert zone data, if it exists - if (current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) + if (aos_current_managed_parameters_struct.aos_has_iz == AOS_HAS_IZ) { - memcpy(p_new_dec_frame + aos_hdr_len, &p_ingest[aos_hdr_len], current_managed_parameters_struct.aos_iz_len); + memcpy(p_new_dec_frame + aos_hdr_len, &p_ingest[aos_hdr_len], aos_current_managed_parameters_struct.aos_iz_len); #ifdef AOS_DEBUG printf("Copied over the following:\n\t"); - for (int i = 0; i < current_managed_parameters_struct.aos_iz_len; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.aos_iz_len; i++) { printf("%02X", p_ingest[aos_hdr_len + i]); } @@ -1139,14 +1139,14 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 ** The optional Operations Control Field and the Frame Error Control Field, if present, ** are not part of the Data Field. */ - pdu_len = current_managed_parameters_struct.max_frame_size - byte_idx - sa_ptr->stmacf_len; + pdu_len = aos_current_managed_parameters_struct.max_frame_size - byte_idx - sa_ptr->stmacf_len; /* ** CCSDS 732.0-B-4 Section 4.1.5 - Operational Control Field (OCF) ** The OCF contains real-time Control Commands, reports, or status that may be required for ** the operation of the AOS Space Data Link Protocol. */ - if (current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { pdu_len -= 4; } @@ -1155,7 +1155,7 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 ** CCSDS 732.0-B-4 Section 4.1.6 - Frame Error Control Field (FECF) ** The FECF shall contain a sequence of 16 parity bits for error detection. */ - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { pdu_len -= 2; } @@ -1170,15 +1170,15 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 #ifdef AOS_DEBUG printf(KYEL "Index / data location starts at: %d\n" RESET, byte_idx); printf(KYEL "Data size is: %d\n" RESET, pdu_len); - if (current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) + if (aos_current_managed_parameters_struct.has_ocf == AOS_HAS_OCF) { // If OCF exists, comes immediately after MAC printf(KYEL "OCF Location is: %d" RESET, byte_idx + pdu_len + sa_ptr->stmacf_len); } - if (current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) + if (aos_current_managed_parameters_struct.has_fecf == AOS_HAS_FECF) { // If FECF exists, comes just before end of the frame - printf(KYEL "FECF Location is: %d\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KYEL "FECF Location is: %d\n" RESET, aos_current_managed_parameters_struct.max_frame_size - 2); } #endif @@ -1382,12 +1382,12 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 #ifdef AOS_DEBUG printf(KYEL "\nPrinting received frame:\n\t" RESET); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf(KYEL "%02X", p_ingest[i]); } printf(KYEL "\nPrinting PROCESSED frame:\n\t" RESET); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf(KYEL "%02X", p_new_dec_frame[i]); } @@ -1396,7 +1396,7 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 *pp_processed_frame = p_new_dec_frame; // TODO maybe not just return this without doing the math ourselves - *p_decrypted_length = current_managed_parameters_struct.max_frame_size; + *p_decrypted_length = aos_current_managed_parameters_struct.max_frame_size; #ifdef DEBUG printf(KYEL "----- Crypto_AOS_ProcessSecurity END -----\n" RESET); diff --git a/src/core/crypto_config.c b/src/core/crypto_config.c index 0f90f270..a40aa797 100644 --- a/src/core/crypto_config.c +++ b/src/core/crypto_config.c @@ -47,7 +47,9 @@ CamConfig_t *cam_config = NULL; GvcidManagedParameters_t gvcid_managed_parameters_array[GVCID_MAN_PARAM_SIZE]; int gvcid_counter = 0; GvcidManagedParameters_t gvcid_null_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -GvcidManagedParameters_t current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +GvcidManagedParameters_t tc_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +GvcidManagedParameters_t tm_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +GvcidManagedParameters_t aos_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // GvcidManagedParameters_t* gvcid_managed_parameters = NULL; // GvcidManagedParameters_t* current_managed_parameters = NULL; @@ -394,7 +396,9 @@ int32_t Crypto_Shutdown(void) int32_t status = CRYPTO_LIB_SUCCESS; // current_managed_parameters = NULL; - current_managed_parameters_struct = gvcid_null_struct; + tc_current_managed_parameters_struct = gvcid_null_struct; + tm_current_managed_parameters_struct = gvcid_null_struct; + aos_current_managed_parameters_struct = gvcid_null_struct; for (int i = 0; i <= gvcid_counter; i++) { gvcid_managed_parameters_array[i] = gvcid_null_struct; diff --git a/src/core/crypto_tc.c b/src/core/crypto_tc.c index 6ce2549b..8c1f16ef 100644 --- a/src/core/crypto_tc.c +++ b/src/core/crypto_tc.c @@ -243,10 +243,10 @@ int32_t Crypto_TC_Frame_Validation(uint16_t *p_enc_frame_len) } // Check maximum managed parameter size - if (*p_enc_frame_len > current_managed_parameters_struct.max_frame_size) + if (*p_enc_frame_len > tc_current_managed_parameters_struct.max_frame_size) { #ifdef DEBUG - printf("Managed length is: %d\n", current_managed_parameters_struct.max_frame_size); + printf("Managed length is: %d\n", tc_current_managed_parameters_struct.max_frame_size); printf("New enc frame length will be: %d\n", *p_enc_frame_len); #endif printf(KRED "Error: New frame would violate maximum tc frame managed parameter! \n" RESET); @@ -692,7 +692,7 @@ int32_t Crypto_TC_Do_Encrypt(uint8_t sa_service_type, SecurityAssociation_t *sa_ */ // Only calculate & insert FECF if CryptoLib is configured to do so & gvcid includes FECF. - if (current_managed_parameters_struct.has_fecf == TC_HAS_FECF) + if (tc_current_managed_parameters_struct.has_fecf == TC_HAS_FECF) { #ifdef FECF_DEBUG printf(KCYN "Calcing FECF over %d bytes\n" RESET, new_enc_frame_header_field_length - 1); @@ -815,7 +815,7 @@ int32_t Crytpo_TC_Validate_TC_Temp_Header(const uint16_t in_frame_length, TC_Fra // Lookup-retrieve managed parameters for frame via gvcid: status = Crypto_Get_Managed_Parameters_For_Gvcid(temp_tc_header.tfvn, temp_tc_header.scid, temp_tc_header.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tc_current_managed_parameters_struct); if (status != CRYPTO_LIB_SUCCESS) { @@ -823,7 +823,7 @@ int32_t Crytpo_TC_Validate_TC_Temp_Header(const uint16_t in_frame_length, TC_Fra return status; } // Unable to get necessary Managed Parameters for TC TF -- return with error. - if (current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) + if (tc_current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) { *segmentation_hdr = p_in_frame[5]; *map_id = *segmentation_hdr & 0x3F; @@ -1184,7 +1184,7 @@ int32_t Crypto_TC_ApplySecurity_Cam(const uint8_t *p_in_frame, const uint16_t in */ uint16_t index = TC_FRAME_HEADER_SIZE; // Frame header is 5 bytes - if (current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) + if (tc_current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) { index++; // Add 1 byte to index because segmentation header used for this gvcid. } @@ -1311,7 +1311,7 @@ int32_t Crypto_TC_ProcessSecurity(uint8_t *ingest, int *len_ingest, TC_t *tc_sdl int32_t Crypto_TC_Parse_Check_FECF(uint8_t *ingest, int *len_ingest, TC_t *tc_sdls_processed_frame) { int32_t status = CRYPTO_LIB_SUCCESS; - if (current_managed_parameters_struct.has_fecf == TC_HAS_FECF) + if (tc_current_managed_parameters_struct.has_fecf == TC_HAS_FECF) { tc_sdls_processed_frame->tc_sec_trailer.fecf = (((ingest[tc_sdls_processed_frame->tc_header.fl - 1] << 8) & 0xFF00) | @@ -1655,7 +1655,7 @@ int32_t Crypto_TC_Prep_AAD(TC_t *tc_sdls_processed_frame, uint8_t fecf_len, uint if ((sa_service_type == SA_AUTHENTICATION) || (sa_service_type == SA_AUTHENTICATED_ENCRYPTION)) { uint16_t tc_mac_start_index = tc_sdls_processed_frame->tc_header.fl + 1 - fecf_len - sa_ptr->stmacf_len; - if (current_managed_parameters_struct.max_frame_size < tc_mac_start_index) + if (tc_current_managed_parameters_struct.max_frame_size < tc_mac_start_index) { status = CRYPTO_LIB_ERR_TC_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1854,17 +1854,17 @@ void Crypto_TC_Get_Ciper_Mode_TCP(uint8_t sa_service_type, uint32_t *encryption_ **/ void Crypto_TC_Calc_Lengths(uint8_t *fecf_len, uint8_t *segment_hdr_len, uint8_t *ocf_len) { - if (current_managed_parameters_struct.has_fecf == TC_NO_FECF) + if (tc_current_managed_parameters_struct.has_fecf == TC_NO_FECF) { *fecf_len = 0; } - if (current_managed_parameters_struct.has_segmentation_hdr == TC_NO_SEGMENT_HDRS) + if (tc_current_managed_parameters_struct.has_segmentation_hdr == TC_NO_SEGMENT_HDRS) { *segment_hdr_len = 0; } - if (current_managed_parameters_struct.has_ocf == TC_OCF_NA) + if (tc_current_managed_parameters_struct.has_ocf == TC_OCF_NA) { *ocf_len = 0; } @@ -1882,7 +1882,7 @@ void Crypto_TC_Calc_Lengths(uint8_t *fecf_len, uint8_t *segment_hdr_len, uint8_t void Crypto_TC_Set_Segment_Header(TC_t *tc_sdls_processed_frame, uint8_t *ingest, int *byte_idx) { int byte_idx_tmp = *byte_idx; - if (current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) + if (tc_current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) { tc_sdls_processed_frame->tc_sec_header.sh = (uint8_t)ingest[*byte_idx]; byte_idx_tmp++; @@ -1950,7 +1950,7 @@ int32_t Crypto_TC_ProcessSecurity_Cam(uint8_t *ingest, int *len_ingest, TC_t *tc // Lookup-retrieve managed parameters for frame via gvcid: status = Crypto_Get_Managed_Parameters_For_Gvcid( tc_sdls_processed_frame->tc_header.tfvn, tc_sdls_processed_frame->tc_header.scid, - tc_sdls_processed_frame->tc_header.vcid, gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + tc_sdls_processed_frame->tc_header.vcid, gvcid_managed_parameters_array, &tc_current_managed_parameters_struct); if (status != CRYPTO_LIB_SUCCESS) { diff --git a/src/core/crypto_tm.c b/src/core/crypto_tm.c index 9aa39638..daebfd7e 100644 --- a/src/core/crypto_tm.c +++ b/src/core/crypto_tm.c @@ -245,7 +245,7 @@ uint32_t Crypto_TM_Calculate_Padding(uint32_t cipher, uint16_t data_len) void Crypto_TM_PKCS_Padding(uint32_t *pkcs_padding, SecurityAssociation_t *sa_ptr, uint8_t *pTfBuffer, uint16_t *idx_p) { uint16_t idx = *idx_p; - uint16_t data_len = current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; + uint16_t data_len = tm_current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; // Calculate required padding based on cipher *pkcs_padding = Crypto_TM_Calculate_Padding(sa_ptr->ecs, data_len); @@ -281,11 +281,11 @@ void Crypto_TM_PKCS_Padding(uint32_t *pkcs_padding, SecurityAssociation_t *sa_pt **/ void Crypto_TM_Handle_Managed_Parameter_Flags(uint16_t *pdu_len) { - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { *pdu_len -= 4; } - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { *pdu_len -= 2; } @@ -678,29 +678,29 @@ int32_t Crypto_TM_Do_Encrypt(uint8_t sa_service_type, SecurityAssociation_t *sa_ **/ // Only calculate & insert FECF if CryptoLib is configured to do so & gvcid includes FECF. - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { #ifdef FECF_DEBUG - printf(KCYN "Calcing FECF over %d bytes\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KCYN "Calcing FECF over %d bytes\n" RESET, tm_current_managed_parameters_struct.max_frame_size - 2); #endif if (crypto_config.crypto_create_fecf == CRYPTO_TM_CREATE_FECF_TRUE) { *new_fecf = - Crypto_Calc_FECF((uint8_t *)pTfBuffer, current_managed_parameters_struct.max_frame_size - 2); - pTfBuffer[current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)((*new_fecf & 0xFF00) >> 8); - pTfBuffer[current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)(*new_fecf & 0x00FF); + Crypto_Calc_FECF((uint8_t *)pTfBuffer, tm_current_managed_parameters_struct.max_frame_size - 2); + pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)((*new_fecf & 0xFF00) >> 8); + pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)(*new_fecf & 0x00FF); } else // CRYPTO_TC_CREATE_FECF_FALSE { - pTfBuffer[current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)0x00; - pTfBuffer[current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)0x00; + pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)0x00; + pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)0x00; } idx += 2; } #ifdef TM_DEBUG printf(KYEL "Printing new TM frame:\n\t"); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { printf("%02X", pTfBuffer[i]); } @@ -739,15 +739,15 @@ void Crypto_TM_ApplySecurity_Debug_Print(uint16_t idx, uint16_t pdu_len, Securit printf(KYEL "Data location starts at: %d\n" RESET, idx); printf(KYEL "Data size is: %d\n" RESET, pdu_len); printf(KYEL "Index at end of SPI is: %d\n", idx); - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { // If OCF exists, comes immediately after MAC printf(KYEL "OCF Location is: %d\n" RESET, idx + pdu_len + sa_ptr->stmacf_len); } - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { // If FECF exists, comes just before end of the frame - printf(KYEL "FECF Location is: %d\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KYEL "FECF Location is: %d\n" RESET, tm_current_managed_parameters_struct.max_frame_size - 2); } #endif } @@ -833,7 +833,7 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } status = Crypto_Get_Managed_Parameters_For_Gvcid(tfvn, scid, vcid, gvcid_managed_parameters_array, - ¤t_managed_parameters_struct); + &tm_current_managed_parameters_struct); // No managed parameters found if (status != CRYPTO_LIB_SUCCESS) @@ -845,7 +845,7 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) return status; } - if ((len_ingest < current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && + if ((len_ingest < tm_current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) { status = CRYPTO_LIB_ERR_TM_FL_LT_MAX_FRAME_SIZE; @@ -854,9 +854,9 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } else if ((sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC) || (sa_ptr->ecs == CRYPTO_CIPHER_AES256_CBC_MAC)) { - if ((current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) + if ((tm_current_managed_parameters_struct.max_frame_size - len_ingest) <= 16) { - cbc_padding = current_managed_parameters_struct.max_frame_size - len_ingest; + cbc_padding = tm_current_managed_parameters_struct.max_frame_size - len_ingest; } else { @@ -868,7 +868,7 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) #ifdef TM_DEBUG printf(KYEL "TM BEFORE Apply Sec:\n\t" RESET); - for (int16_t i = 0; i < current_managed_parameters_struct.max_frame_size - cbc_padding; i++) + for (int16_t i = 0; i < tm_current_managed_parameters_struct.max_frame_size - cbc_padding; i++) { printf("%02X", pTfBuffer[i]); } @@ -1011,7 +1011,7 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) **/ data_loc = idx; - if (current_managed_parameters_struct.max_frame_size <= idx - sa_ptr->stmacf_len) + if (tm_current_managed_parameters_struct.max_frame_size <= idx - sa_ptr->stmacf_len) { status = CRYPTO_LIB_ERR_TM_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1019,11 +1019,11 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) } // Calculate size of data to be encrypted - pdu_len = current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; + pdu_len = tm_current_managed_parameters_struct.max_frame_size - idx - sa_ptr->stmacf_len; // Check other managed parameter flags, subtract their lengths from data field if present Crypto_TM_Handle_Managed_Parameter_Flags(&pdu_len); - if (current_managed_parameters_struct.max_frame_size < pdu_len) + if (tm_current_managed_parameters_struct.max_frame_size < pdu_len) { status = CRYPTO_LIB_ERR_AOS_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1107,7 +1107,7 @@ int32_t Crypto_TM_Process_Setup(uint16_t len_ingest, uint16_t *byte_idx, uint8_t { status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); } if (status != CRYPTO_LIB_SUCCESS) @@ -1245,10 +1245,10 @@ int32_t Crypto_TM_FECF_Setup(uint8_t *p_ingest, uint16_t len_ingest) { int32_t status = CRYPTO_LIB_SUCCESS; - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { - uint16_t received_fecf = (((p_ingest[current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | - (p_ingest[current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); + uint16_t received_fecf = (((p_ingest[tm_current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | + (p_ingest[tm_current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); if (crypto_config.crypto_check_fecf == TM_CHECK_FECF_TRUE) { @@ -1277,12 +1277,12 @@ int32_t Crypto_TM_FECF_Setup(uint8_t *p_ingest, uint16_t len_ingest) } } // Needs to be TM_HAS_FECF (checked above_ or TM_NO_FECF) - else if (current_managed_parameters_struct.has_fecf != TM_NO_FECF) + else if (tm_current_managed_parameters_struct.has_fecf != TM_NO_FECF) { #ifdef TM_DEBUG printf(KRED "TM_Process Error...tfvn: %d scid: 0x%04X vcid: 0x%02X fecf_enum: %d\n" RESET, - current_managed_parameters_struct.tfvn, current_managed_parameters_struct.scid, - current_managed_parameters_struct.vcid, current_managed_parameters_struct.has_fecf); + tm_current_managed_parameters_struct.tfvn, tm_current_managed_parameters_struct.scid, + tm_current_managed_parameters_struct.vcid, tm_current_managed_parameters_struct.has_fecf); #endif status = CRYPTO_LIB_ERR_TC_ENUM_USED_FOR_TM_CONFIG; mc_if->mc_log(status); @@ -1499,12 +1499,12 @@ int32_t Crypto_TM_Do_Decrypt_NONAEAD(uint8_t sa_service_type, uint16_t pdu_len, */ void Crypto_TM_Calc_PDU_MAC(uint16_t *pdu_len, uint16_t byte_idx, SecurityAssociation_t *sa_ptr, int *mac_loc) { - *pdu_len = current_managed_parameters_struct.max_frame_size - (byte_idx)-sa_ptr->stmacf_len; - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + *pdu_len = tm_current_managed_parameters_struct.max_frame_size - (byte_idx)-sa_ptr->stmacf_len; + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { *pdu_len -= 4; } - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { *pdu_len -= 2; } @@ -1564,12 +1564,12 @@ int32_t Crypto_TM_Do_Decrypt(uint8_t sa_service_type, SecurityAssociation_t *sa_ #ifdef TM_DEBUG printf(KYEL "Printing received frame:\n\t" RESET); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { printf(KYEL "%02X", p_ingest[i]); } printf(KYEL "\nPrinting PROCESSED frame:\n\t" RESET); - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { printf(KYEL "%02X", p_new_dec_frame[i]); } @@ -1578,7 +1578,7 @@ int32_t Crypto_TM_Do_Decrypt(uint8_t sa_service_type, SecurityAssociation_t *sa_ *pp_processed_frame = p_new_dec_frame; // TODO maybe not just return this without doing the math ourselves - *p_decrypted_length = current_managed_parameters_struct.max_frame_size; + *p_decrypted_length = tm_current_managed_parameters_struct.max_frame_size; #ifdef DEBUG printf(KYEL "----- Crypto_TM_ProcessSecurity END -----\n" RESET); @@ -1608,15 +1608,15 @@ void Crypto_TM_Process_Debug_Print(uint16_t byte_idx, uint16_t pdu_len, Security #ifdef TM_DEBUG printf(KYEL "Index / data location starts at: %d\n" RESET, byte_idx); printf(KYEL "Data size is: %d\n" RESET, pdu_len); - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { // If OCF exists, comes immediately after MAC printf(KYEL "OCF Location is: %d\n" RESET, byte_idx + pdu_len + sa_ptr->stmacf_len); } - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { // If FECF exists, comes just before end of the frame - printf(KYEL "FECF Location is: %d\n" RESET, current_managed_parameters_struct.max_frame_size - 2); + printf(KYEL "FECF Location is: %d\n" RESET, tm_current_managed_parameters_struct.max_frame_size - 2); } #endif } @@ -1706,7 +1706,7 @@ int32_t Crypto_TM_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8_ } #endif - if (current_managed_parameters_struct.max_frame_size <= byte_idx - sa_ptr->stmacf_len) + if (tm_current_managed_parameters_struct.max_frame_size <= byte_idx - sa_ptr->stmacf_len) { status = CRYPTO_LIB_ERR_TM_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1714,7 +1714,7 @@ int32_t Crypto_TM_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8_ } // Received the wrong amount of bytes from mandated frame size - if (len_ingest < current_managed_parameters_struct.max_frame_size) + if (len_ingest < tm_current_managed_parameters_struct.max_frame_size) { status = CRYPTO_LIB_ERR_TM_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1771,7 +1771,7 @@ int32_t Crypto_TM_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8_ // NOTE: This size itself is not the length for authentication Crypto_TM_Calc_PDU_MAC(&pdu_len, byte_idx, sa_ptr, &mac_loc); - if (current_managed_parameters_struct.max_frame_size < pdu_len) + if (tm_current_managed_parameters_struct.max_frame_size < pdu_len) { status = CRYPTO_LIB_ERR_TM_FRAME_LENGTH_UNDERFLOW; mc_if->mc_log(status); @@ -1813,7 +1813,7 @@ int32_t Crypto_TM_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8_ void Crypto_TM_Print_CLCW(uint8_t *p_ingest, uint16_t byte_idx, uint16_t pdu_len, SecurityAssociation_t *sa_ptr) { - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { byte_idx += (pdu_len + sa_ptr->stmacf_len); Telemetry_Frame_Ocf_Clcw_t clcw; @@ -2019,10 +2019,10 @@ int32_t Crypto_TM_FECF_Validate(uint8_t *p_ingest, uint16_t len_ingest, Security { int32_t status = CRYPTO_LIB_SUCCESS; - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { - uint16_t received_fecf = (((p_ingest[current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | - (p_ingest[current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); + uint16_t received_fecf = (((p_ingest[tm_current_managed_parameters_struct.max_frame_size - 2] << 8) & 0xFF00) | + (p_ingest[tm_current_managed_parameters_struct.max_frame_size - 1] & 0x00FF)); if (crypto_config.crypto_check_fecf == TM_CHECK_FECF_TRUE) { @@ -2043,12 +2043,12 @@ int32_t Crypto_TM_FECF_Validate(uint8_t *p_ingest, uint16_t len_ingest, Security } } } - else if (current_managed_parameters_struct.has_fecf != TM_NO_FECF) + else if (tm_current_managed_parameters_struct.has_fecf != TM_NO_FECF) { #ifdef TM_DEBUG printf(KRED "TM_Process Error...tfvn: %d scid: 0x%04X vcid: 0x%02X fecf_enum: %d\n" RESET, - current_managed_parameters_struct.tfvn, current_managed_parameters_struct.scid, - current_managed_parameters_struct.vcid, current_managed_parameters_struct.has_fecf); + tm_current_managed_parameters_struct.tfvn, tm_current_managed_parameters_struct.scid, + tm_current_managed_parameters_struct.vcid, tm_current_managed_parameters_struct.has_fecf); #endif status = CRYPTO_LIB_ERR_TC_ENUM_USED_FOR_TM_CONFIG; mc_if->mc_log(status); diff --git a/src/sa/internal/sa_interface_inmemory.template.c b/src/sa/internal/sa_interface_inmemory.template.c index 3cc32c26..e3f924de 100644 --- a/src/sa/internal/sa_interface_inmemory.template.c +++ b/src/sa/internal/sa_interface_inmemory.template.c @@ -1024,7 +1024,7 @@ static int32_t sa_start(TC_t *tc_frame) gvcid.vcid = (((sdls_frame.tlv_pdu.data[count + 2] & 0x0F) << 2) | (sdls_frame.tlv_pdu.data[count + 3] & 0xC0) >> 6); - if (current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) + if (tc_current_managed_parameters_struct.has_segmentation_hdr == TC_HAS_SEGMENT_HDRS) { gvcid.mapid = (sdls_frame.tlv_pdu.data[count + 3] & 0x3F); } diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index bf8fa0d5..5b1c27a8 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -32,6 +32,8 @@ static volatile uint8_t tc_vcid = CRYPTO_STANDALONE_FRAMING_VCID; static volatile uint8_t tc_debug = 1; static volatile uint8_t tm_debug = 0; +#define DYNAMIC_LENGTHS 1 + /* ** Functions */ @@ -177,7 +179,7 @@ int32_t crypto_standalone_process_command(int32_t cc, int32_t num_tokens, char * } else { - printf("Error - virtual channl (VCID) %d must be less than 64! Sticking with prior vcid %d \n", + printf("Error - virtual channel (VCID) %d must be less than 64! Sticking with prior vcid %d \n", vcid, tc_vcid); } } @@ -368,7 +370,28 @@ int32_t crypto_reset(void) void crypto_standalone_tc_frame(uint8_t *in_data, uint16_t in_length, uint8_t *out_data, uint16_t *out_length) { /* TC Length */ - *out_length = (uint16_t)CRYPTO_STANDALONE_FRAMING_TC_DATA_LEN + 6; + if (DYNAMIC_LENGTHS) + { + uint8_t segment_hdr_len = tc_current_managed_parameters_struct.has_segmentation_hdr ? 1 : 0; + uint8_t fecf_len = tc_current_managed_parameters_struct.has_fecf ? 2 : 0; + + SecurityAssociation_t *sa_ptr; + sa_if->sa_get_from_spi(tc_vcid, &sa_ptr); + + *out_length = TC_FRAME_HEADER_SIZE + + segment_hdr_len + + sa_ptr->arsn_len + + sa_ptr->shivf_len + + sa_ptr->shplf_len + + sa_ptr->shsnf_len + + in_length + + sa_ptr->stmacf_len + + fecf_len; + } + else + { + *out_length = CRYPTO_STANDALONE_FRAMING_TC_DATA_LEN + 6; + } /* TC Header */ out_data[0] = 0x20; @@ -378,7 +401,7 @@ void crypto_standalone_tc_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o out_data[4] = tc_seq_num++; /* Segement Header */ - out_data[5] = 0x00; + out_data[5] = 0xC0; /* SDLS Header */ @@ -401,7 +424,7 @@ void *crypto_standalone_tc_apply(void *socks) uint16_t tc_out_len = 0; #ifdef CRYPTO_STANDALONE_HANDLE_FRAMING - uint8_t tc_framed[TC_MAX_FRAME_SIZE]; + uint8_t tc_framed[TC_MAX_FRAME_SIZE] = {0}; #endif int sockaddr_size = sizeof(struct sockaddr_in); @@ -473,6 +496,7 @@ void *crypto_standalone_tc_apply(void *socks) /* Reset */ memset(tc_apply_in, 0x00, sizeof(tc_apply_in)); + memset(tc_framed, 0x00, sizeof(tc_framed)); tc_in_len = 0; tc_out_len = 0; if (!tc_out_ptr) @@ -510,11 +534,11 @@ void crypto_standalone_tm_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o uint8_t header_length = TM_PRI_HDR_LENGTH + SDLS_SPI_LENGTH + sa_ptr->shivf_len + sa_ptr->shplf_len + sa_ptr->shsnf_len; // TODO: Why +40? uint8_t trailer_length = sa_ptr->stmacf_len; - if (current_managed_parameters_struct.has_fecf == TM_HAS_FECF) + if (tm_current_managed_parameters_struct.has_fecf == TM_HAS_FECF) { trailer_length += 2; } - if (current_managed_parameters_struct.has_ocf == TM_HAS_OCF) + if (tm_current_managed_parameters_struct.has_ocf == TM_HAS_OCF) { trailer_length += 4; } @@ -563,7 +587,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && (tm_ptr[1] == 0xff)) || - (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD)) + (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD) || (tm_ptr[0] == 0x1F && tm_ptr[1] == 0xFD)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG @@ -574,6 +598,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin } printf("\n"); #endif + // Send all SPP telemetry packets // 0x09 for HK/Device TLM Packets (Generic Components) if (tm_ptr[0] == 0x08 || tm_ptr[0] == 0x09 || (tm_ptr[0] == 0x0f && tm_ptr[1] == 0xfd)) @@ -602,7 +627,8 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin tm_process_len = tm_process_len - spp_len; } else if ((tm_ptr[0] == 0xFF && tm_ptr[1] == 0x48) || (tm_ptr[0] == 0x00 && tm_ptr[1] == 0x00) || - (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF)) + (tm_ptr[0] == 0x02 && tm_ptr[1] == 0x00) || (tm_ptr[0] == 0xFF && tm_ptr[1] == 0xFF) || + (tm_ptr[0] == 0x1F && tm_ptr[1] == 0xFE)) { // TODO: Why 0x0200? // Idle Frame @@ -680,7 +706,7 @@ void *crypto_standalone_tm_process(void *socks) { if (tm_debug == 1) { - if ((tm_ptr[4] == 0x07) && (tm_ptr[5] == 0xFE)) + if ((tm_ptr[4] == 0x07) && (tm_ptr[5] == 0xFF)) { // OID Frame } diff --git a/test/unit/ut_aos_apply.c b/test/unit/ut_aos_apply.c index 6170d21d..b35093c3 100644 --- a/test/unit/ut_aos_apply.c +++ b/test/unit/ut_aos_apply.c @@ -268,7 +268,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF) char *error_enum = Crypto_Get_Error_Code_Enum_String(status); ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is what we expect (updated SPI and FECF) - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -407,7 +407,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FECF_LEFT_BLANK) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -545,7 +545,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_FECF) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -685,7 +685,7 @@ UTEST(AOS_APPLY, HAPPY_PATH_CLEAR_FHEC_OID_FECF) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t)truth_aos_b[i]); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -827,7 +827,7 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_1) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is what we expect (updated SPI and FECF) - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -974,7 +974,7 @@ UTEST(AOS_APPLY, AES_CMAC_256_TEST_BITMASK_0) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is what we expect (updated SPI and FECF) - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("%d: Checking %02x against %02X\n", i, (uint8_t)test_aos_b[i], (uint8_t)truth_aos_b[i]); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t)truth_aos_b[i]); @@ -1115,7 +1115,7 @@ UTEST(AOS_APPLY, AES_GCM) ASSERT_STREQ("CRYPTO_LIB_SUCCESS", error_enum); // Now, byte by byte verify the static frame in memory is what we expect (updated SPI and FECF) - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); @@ -1274,7 +1274,7 @@ UTEST(AOS_APPLY, AOS_KEY_STATE_TEST) ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is what we expect (updated SPI and FECF) - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)test_aos_b[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)test_aos_b[i], (uint8_t) * (truth_aos_b + i)); diff --git a/test/unit/ut_aos_process.c b/test/unit/ut_aos_process.c index 63031d89..9780af68 100644 --- a/test/unit/ut_aos_process.c +++ b/test/unit/ut_aos_process.c @@ -296,9 +296,9 @@ UTEST(AOS_PROCESS, HAPPY_PATH_CLEAR_FECF) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -354,7 +354,7 @@ UTEST(AOS_PROCESS, HAPPY_PATH_CLEAR_FECF) // aos_frame_pri_hdr.vcid, // gvcid_managed_parameters, ¤t_managed_parameters); // // Now, byte by byte verify the static frame in memory is equivalent to what we started with -// for(int i=0; i < current_managed_parameters_struct.max_frame_size; i++) +// for(int i=0; i < aos_current_managed_parameters_struct.max_frame_size; i++) // { // // printf("Checking %02x against %02X\n", aos_frame[i], (uint8_t)*(truth_aos_b + i)); // ASSERT_EQ(ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); @@ -488,9 +488,9 @@ UTEST(AOS_PROCESS, INSERT_ZONE_PRESENT_PLAINTEXT) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t)truth_aos_b[i]); @@ -632,9 +632,9 @@ UTEST(AOS_PROCESS, AES_CMAC_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -785,9 +785,9 @@ UTEST(AOS_PROCESS, AES_CMAC_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -935,9 +935,9 @@ UTEST(AOS_PROCESS, AES_HMAC_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -1087,9 +1087,9 @@ UTEST(AOS_PROCESS, AES_HMAC_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -1237,9 +1237,9 @@ UTEST(AOS_PROCESS, AES_HMAC_512_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -1387,9 +1387,9 @@ UTEST(AOS_PROCESS, AES_HMAC_512_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); @@ -1514,7 +1514,7 @@ UTEST(AOS_PROCESS, AES_GCM_DEC_ONLY) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Expose/setup SAs for testing SecurityAssociation_t ta; @@ -1730,9 +1730,9 @@ UTEST(AOS_PROCESS, AEAD_GCM_BITMASK_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(aos_frame_pri_hdr.tfvn, aos_frame_pri_hdr.scid, aos_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &aos_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < aos_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_aos_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_aos_b + i)); diff --git a/test/unit/ut_tm_apply.c b/test/unit/ut_tm_apply.c index 9f25d7a7..67297bb0 100644 --- a/test/unit/ut_tm_apply.c +++ b/test/unit/ut_tm_apply.c @@ -278,13 +278,13 @@ UTEST(TM_APPLY_SECURITY, HAPPY_PATH_CLEAR_FECF) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { printf("Checking %02x against %02X\n", (uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -430,13 +430,13 @@ UTEST(TM_APPLY_SECURITY, HAPPY_PATH_CLEAR_FECF_LEFT_BLANK) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -569,13 +569,13 @@ UTEST(TM_APPLY_SECURITY, SECONDARY_HDR_PRESENT_PLAINTEXT) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -723,13 +723,13 @@ UTEST(TM_APPLY_SECURITY, SECONDARY_HDR_PRESENT_MAC) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -886,7 +886,7 @@ UTEST(TM_APPLY_SECURITY, AES_CMAC_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); @@ -896,7 +896,7 @@ UTEST(TM_APPLY_SECURITY, AES_CMAC_256_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { printf("Index %d: Checking %02x against %02X\n", i, (uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -1061,7 +1061,7 @@ UTEST(TM_APPLY_SECURITY, AES_CMAC_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1074,7 +1074,7 @@ UTEST(TM_APPLY_SECURITY, AES_CMAC_256_TEST_1) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Index %d: Checking %02x against %02X\n", i, (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -1231,7 +1231,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); @@ -1241,7 +1241,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_256_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Index %d: Checking %02x against %02X\n", i, (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -1399,7 +1399,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); @@ -1409,7 +1409,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_256_TEST_1) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Index %d: Checking %02x against %02X\n", i, (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); @@ -1569,7 +1569,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_512_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1582,7 +1582,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_512_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { if (framed_tm_b[i] != truth_tm_b[i]) { @@ -1746,7 +1746,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_512_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); status = Crypto_TM_ApplySecurity((uint8_t *)framed_tm_b, framed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); @@ -1756,7 +1756,7 @@ UTEST(TM_APPLY_ENC_VAL, AES_HMAC_SHA_512_TEST_1) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Index %d: Checking %02x against %02X\n", i, (uint8_t)framed_tm_b[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)framed_tm_b[i], (uint8_t) * (truth_tm_b + i)); diff --git a/test/unit/ut_tm_process.c b/test/unit/ut_tm_process.c index 10350f12..076fc96d 100644 --- a/test/unit/ut_tm_process.c +++ b/test/unit/ut_tm_process.c @@ -308,9 +308,9 @@ UTEST(TM_PROCESS_SECURITY, HAPPY_PATH_CLEAR_FECF) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", (uint8_t)ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ((uint8_t)ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -462,9 +462,9 @@ UTEST(TM_PROCESS_SECURITY, SECONDARY_HDR_PRESENT_PLAINTEXT) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", tm_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -630,7 +630,7 @@ UTEST(TM_PROCESS_SECURITY, SECONDARY_HDR_PRESENT_MAC) status = Crypto_TM_ProcessSecurity((uint8_t *)framed_tm_b, framed_tm_len, &ptr_processed_frame, &processed_tm_len); ASSERT_EQ(CRYPTO_LIB_SUCCESS, status); // Now, byte by byte verify the static frame in memory is equivalent to what we started with - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -789,7 +789,7 @@ UTEST(TM_PROCESS_SECURITY, AES_CMAC_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -805,7 +805,7 @@ UTEST(TM_PROCESS_SECURITY, AES_CMAC_256_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -967,7 +967,7 @@ UTEST(TM_PROCESS_SECURITY, AES_CMAC_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -983,7 +983,7 @@ UTEST(TM_PROCESS_SECURITY, AES_CMAC_256_TEST_1) // 2) SPI is zeroed // 3) MAC is zeroed // 4) FECF is zeroed - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -1143,7 +1143,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_256_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1159,7 +1159,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_256_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -1319,7 +1319,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_256_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1335,7 +1335,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_256_TEST_1) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -1498,7 +1498,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_512_TEST_0) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1514,7 +1514,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_512_TEST_0) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -1677,7 +1677,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_512_TEST_1) // Determine managed parameters by GVCID, which nominally happens in TO status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Determine security association by GVCID, which nominally happens in TO // status = sa_if->sa_get_operational_sa_from_gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, // tm_frame_pri_hdr.vcid, map_id, &sa_ptr); @@ -1693,7 +1693,7 @@ UTEST(TM_PROCESS_ENC_VAL, AES_HMAC_SHA_512_TEST_1) // 2) SPI is set correctly // 3) MAC is calculated and placed correctly // 4) FECF is re-calculated and updated - for (int i = 0; i < current_managed_parameters_struct.max_frame_size; i++) + for (int i = 0; i < tm_current_managed_parameters_struct.max_frame_size; i++) { // printf("Checking %02x against %02X\n", ptr_processed_frame[i], (uint8_t)*(truth_tm_b + i)); ASSERT_EQ(ptr_processed_frame[i], (uint8_t) * (truth_tm_b + i)); @@ -1981,7 +1981,7 @@ UTEST(TM_PROCESS_ENC_VAL, AEAD_AES_GCM_BITMASK_1) // Determine managed parameters by GVCID, which nominally happens in TO // status = // Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - // gvcid_managed_parameters_array, ¤t_managed_parameters_struct); + // gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); // Expose/setup SAs for testing SecurityAssociation_t ta; From dceae60eda571b6b5f729f634c5daca9a6170f5d Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Wed, 25 Jun 2025 15:32:50 +0000 Subject: [PATCH 18/20] [nasa/cryptolib#475] Update version, add quick memtest comment --- CMakeLists.txt | 2 ++ include/crypto.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac28ef13..ef69682f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,8 @@ cmake_minimum_required(VERSION 3.14.0) project(crypto C) +#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") + # # CUSTOM PATH Definiton # diff --git a/include/crypto.h b/include/crypto.h index fce23efe..298640c1 100644 --- a/include/crypto.h +++ b/include/crypto.h @@ -49,7 +49,7 @@ ** Crypto Version */ #define CRYPTO_LIB_MAJOR_VERSION 1 -#define CRYPTO_LIB_MINOR_VERSION 3 +#define CRYPTO_LIB_MINOR_VERSION 4 #define CRYPTO_LIB_REVISION 1 #define CRYPTO_LIB_MISSION_REV 0 From 8e3452ed9e232a18edcf0af1512dc6da97c985fb Mon Sep 17 00:00:00 2001 From: Donnie-Ice <77851621+Donnie-Ice@users.noreply.github.com> Date: Wed, 25 Jun 2025 18:28:47 +0000 Subject: [PATCH 19/20] style: auto-format via clang-format --- include/crypto.h | 6 +++--- src/core/crypto_aos.c | 10 ++++++---- src/core/crypto_config.c | 12 ++++++------ src/core/crypto_tm.c | 13 +++++++------ support/standalone/standalone.c | 15 ++++----------- test/unit/ut_tm_process.c | 3 ++- 6 files changed, 28 insertions(+), 31 deletions(-) diff --git a/include/crypto.h b/include/crypto.h index 298640c1..1e5ccd51 100644 --- a/include/crypto.h +++ b/include/crypto.h @@ -329,9 +329,9 @@ extern CamConfig_t *cam_config; extern GvcidManagedParameters_t *gvcid_managed_parameters; extern GvcidManagedParameters_t *current_managed_parameters; extern GvcidManagedParameters_t gvcid_managed_parameters_array[GVCID_MAX_PARAM_SIZE]; -extern GvcidManagedParameters_t tc_current_managed_parameters_struct; -extern GvcidManagedParameters_t tm_current_managed_parameters_struct; -extern GvcidManagedParameters_t aos_current_managed_parameters_struct; +extern GvcidManagedParameters_t tc_current_managed_parameters_struct; +extern GvcidManagedParameters_t tm_current_managed_parameters_struct; +extern GvcidManagedParameters_t aos_current_managed_parameters_struct; extern int gvcid_counter; extern KeyInterface key_if; extern McInterface mc_if; diff --git a/src/core/crypto_aos.c b/src/core/crypto_aos.c index 000864c3..dc52b9d7 100644 --- a/src/core/crypto_aos.c +++ b/src/core/crypto_aos.c @@ -131,8 +131,8 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) return status; } - if ((len_ingest < aos_current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && - (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) + if ((len_ingest < aos_current_managed_parameters_struct.max_frame_size) && + (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) { status = CRYPTO_LIB_ERR_AOS_FL_LT_MAX_FRAME_SIZE; mc_if->mc_log(status); @@ -280,7 +280,8 @@ int32_t Crypto_AOS_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) // Section 4.1.3.2.3 - All bits of the Insert Zone shall be set by the sending end // Based on the managed parameter configuration, we're not modifying the Insert Zone contents #ifdef AOS_DEBUG - printf(KYEL "Insert Zone present with length %d octets\n" RESET, aos_current_managed_parameters_struct.aos_iz_len); + printf(KYEL "Insert Zone present with length %d octets\n" RESET, + aos_current_managed_parameters_struct.aos_iz_len); #endif idx += aos_current_managed_parameters_struct.aos_iz_len; @@ -927,7 +928,8 @@ int32_t Crypto_AOS_ProcessSecurity(uint8_t *p_ingest, uint16_t len_ingest, uint8 // Section 4.1.3.2.3 - All bits of the Insert Zone shall be set by the sending end // Based on the managed parameter configuration, we're not modifying the Insert Zone contents #ifdef AOS_DEBUG - printf(KYEL "Insert Zone present with length %d octets\n" RESET, aos_current_managed_parameters_struct.aos_iz_len); + printf(KYEL "Insert Zone present with length %d octets\n" RESET, + aos_current_managed_parameters_struct.aos_iz_len); #endif byte_idx += aos_current_managed_parameters_struct.aos_iz_len; diff --git a/src/core/crypto_config.c b/src/core/crypto_config.c index a40aa797..1c0131be 100644 --- a/src/core/crypto_config.c +++ b/src/core/crypto_config.c @@ -45,10 +45,10 @@ CryptographyKmcCryptoServiceConfig_t *cryptography_kmc_crypto_config = NULL; CamConfig_t *cam_config = NULL; GvcidManagedParameters_t gvcid_managed_parameters_array[GVCID_MAN_PARAM_SIZE]; -int gvcid_counter = 0; -GvcidManagedParameters_t gvcid_null_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -GvcidManagedParameters_t tc_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -GvcidManagedParameters_t tm_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +int gvcid_counter = 0; +GvcidManagedParameters_t gvcid_null_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +GvcidManagedParameters_t tc_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +GvcidManagedParameters_t tm_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; GvcidManagedParameters_t aos_current_managed_parameters_struct = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // GvcidManagedParameters_t* gvcid_managed_parameters = NULL; @@ -396,8 +396,8 @@ int32_t Crypto_Shutdown(void) int32_t status = CRYPTO_LIB_SUCCESS; // current_managed_parameters = NULL; - tc_current_managed_parameters_struct = gvcid_null_struct; - tm_current_managed_parameters_struct = gvcid_null_struct; + tc_current_managed_parameters_struct = gvcid_null_struct; + tm_current_managed_parameters_struct = gvcid_null_struct; aos_current_managed_parameters_struct = gvcid_null_struct; for (int i = 0; i <= gvcid_counter; i++) { diff --git a/src/core/crypto_tm.c b/src/core/crypto_tm.c index 6bdd3957..e8e22b26 100644 --- a/src/core/crypto_tm.c +++ b/src/core/crypto_tm.c @@ -687,7 +687,8 @@ int32_t Crypto_TM_Do_Encrypt(uint8_t sa_service_type, SecurityAssociation_t *sa_ { *new_fecf = Crypto_Calc_FECF((uint8_t *)pTfBuffer, tm_current_managed_parameters_struct.max_frame_size - 2); - pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 2] = (uint8_t)((*new_fecf & 0xFF00) >> 8); + pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 2] = + (uint8_t)((*new_fecf & 0xFF00) >> 8); pTfBuffer[tm_current_managed_parameters_struct.max_frame_size - 1] = (uint8_t)(*new_fecf & 0x00FF); } else // CRYPTO_TC_CREATE_FECF_FALSE @@ -845,8 +846,8 @@ int32_t Crypto_TM_ApplySecurity(uint8_t *pTfBuffer, uint16_t len_ingest) return status; } - if ((len_ingest < tm_current_managed_parameters_struct.max_frame_size) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && - (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) + if ((len_ingest < tm_current_managed_parameters_struct.max_frame_size) && + (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC) && (sa_ptr->ecs != CRYPTO_CIPHER_AES256_CBC_MAC)) { status = CRYPTO_LIB_ERR_TM_FL_LT_MAX_FRAME_SIZE; mc_if->mc_log(status); @@ -1106,9 +1107,9 @@ int32_t Crypto_TM_Process_Setup(uint16_t len_ingest, uint16_t *byte_idx, uint8_t // Lookup-retrieve managed parameters for frame via gvcid: if (status == CRYPTO_LIB_SUCCESS) { - status = - Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); + status = Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, + tm_frame_pri_hdr.vcid, gvcid_managed_parameters_array, + &tm_current_managed_parameters_struct); } if (status != CRYPTO_LIB_SUCCESS) diff --git a/support/standalone/standalone.c b/support/standalone/standalone.c index 5b1c27a8..c9f179b8 100644 --- a/support/standalone/standalone.c +++ b/support/standalone/standalone.c @@ -373,20 +373,13 @@ void crypto_standalone_tc_frame(uint8_t *in_data, uint16_t in_length, uint8_t *o if (DYNAMIC_LENGTHS) { uint8_t segment_hdr_len = tc_current_managed_parameters_struct.has_segmentation_hdr ? 1 : 0; - uint8_t fecf_len = tc_current_managed_parameters_struct.has_fecf ? 2 : 0; + uint8_t fecf_len = tc_current_managed_parameters_struct.has_fecf ? 2 : 0; SecurityAssociation_t *sa_ptr; sa_if->sa_get_from_spi(tc_vcid, &sa_ptr); - *out_length = TC_FRAME_HEADER_SIZE + - segment_hdr_len + - sa_ptr->arsn_len + - sa_ptr->shivf_len + - sa_ptr->shplf_len + - sa_ptr->shsnf_len + - in_length + - sa_ptr->stmacf_len + - fecf_len; + *out_length = TC_FRAME_HEADER_SIZE + segment_hdr_len + sa_ptr->arsn_len + sa_ptr->shivf_len + + sa_ptr->shplf_len + sa_ptr->shsnf_len + in_length + sa_ptr->stmacf_len + fecf_len; } else { @@ -587,7 +580,7 @@ void crypto_standalone_spp_telem_or_idle(int32_t *status_p, uint8_t *tm_ptr, uin udp_info_t *tm_write_sock = &tm_socks->write; if ((tm_ptr[0] == 0x08) || (tm_ptr[0] == 0x09) || ((tm_ptr[0] == 0x07) && (tm_ptr[1] == 0xff)) || - (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD) || (tm_ptr[0] == 0x1F && tm_ptr[1] == 0xFD)) + (tm_ptr[0] == 0x0F && tm_ptr[1] == 0xFD) || (tm_ptr[0] == 0x1F && tm_ptr[1] == 0xFD)) { spp_len = (((0xFFFF & tm_ptr[4]) << 8) | tm_ptr[5]) + 7; #ifdef CRYPTO_STANDALONE_TM_PROCESS_DEBUG diff --git a/test/unit/ut_tm_process.c b/test/unit/ut_tm_process.c index 2904fd03..2e0aaf33 100644 --- a/test/unit/ut_tm_process.c +++ b/test/unit/ut_tm_process.c @@ -1982,7 +1982,8 @@ UTEST(TM_PROCESS_ENC_VAL, AEAD_AES_GCM_BITMASK_1) // Determine managed parameters by GVCID, which nominally happens in TO // status = // Crypto_Get_Managed_Parameters_For_Gvcid(tm_frame_pri_hdr.tfvn, tm_frame_pri_hdr.scid, tm_frame_pri_hdr.vcid, - // gvcid_managed_parameters_array, &tm_current_managed_parameters_struct); + // gvcid_managed_parameters_array, + // &tm_current_managed_parameters_struct); // Expose/setup SAs for testing SecurityAssociation_t ta; From c7d0a410d2d78f5eec7cc5c08c237c0942796d71 Mon Sep 17 00:00:00 2001 From: Donnie-Ice Date: Wed, 25 Jun 2025 19:39:00 +0000 Subject: [PATCH 20/20] [nasa/cryptolib#475] Removed ifs that are always true --- .../mariadb/sa_interface_mariadb.template.c | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/sa/mariadb/sa_interface_mariadb.template.c b/src/sa/mariadb/sa_interface_mariadb.template.c index e88a7d5e..8e7d555c 100644 --- a/src/sa/mariadb/sa_interface_mariadb.template.c +++ b/src/sa/mariadb/sa_interface_mariadb.template.c @@ -216,27 +216,15 @@ static int32_t sa_save_sa(SecurityAssociation_t *sa) char update_sa_query[2048]; char *iv_h = malloc(sa->iv_len * 2 + 1); - if (sa->iv != NULL) - { - convert_byte_array_to_hexstring(sa->iv, sa->iv_len, iv_h); - } + convert_byte_array_to_hexstring(sa->iv, sa->iv_len, iv_h); char *arsn_h = malloc(sa->arsn_len * 2 + 1); convert_byte_array_to_hexstring(sa->arsn, sa->arsn_len, arsn_h); - if (sa->iv != NULL) - { - snprintf(update_sa_query, sizeof(update_sa_query), SQL_SADB_UPDATE_IV_ARC_BY_SPI, iv_h, arsn_h, sa->spi, - sa->gvcid_blk.tfvn, sa->gvcid_blk.scid, sa->gvcid_blk.vcid, sa->gvcid_blk.mapid); + snprintf(update_sa_query, sizeof(update_sa_query), SQL_SADB_UPDATE_IV_ARC_BY_SPI, iv_h, arsn_h, sa->spi, + sa->gvcid_blk.tfvn, sa->gvcid_blk.scid, sa->gvcid_blk.vcid, sa->gvcid_blk.mapid); - free(iv_h); - } - else - { - snprintf(update_sa_query, sizeof(update_sa_query), SQL_SADB_UPDATE_IV_ARC_BY_SPI_NULL_IV, arsn_h, sa->spi, - sa->gvcid_blk.tfvn, sa->gvcid_blk.scid, sa->gvcid_blk.vcid, sa->gvcid_blk.mapid); - free(iv_h); - } + free(iv_h); free(arsn_h); #ifdef SA_DEBUG