@@ -1887,7 +1887,7 @@ UTEST(AOS_PROCESS, AOS_SA_SEGFAULT_TEST)
18871887 memset (aos_frame , 0 , (sizeof (uint8_t ) * AOS_SIZE ));
18881888
18891889 status = Crypto_AOS_ProcessSecurity ((uint8_t * )framed_aos_b , framed_aos_len , aos_frame , & processed_aos_len );
1890- ASSERT_EQ (CRYPTO_LIB_ERR_SPI_INDEX_OOB , status );
1890+ ASSERT_EQ (CRYPTO_LIB_ERR_INVALID_AOS_FRAME_LENGTH , status );
18911891
18921892 Crypto_Shutdown ();
18931893 free (framed_aos_b );
@@ -2166,4 +2166,112 @@ UTEST(AOS_PROCESS, AOS_FHECF_TEST)
21662166 free (aos_frame );
21672167}
21682168
2169+ UTEST (AOS_PROCESS , AOS_6BYTE_TEST )
2170+ {
2171+ remove ("sa_save_file.bin" );
2172+ // Local Variables
2173+ int32_t status = CRYPTO_LIB_SUCCESS ;
2174+
2175+ uint16_t processed_aos_len ;
2176+
2177+ // Configure Parameters
2178+ Crypto_Config_CryptoLib (KEY_TYPE_INTERNAL , MC_TYPE_INTERNAL , SA_TYPE_INMEMORY , CRYPTOGRAPHY_TYPE_LIBGCRYPT ,
2179+ IV_INTERNAL , CRYPTO_AOS_CREATE_FECF_TRUE , TC_PROCESS_SDLS_PDUS_TRUE , TC_HAS_PUS_HDR ,
2180+ TC_IGNORE_SA_STATE_FALSE , TC_IGNORE_ANTI_REPLAY_FALSE , TC_UNIQUE_SA_PER_MAP_ID_FALSE ,
2181+ AOS_CHECK_FECF_FALSE , 0x3F , SA_INCREMENT_NONTRANSMITTED_IV_TRUE );
2182+ // AOS Test
2183+ GvcidManagedParameters_t AOS_UT_Managed_Parameters = {
2184+ 1 , 0x0003 , 0 , AOS_HAS_FECF , AOS_NO_FHEC , AOS_IZ_NA , 0 , AOS_SEGMENT_HDRS_NA , 6 , AOS_NO_OCF , 1 };
2185+ Crypto_Config_Add_Gvcid_Managed_Parameters (AOS_UT_Managed_Parameters );
2186+ status = Crypto_Init ();
2187+
2188+ // Test frame setup
2189+ char * framed_aos_h = "40C0FEDCBA98" ;
2190+ char * framed_aos_b = NULL ;
2191+ int framed_aos_len = 0 ;
2192+ hex_conversion (framed_aos_h , & framed_aos_b , & framed_aos_len );
2193+
2194+ SecurityAssociation_t * sa_ptr = NULL ;
2195+ SaInterface sa_if = get_sa_interface_inmemory ();
2196+ sa_if -> sa_get_from_spi (10 , & sa_ptr ); // Disable SPI 10
2197+ sa_ptr -> sa_state = SA_KEYED ;
2198+ sa_if -> sa_get_from_spi (5 , & sa_ptr ); // Enable and setup 5
2199+ sa_ptr -> sa_state = SA_OPERATIONAL ;
2200+ sa_ptr -> est = 1 ;
2201+ sa_ptr -> ecs = CRYPTO_CIPHER_AES256_GCM ;
2202+ sa_ptr -> arsn_len = 0 ;
2203+ sa_ptr -> shsnf_len = 0 ;
2204+
2205+ crypto_key_t * ekp = NULL ;
2206+ ekp = key_if -> get_key (sa_ptr -> ekid );
2207+ ekp -> key_state = KEY_ACTIVE ;
2208+
2209+ AOS_t * aos_frame ;
2210+ aos_frame = malloc (sizeof (uint8_t ) * AOS_SIZE );
2211+ memset (aos_frame , 0 , (sizeof (uint8_t ) * AOS_SIZE ));
2212+
2213+ status = Crypto_AOS_ProcessSecurity ((uint8_t * )framed_aos_b , framed_aos_len , aos_frame , & processed_aos_len );
2214+ ASSERT_EQ (CRYPTO_LIB_ERR_INVALID_AOS_FRAME_LENGTH , status );
2215+
2216+ Crypto_aosPrint (aos_frame );
2217+
2218+ Crypto_Shutdown ();
2219+ free (framed_aos_b );
2220+ free (aos_frame );
2221+ }
2222+
2223+ UTEST (AOS_PROCESS , AOS_8BYTE_TEST )
2224+ {
2225+ remove ("sa_save_file.bin" );
2226+ // Local Variables
2227+ int32_t status = CRYPTO_LIB_SUCCESS ;
2228+
2229+ uint16_t processed_aos_len ;
2230+
2231+ // Configure Parameters
2232+ Crypto_Config_CryptoLib (KEY_TYPE_INTERNAL , MC_TYPE_INTERNAL , SA_TYPE_INMEMORY , CRYPTOGRAPHY_TYPE_LIBGCRYPT ,
2233+ IV_INTERNAL , CRYPTO_AOS_CREATE_FECF_TRUE , TC_PROCESS_SDLS_PDUS_TRUE , TC_HAS_PUS_HDR ,
2234+ TC_IGNORE_SA_STATE_FALSE , TC_IGNORE_ANTI_REPLAY_FALSE , TC_UNIQUE_SA_PER_MAP_ID_FALSE ,
2235+ AOS_CHECK_FECF_FALSE , 0x3F , SA_INCREMENT_NONTRANSMITTED_IV_TRUE );
2236+ // AOS Test
2237+ GvcidManagedParameters_t AOS_UT_Managed_Parameters = {
2238+ 1 , 0x0003 , 0 , AOS_HAS_FECF , AOS_NO_FHEC , AOS_IZ_NA , 0 , AOS_SEGMENT_HDRS_NA , 8 , AOS_NO_OCF , 1 };
2239+ Crypto_Config_Add_Gvcid_Managed_Parameters (AOS_UT_Managed_Parameters );
2240+ status = Crypto_Init ();
2241+
2242+ // Test frame setup
2243+ char * framed_aos_h = "40C0FEDCBA987605" ;
2244+ char * framed_aos_b = NULL ;
2245+ int framed_aos_len = 0 ;
2246+ hex_conversion (framed_aos_h , & framed_aos_b , & framed_aos_len );
2247+
2248+ SecurityAssociation_t * sa_ptr = NULL ;
2249+ SaInterface sa_if = get_sa_interface_inmemory ();
2250+ sa_if -> sa_get_from_spi (10 , & sa_ptr ); // Disable SPI 10
2251+ sa_ptr -> sa_state = SA_KEYED ;
2252+ sa_if -> sa_get_from_spi (5 , & sa_ptr ); // Enable and setup 5
2253+ sa_ptr -> sa_state = SA_OPERATIONAL ;
2254+ sa_ptr -> est = 1 ;
2255+ sa_ptr -> ecs = CRYPTO_CIPHER_AES256_GCM ;
2256+ sa_ptr -> arsn_len = 0 ;
2257+ sa_ptr -> shsnf_len = 0 ;
2258+
2259+ crypto_key_t * ekp = NULL ;
2260+ ekp = key_if -> get_key (sa_ptr -> ekid );
2261+ ekp -> key_state = KEY_ACTIVE ;
2262+
2263+ AOS_t * aos_frame ;
2264+ aos_frame = malloc (sizeof (uint8_t ) * AOS_SIZE );
2265+ memset (aos_frame , 0 , (sizeof (uint8_t ) * AOS_SIZE ));
2266+
2267+ status = Crypto_AOS_ProcessSecurity ((uint8_t * )framed_aos_b , framed_aos_len , aos_frame , & processed_aos_len );
2268+ ASSERT_EQ (CRYPTO_LIB_ERR_INVALID_AOS_FRAME_LENGTH , status );
2269+
2270+ Crypto_aosPrint (aos_frame );
2271+
2272+ Crypto_Shutdown ();
2273+ free (framed_aos_b );
2274+ free (aos_frame );
2275+ }
2276+
21692277UTEST_MAIN ();
0 commit comments