Skip to content

Commit 0af10b0

Browse files
committed
[#463] Fix uts after length calc fix
1 parent 7b4cfeb commit 0af10b0

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

src/core/crypto_tc.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,7 +1137,7 @@ int32_t Crypto_TC_ApplySecurity_Cam(const uint8_t *p_in_frame, const uint16_t in
11371137

11381138
// Calculate frame lengths based on SA fields
11391139
*p_enc_frame_len = temp_tc_header.fl + 1 + SPI_LEN + sa_ptr->shivf_len + sa_ptr->shsnf_len + sa_ptr->shplf_len +
1140-
sa_ptr->stmacf_len + ocf_len + fecf_len;
1140+
sa_ptr->stmacf_len + ocf_len;
11411141
new_enc_frame_header_field_length = (*p_enc_frame_len) - 1;
11421142

11431143
// Finalize frame setup
@@ -1326,13 +1326,13 @@ int32_t Crypto_TC_Parse_Check_FECF(uint8_t *ingest, int *len_ingest, TC_t *tc_sd
13261326
// Calculate our own
13271327
uint16_t calculated_fecf = Crypto_Calc_FECF(ingest, *len_ingest - 2);
13281328
// Compare
1329-
if (received_fecf != calculated_fecf)
1330-
{
13311329
#ifdef DEBUG
1332-
printf("Received FECF is 0x%04X\n", received_fecf);
1333-
printf("Calculated FECF is 0x%04X\n", calculated_fecf);
1334-
printf("FECF was Calced over %d bytes\n", *len_ingest - 2);
1330+
printf("Received FECF is 0x%04X\n", received_fecf);
1331+
printf("Calculated FECF is 0x%04X\n", calculated_fecf);
1332+
printf("FECF was Calced over %d bytes\n", *len_ingest - 2);
13351333
#endif
1334+
if (received_fecf != calculated_fecf)
1335+
{
13361336
status = CRYPTO_LIB_ERR_INVALID_FECF;
13371337
mc_if->mc_log(status);
13381338
}

test/unit/ut_aes_gcm_siv.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ UTEST(AES_GCM_SIV, AES_GCM_SIV_256_KEY_32_PT_8_ENC_TEST_1)
7171
TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
7272

7373
GvcidManagedParameters_t TC_0_Managed_Parameters = {
74-
0, 0x0003, 0, TC_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_NO_SEGMENT_HDRS, 1024, TC_OCF_NA, 1};
74+
0, 0x0003, 0, TC_NO_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TC_NO_SEGMENT_HDRS, 1024, TC_OCF_NA, 1};
7575
Crypto_Config_Add_Gvcid_Managed_Parameters(TC_0_Managed_Parameters);
7676

7777
status = Crypto_Init();
@@ -86,7 +86,7 @@ UTEST(AES_GCM_SIV, AES_GCM_SIV_256_KEY_32_PT_8_ENC_TEST_1)
8686
char *buffer_rfc_key_h = "0100000000000000000000000000000000000000000000000000000000000000";
8787
char *buffer_rfc_nonce_h = "030000000000000000000000";
8888
char *buffer_rfc_ct_h = "4fa7a4cb7d3434f8a2855b40016daccb62a454551878fc26";
89-
// 2003002A000009030000000000000000000000C2EF328E5C71C83B00000000000000000000000000000000
89+
9090
uint8_t *buffer_rfc_pt_b, *buffer_rfc_aad_b, *buffer_rfc_key_b, *buffer_rfc_nonce_b, *buffer_rfc_ct_b = NULL;
9191
int buffer_rfc_pt_len, buffer_rfc_aad_len, buffer_rfc_key_len, buffer_rfc_nonce_len, buffer_rfc_ct_len = 0;
9292

@@ -133,7 +133,7 @@ UTEST(AES_GCM_SIV, AES_GCM_SIV_256_KEY_32_PT_8_ENC_TEST_1)
133133
ASSERT_EQ(CRYPTO_LIB_SUCCESS, status);
134134
// Note: For comparison, interested in the TF payload (exclude headers and FECF if present)
135135
// Calc payload index: total length - pt length
136-
uint16_t enc_data_idx = enc_frame_len - buffer_rfc_ct_len - FECF_SIZE;
136+
uint16_t enc_data_idx = enc_frame_len - buffer_rfc_ct_len;
137137

138138
for (int i = 0; i < buffer_rfc_pt_len - 7; i++)
139139
{

test/unit/ut_tc_apply.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -809,8 +809,8 @@ UTEST(TC_APPLY_SECURITY, ENC_CBC_1BP)
809809
int32_t return_val = Crypto_Init();
810810
ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
811811

812-
char *raw_tc_sdls_ping_h = "2003001300" // header
813-
"BBCCBBCCBBCCBBCCBBCCBBCCBBCCBB"; // data
812+
char *raw_tc_sdls_ping_h = "2003001500" // header
813+
"BBCCBBCCBBCCBBCCBBCCBBCCBBCCBB0000"; // data
814814
char *raw_tc_sdls_ping_b = NULL;
815815
int raw_tc_sdls_ping_len = 0;
816816
SaInterface sa_if = get_sa_interface_inmemory();
@@ -893,7 +893,7 @@ UTEST(TC_APPLY_SECURITY, ENC_CBC_16BP)
893893
int32_t return_val = Crypto_Init();
894894
ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
895895

896-
char *raw_tc_sdls_ping_h = "20030015000080d2c70008197f0b0031000000003128";
896+
char *raw_tc_sdls_ping_h = "20030017000080d2c70008197f0b00310000000000003128";
897897
char *raw_tc_sdls_ping_b = NULL;
898898
int raw_tc_sdls_ping_len = 0;
899899
SaInterface sa_if = get_sa_interface_inmemory();
@@ -921,8 +921,7 @@ UTEST(TC_APPLY_SECURITY, ENC_CBC_16BP)
921921
return_val =
922922
Crypto_TC_ApplySecurity((uint8_t *)raw_tc_sdls_ping_b, raw_tc_sdls_ping_len, &ptr_enc_frame, &enc_frame_len);
923923

924-
char *truth_data_h = "200300360000000400000000000000000000000010F67583B4B3E950C4D0FA7FACE905D7F2BE7083ED9A62DB3786F"
925-
"AEDC0669953653FE0";
924+
char *truth_data_h = "200300360000000400000000000000000000000010341FCD0C33C83D836E22CDE670697CD1A53B3279FD57A84861A96C578CB47A6274BA";
926925
uint8_t *truth_data_b = NULL;
927926
int truth_data_l = 0;
928927

@@ -1401,7 +1400,7 @@ UTEST(TC_APPLY_SECURITY, PLAINTEXT_W_ARSN)
14011400
return_val =
14021401
Crypto_TC_ApplySecurity((uint8_t *)raw_tc_sdls_ping_b, raw_tc_sdls_ping_len, &ptr_enc_frame, &enc_frame_len);
14031402

1404-
char *truth_data_h = "2003002B000001000000000000000000000000DEAD1980D2C9000E197F0B001B0004000400003040D95E4E59";
1403+
char *truth_data_h = "20030029000001000000000000000000000000DEAD1980D2C9000E197F0B001B0004000400003040DF99";
14051404
uint8_t *truth_data_b = NULL;
14061405
int truth_data_l = 0;
14071406

0 commit comments

Comments
 (0)