Skip to content
71 changes: 71 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,77 @@ if(NUM_KEYS)
message(STATUS "NUM_KEYS set to: ${NUM_KEYS}")
endif()

#
# Crypto Module Defines
#
if(CRYPTO_LIBGCRYPT)
add_compile_definitions(CRYPTO_MODULE=CRYPTOGRAPHY_TYPE_LIBGCRYPT)
message(STATUS "CRYPTO_MODULE set to: CRYPTOGRAPHY_TYPE_LIBGCRYPT")
elseif(CRYPTO_KMC)
add_compile_definitions(CRYPTO_MODULE=CRYPTOGRAPHY_TYPE_KMCCRYPTO)
message(STATUS "CRYPTO_MODULE set to: CRYPTOGRAPHY_TYPE_KMCCRYPTO")
elseif(CRYPTO_WOLFSSL)
add_compile_definitions(CRYPTO_MODULE=CRYPTOGRAPHY_TYPE_WOLFSSL)
message(STATUS "CRYPTO_MODULE set to: CRYPTOGRAPHY_TYPE_WOLFSSL")
elseif(CRYPTO_CUSTOM)
add_compile_definitions(CRYPTO_MODULE=CRYPTOGRAPHY_TYPE_CUSTOM)
message(STATUS "CRYPTO_MODULE set to: CRYPTOGRAPHY_TYPE_CUSTOM")
else()
message(FATAL_ERROR "CRYPTO_MODULE not set!")
break()
endif()

#
# Key Module Defines
#
if(KEY_INTERNAL)
add_compile_definitions(KEY_MODULE=KEY_TYPE_INTERNAL)
message(STATUS "KEY_MODULE set to: KEY_TYPE_INTERNAL")
elseif(KEY_KMC)
add_compile_definitions(KEY_MODULE=KEY_TYPE_KMC)
message(STATUS "KEY_MODULE set to: KEY_TYPE_KMC")
elseif(KEY_CUSTOM)
add_compile_definitions(KEY_MODULE=KEY_TYPE_CUSTOM)
message(STATUS "KEY_MODULE set to: KEY_TYPE_CUSTOM")
else()
message(FATAL_ERROR "KEY_MODULE not set!")
break()
endif()

#
# MC Module Defines
#
if(MC_INTERNAL)
add_compile_definitions(MC_MODULE=MC_TYPE_INTERNAL)
message(STATUS "MC_MODULE set to: MC_TYPE_INTERNAL")
elseif(MC_CUSTOM)
add_compile_definitions(MC_MODULE=MC_TYPE_CUSTOM)
message(STATUS "MC_MODULE set to: MC_TYPE_CUSTOM")
elseif(MC_DISABLED)
add_compile_definitions(MC_MODULE=MC_TYPE_DISABLED)
message(STATUS "MC_MODULE set to: MC_TYPE_DISABLED")
else()
message(FATAL_ERROR "MC_MODULE not set!")
break()
endif()

#
# SA Module Defines
#
if(SA_INTERNAL)
add_compile_definitions(SA_MODULE=SA_TYPE_INMEMORY)
message(STATUS "SA_MODULE set to: SA_INTERNAL")
elseif(SA_CUSTOM)
add_compile_definitions(SA_MODULE=SA_TYPE_CUSTOM)
message(STATUS "SA_MODULE set to: SA_CUSTOM")
elseif(SA_MARIADB)
add_compile_definitions(SA_MODULE=SA_TYPE_MARIADB)
message(STATUS "SA_MODULE set to: SA_MARIADB")
else()
message(FATAL_ERROR "SA_MODULE not set!")
break()
endif()

#
# Custom Module Paths
#
Expand Down
9 changes: 7 additions & 2 deletions include/crypto.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,15 @@
** Crypto Version
*/
#define CRYPTO_LIB_MAJOR_VERSION 1
#define CRYPTO_LIB_MINOR_VERSION 3
#define CRYPTO_LIB_REVISION 1
#define CRYPTO_LIB_MINOR_VERSION 4
#define CRYPTO_LIB_REVISION 0
#define CRYPTO_LIB_MISSION_REV 0

#define CRYPTO_TYPE CRYPTO_MODULE
#define MC_TYPE MC_MODULE
#define SA_TYPE SA_MODULE
#define KEY_TYPE KEY_MODULE

#define GVCID_MAX_PARAM_SIZE 250
#define CRC32TBL_SIZE 256
#define CRC16TBL_SIZE 256
Expand Down
32 changes: 16 additions & 16 deletions src/core/crypto_config.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ int32_t crypto_free_config_structs(void);
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,
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);
Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE, IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE,
TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_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
// 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);
Expand Down Expand Up @@ -107,10 +107,10 @@ int32_t Crypto_SC_Init(void)
int32_t Crypto_Init_TC_Unit_Test(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,
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);
Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE, IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE,
TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_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 Tests
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};
Expand All @@ -133,10 +133,10 @@ int32_t Crypto_Init_TC_Unit_Test(void)
int32_t Crypto_Init_TM_Unit_Test(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_TM_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_PUS_HDR,
TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
TM_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE, IV_INTERNAL, CRYPTO_TM_CREATE_FECF_TRUE,
TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_PUS_HDR, TC_IGNORE_SA_STATE_FALSE,
TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE, TM_CHECK_FECF_TRUE, 0x3F,
SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
// TM Tests
GvcidManagedParameters_t TM_UT_Managed_Parameters = {
0, 0x0003, 0, TM_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, TM_SEGMENT_HDRS_NA, 1786, TM_NO_OCF, 1};
Expand All @@ -162,10 +162,10 @@ int32_t Crypto_Init_TM_Unit_Test(void)
int32_t Crypto_Init_AOS_Unit_Test(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_AOS_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_PUS_HDR,
TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
AOS_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE, IV_INTERNAL, CRYPTO_AOS_CREATE_FECF_TRUE,
TC_PROCESS_SDLS_PDUS_TRUE, TC_HAS_PUS_HDR, TC_IGNORE_SA_STATE_FALSE,
TC_IGNORE_ANTI_REPLAY_FALSE, TC_UNIQUE_SA_PER_MAP_ID_FALSE, AOS_CHECK_FECF_TRUE, 0x3F,
SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
// AOS Tests
GvcidManagedParameters_t AOS_UT_Managed_Parameters = {
1, 0x0003, 0, AOS_HAS_FECF, AOS_FHEC_NA, AOS_IZ_NA, 0, AOS_SEGMENT_HDRS_NA, 1786, AOS_NO_OCF, 1};
Expand Down
2 changes: 1 addition & 1 deletion support/scripts/build_minimal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ source $SCRIPT_DIR/env.sh

rm $BASE_DIR/CMakeCache.txt

cmake $BASE_DIR && make && make test
cmake $BASE_DIR -DMC_DISABLED=1 -DCRYPTO_LIBGCRYPT=1 -DKEY_INTERNAL=1 -DSA_INTERNAL=1 && make && make test
2 changes: 1 addition & 1 deletion support/scripts/build_wolf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ source $SCRIPT_DIR/env.sh

rm $BASE_DIR/CMakeCache.txt
# should be -DCRYPTO_WOLFSSL=1 but segfaults
cmake $BASE_DIR -DCODECOV=1 -DDEBUG=1 -DMC_INTERNAL=1 -DCRYPTO_LIBGCRYPT=1 -DKEY_INTERNAL=1 -DTEST=1 -DSA_FILE=1 -DSA_INTERNAL=1 && make && make test
cmake $BASE_DIR -DCODECOV=1 -DDEBUG=1 -DMC_INTERNAL=1 -DCRYPTO_WOLFSSL=1 -DKEY_INTERNAL=1 -DTEST=1 -DSA_FILE=1 -DSA_INTERNAL=1 && make && make test
20 changes: 10 additions & 10 deletions test/kmc/ut_kmc_crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
// UTEST(KMC_CRYPTO, HAPPY_PATH_APPLY_SEC_ENC_AND_AUTH)
// {
// // Setup & Initialize CryptoLib
// Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -96,7 +96,7 @@
// //UTEST(KMC_CRYPTO, HAPPY_PATH_APPLY_SEC_ENC_ONLY)
// //{
// // // Setup & Initialize CryptoLib
// // Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// // Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// // IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// // TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// // TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -157,7 +157,7 @@
// UTEST(KMC_CRYPTO, HAPPY_PATH_APPLY_SEC_AUTH_ONLY)
// {
// // Setup & Initialize CryptoLib
// Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -211,7 +211,7 @@
// UTEST(KMC_CRYPTO, HAPPY_PATH_PROCESS_SEC_ENC_AND_AUTH)
// {
// // Setup & Initialize CryptoLib
// Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -272,7 +272,7 @@
// //UTEST(KMC_CRYPTO, HAPPY_PATH_PROCESS_SEC_ENC_ONLY)
// //{
// // // Setup & Initialize CryptoLib
// // Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// // Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// // IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// // TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// // TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -343,7 +343,7 @@
// UTEST(KMC_CRYPTO, HAPPY_PATH_PROCESS_SEC_AUTH_ONLY)
// {
// // Setup & Initialize CryptoLib
// Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -407,7 +407,7 @@
// UTEST(KMC_CRYPTO, HAPPY_PATH_APPLY_SEC_ENC_AND_AUTH_AESGCM_8BYTE_MAC)
// {
// // Setup & Initialize CryptoLib
// Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -458,7 +458,7 @@
// // UTEST(KMC_CRYPTO, HAPPY_PATH_PROCESS_SEC_ENC_AND_AUTH_AESGCM_8BYTE_MAC)
// // {
// // // Setup & Initialize CryptoLib
// // Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// // Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// // IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// // TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// // TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -522,7 +522,7 @@
// // UTEST(KMC_CRYPTO, UNHAPPY_PATH_INVALID_MAC_PROCESS_SEC_ENC_AND_AUTH_AESGCM_8BYTE_MAC)
// // {
// // // Setup & Initialize CryptoLib
// // Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// // Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// // IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// // TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// // TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down Expand Up @@ -577,7 +577,7 @@
// // UTEST(KMC_CRYPTO, UNHAPPY_PATH_APPLY_SEC_ENC_AND_AUTH_AESGCM_32BYTE_MAC)
// // {
// // // Setup & Initialize CryptoLib
// // Crypto_Config_CryptoLib(KEY_TYPE_KMC, MC_TYPE_DISABLED, SA_TYPE_MARIADB, CRYPTOGRAPHY_TYPE_KMCCRYPTO,
// // Crypto_Config_CryptoLib(KEY_TYPE, MC_TYPE, SA_TYPE, CRYPTO_TYPE,
// // IV_INTERNAL, CRYPTO_TC_CREATE_FECF_TRUE, TC_PROCESS_SDLS_PDUS_FALSE, TC_NO_PUS_HDR,
// // TC_IGNORE_SA_STATE_FALSE, TC_IGNORE_ANTI_REPLAY_TRUE, TC_UNIQUE_SA_PER_MAP_ID_FALSE,
// // TC_CHECK_FECF_TRUE, 0x3F, SA_INCREMENT_NONTRANSMITTED_IV_TRUE);
Expand Down
Loading