Skip to content

Commit

Permalink
Release 1.2.1;
Browse files Browse the repository at this point in the history
  • Loading branch information
jlucas9 committed Mar 29, 2023
2 parents 72f4ff5 + e445033 commit 6fc49f5
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 77 deletions.
4 changes: 2 additions & 2 deletions include/crypto.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
** Crypto Version
*/
#define CRYPTO_LIB_MAJOR_VERSION 1
#define CRYPTO_LIB_MINOR_VERSION 0
#define CRYPTO_LIB_REVISION 3
#define CRYPTO_LIB_MINOR_VERSION 2
#define CRYPTO_LIB_REVISION 1
#define CRYPTO_LIB_MISSION_REV 0

/*
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ if(MYSQL)
target_link_libraries(Crypto ${MYSQL_LIBS})
endif()

set_target_properties(Crypto PROPERTIES PUBLIC_HEADER "../include/crypto.h;../include/crypto_config_structs.h;../include/crypto_error.h;../include/crypto_print.h;../include/crypto_structs.h;")
set_target_properties(Crypto PROPERTIES PUBLIC_HEADER "../include/crypto.h;../include/crypto_config_structs.h;../include/crypto_error.h;../include/crypto_print.h;../include/crypto_structs.h;../include/crypto_config.h;")

add_custom_command(TARGET Crypto POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:Crypto> ${PROJECT_BINARY_DIR}/lib/libCrypto.so
Expand Down
148 changes: 74 additions & 74 deletions util/src_util/et_dt_validation.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,79 +140,79 @@ void python_auth_encryption(char* data, char* key, char* iv, char* header, char*
*the generated tag and cipher text that is generated by the Crypto_TC_ApplySecurity(const uint8_t* p_in_frame, const
*uint16_t in_frame_length, uint8_t** pp_in_frame, uint16_t* p_enc_frame_len) function, as well as the FECF.
**/
UTEST(ET_VALIDATION, AUTH_ENCRYPTION_TEST)
{
// Setup & Initialize CryptoLib
Crypto_Init_Unit_Test();
SadbRoutine sadb_routine = get_sadb_routine_inmemory();

uint8_t* expected = NULL;
long expected_length = 0;

char* activate_sa4_h = "2003002000ff000100011880d2c9000e197f0b001b0004000400003040d95ecbc2";
char* enc_test_ping_h = "2003041600ff1880d2ca0008197f0b0031000039c5082d";
char* previous_iv_h = "";

uint8_t* activate_sa4_b, *enc_test_ping_b, *buffer_previous_iv_b = NULL;
int activate_sa4_len, enc_test_ping_len = 0;

buffer_previous_iv_b = buffer_previous_iv_b;
previous_iv_h = previous_iv_h;

hex_conversion(activate_sa4_h, (char**) &activate_sa4_b, &activate_sa4_len);
hex_conversion(enc_test_ping_h, (char**) &enc_test_ping_b, &enc_test_ping_len);
SecurityAssociation_t* test_association = NULL;
test_association = malloc(sizeof(SecurityAssociation_t) * sizeof(uint8_t));

uint8_t* ptr_enc_frame = NULL;
uint16_t enc_frame_len = 0;
int32_t return_val = -1;
TC_t* tc_sdls_processed_frame;
tc_sdls_processed_frame = malloc(sizeof(uint8_t) * TC_SIZE);
memset(tc_sdls_processed_frame, 0, (sizeof(uint8_t) * TC_SIZE));
// Default SA
// Expose SA 1 for testing
sadb_routine->sadb_get_sa_from_spi(1, &test_association);
test_association->ecs = calloc(1, test_association->ecs_len * sizeof(uint8_t));
*test_association->ecs = CRYPTO_CIPHER_NONE;
// Ensure that Process Security can activate SA 4
return_val = Crypto_TC_ProcessSecurity(activate_sa4_b, &activate_sa4_len, tc_sdls_processed_frame);
//printf("Verifying TC_Process Return Value\n");
ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
// Deactive SA 1
test_association->sa_state = SA_NONE;
// Expose SA 4 for testing
sadb_routine->sadb_get_sa_from_spi(4, &test_association);
test_association->arsn_len = 0;
test_association->gvcid_tc_blk.vcid = 1;
test_association->iv[11] = 1;
test_association->ast = 1;
test_association->est = 1;
test_association->sa_state = SA_OPERATIONAL;
test_association->ecs = calloc(1, test_association->ecs_len * sizeof(uint8_t));
*test_association->ecs = CRYPTO_CIPHER_AES256_GCM;
return_val = Crypto_TC_ApplySecurity(enc_test_ping_b, enc_test_ping_len, &ptr_enc_frame, &enc_frame_len);
ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
// Get Truth Baseline
python_auth_encryption("1880d2ca0008197f0b0031000039c5",
"FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210",
"000000000000000000000001", "2003043400FF0004", "00", &expected, &expected_length);

for (int i = 0; i < expected_length; i++)
{
//printf("[%d]: %02x -> %02x \n", i, expected[i], ptr_enc_frame[i]);
ASSERT_EQ(expected[i], ptr_enc_frame[i]);
}
Crypto_Shutdown();
// sadb_routine->sadb_close();
free(activate_sa4_b);
free(enc_test_ping_b);
free(ptr_enc_frame);
free(expected);
// free(test_association->ecs);
free(tc_sdls_processed_frame);
EndPython();
}
// UTEST(ET_VALIDATION, AUTH_ENCRYPTION_TEST)
// {
// // Setup & Initialize CryptoLib
// Crypto_Init_Unit_Test();
// SadbRoutine sadb_routine = get_sadb_routine_inmemory();

// uint8_t* expected = NULL;
// long expected_length = 0;

// char* activate_sa4_h = "2003002000ff000100011880d2c9000e197f0b001b0004000400003040d95ecbc2";
// char* enc_test_ping_h = "2003041600ff1880d2ca0008197f0b0031000039c5082d";
// char* previous_iv_h = "";

// uint8_t* activate_sa4_b, *enc_test_ping_b, *buffer_previous_iv_b = NULL;
// int activate_sa4_len, enc_test_ping_len = 0;

// buffer_previous_iv_b = buffer_previous_iv_b;
// previous_iv_h = previous_iv_h;

// hex_conversion(activate_sa4_h, (char**) &activate_sa4_b, &activate_sa4_len);
// hex_conversion(enc_test_ping_h, (char**) &enc_test_ping_b, &enc_test_ping_len);
// SecurityAssociation_t* test_association = NULL;
// test_association = malloc(sizeof(SecurityAssociation_t) * sizeof(uint8_t));

// uint8_t* ptr_enc_frame = NULL;
// uint16_t enc_frame_len = 0;
// int32_t return_val = -1;
// TC_t* tc_sdls_processed_frame;
// tc_sdls_processed_frame = malloc(sizeof(uint8_t) * TC_SIZE);
// memset(tc_sdls_processed_frame, 0, (sizeof(uint8_t) * TC_SIZE));
// // Default SA
// // Expose SA 1 for testing
// sadb_routine->sadb_get_sa_from_spi(1, &test_association);
// test_association->ecs = calloc(1, test_association->ecs_len * sizeof(uint8_t));
// *test_association->ecs = CRYPTO_CIPHER_NONE;
// // Ensure that Process Security can activate SA 4
// return_val = Crypto_TC_ProcessSecurity(activate_sa4_b, &activate_sa4_len, tc_sdls_processed_frame);
// //printf("Verifying TC_Process Return Value\n");
// ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
// // Deactive SA 1
// test_association->sa_state = SA_NONE;
// // Expose SA 4 for testing
// sadb_routine->sadb_get_sa_from_spi(4, &test_association);
// test_association->arsn_len = 0;
// test_association->gvcid_tc_blk.vcid = 1;
// test_association->iv[11] = 1;
// test_association->ast = 1;
// test_association->est = 1;
// test_association->sa_state = SA_OPERATIONAL;
// test_association->ecs = calloc(1, test_association->ecs_len * sizeof(uint8_t));
// *test_association->ecs = CRYPTO_CIPHER_AES256_GCM;
// return_val = Crypto_TC_ApplySecurity(enc_test_ping_b, enc_test_ping_len, &ptr_enc_frame, &enc_frame_len);
// ASSERT_EQ(CRYPTO_LIB_SUCCESS, return_val);
// // Get Truth Baseline
// python_auth_encryption("1880d2ca0008197f0b0031000039c5",
// "FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210FEDCBA9876543210",
// "000000000000000000000001", "2003043400FF0004", "00", &expected, &expected_length);

// for (int i = 0; i < expected_length; i++)
// {
// //printf("[%d]: %02x -> %02x \n", i, expected[i], ptr_enc_frame[i]);
// ASSERT_EQ(expected[i], ptr_enc_frame[i]);
// }
// Crypto_Shutdown();
// // sadb_routine->sadb_close();
// free(activate_sa4_b);
// free(enc_test_ping_b);
// free(ptr_enc_frame);
// free(expected);
// // free(test_association->ecs);
// free(tc_sdls_processed_frame);
// EndPython();
// }

/**
* @brief Validation Test: Authorized Decryption
Expand Down Expand Up @@ -2854,4 +2854,4 @@ UTEST(NIST_DEC_HMAC_VALIDATION, SHA_512_SHORT_KEY)
free(tc_sdls_processed_frame);
}

UTEST_MAIN();
UTEST_MAIN();

0 comments on commit 6fc49f5

Please sign in to comment.