| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | /* BEGIN_HEADER */ | 
					
						
							|  |  |  | #include "mbedtls/aria.h" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Maxium size of data used by test vectors | 
					
						
							|  |  |  |  * WARNING: to be adapted if and when adding larger test cases */ | 
					
						
							|  |  |  | #define ARIA_MAX_DATASIZE  160 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Maximum sizes of hexified things */ | 
					
						
							|  |  |  | #define ARIA_MAX_KEY_STR    ( 2 * MBEDTLS_ARIA_MAX_KEYSIZE + 1 ) | 
					
						
							|  |  |  | #define ARIA_BLOCK_STR      ( 2 * MBEDTLS_ARIA_BLOCKSIZE + 1 ) | 
					
						
							|  |  |  | #define ARIA_MAX_DATA_STR   ( 2 * ARIA_MAX_DATASIZE + 1 ) | 
					
						
							|  |  |  | /* END_HEADER */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_DEPENDENCIES | 
					
						
							|  |  |  |  * depends_on:MBEDTLS_ARIA_C | 
					
						
							|  |  |  |  * END_DEPENDENCIES | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_valid_param( ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TEST_VALID_PARAM( mbedtls_aria_free( NULL ) ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */ | 
					
						
							|  |  |  | void aria_invalid_param( ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  |     unsigned char key[128 / 8] = { 0 }; | 
					
						
							|  |  |  |     unsigned char input[MBEDTLS_ARIA_BLOCKSIZE] = { 0 }; | 
					
						
							|  |  |  |     unsigned char output[MBEDTLS_ARIA_BLOCKSIZE] = { 0 }; | 
					
						
							|  |  |  |     unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE] = { 0 }; | 
					
						
							|  |  |  |     size_t iv_off = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ((void) iv_off); | 
					
						
							|  |  |  |     ((void) iv); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM( mbedtls_aria_init( NULL ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_setkey_enc( NULL, key, | 
					
						
							|  |  |  |                                                      sizeof( key ) ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_setkey_enc( &ctx, NULL, | 
					
						
							|  |  |  |                                                      sizeof( key ) ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_setkey_dec( NULL, key, | 
					
						
							|  |  |  |                                                      sizeof( key ) ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_setkey_dec( &ctx, NULL, | 
					
						
							|  |  |  |                                                      sizeof( key ) ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ecb( NULL, input, output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ecb( &ctx, NULL, output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ecb( &ctx, input, NULL ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CBC) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cbc( NULL, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                     42 /* invalid mode */, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CFB) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( NULL, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( &ctx, | 
					
						
							|  |  |  |                                                     42, /* invalid mode */ | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_cfb128( &ctx, | 
					
						
							|  |  |  |                                                     MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CTR) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( NULL, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     NULL, | 
					
						
							|  |  |  |                                                     output ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_aria_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                     sizeof( input ), | 
					
						
							|  |  |  |                                                     &iv_off, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     iv, | 
					
						
							|  |  |  |                                                     input, | 
					
						
							|  |  |  |                                                     NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CTR */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							|  |  |  | void aria_encrypt_ecb( data_t *key_str, data_t *src_str, | 
					
						
							|  |  |  |                        data_t *expected_output, int setkey_result ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     size_t i; | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == setkey_result ); | 
					
						
							|  |  |  |     if( setkey_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |         { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |             TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i, | 
					
						
							|  |  |  |                                                  output + i ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                         expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_decrypt_ecb( data_t *key_str, data_t *src_str, | 
					
						
							|  |  |  |                        data_t *expected_output, int setkey_result ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     size_t i; | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_aria_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == setkey_result ); | 
					
						
							|  |  |  |     if( setkey_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |         { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |             TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i, | 
					
						
							|  |  |  |                                                  output + i ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                         expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_encrypt_cbc( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                        data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                        int cbc_result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, | 
					
						
							|  |  |  |                                          src_str->len, iv_str->x, src_str->x, | 
					
						
							|  |  |  |                                          output ) == cbc_result ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     if( cbc_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                         expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_decrypt_cbc( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                        data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                        int cbc_result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_dec( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, | 
					
						
							|  |  |  |                                          src_str->len, iv_str->x, src_str->x, | 
					
						
							|  |  |  |                                          output ) == cbc_result ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     if( cbc_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                         expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_encrypt_cfb128( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                           data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                           int result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |                                             src_str->len, &iv_offset, | 
					
						
							|  |  |  |                                             iv_str->x, src_str->x, output ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == result ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                     expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_decrypt_cfb128( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                           data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                           int result  ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |                                             src_str->len, &iv_offset, | 
					
						
							|  |  |  |                                             iv_str->x, src_str->x, output ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == result ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                     expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_encrypt_ctr( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                        data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                        int result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     unsigned char blk[MBEDTLS_ARIA_BLOCKSIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_aria_crypt_ctr( &ctx, src_str->len, &iv_offset, | 
					
						
							|  |  |  |                                          iv_str->x, blk, src_str->x, output ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == result ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                     expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void aria_decrypt_ctr( data_t *key_str, data_t *iv_str, | 
					
						
							|  |  |  |                        data_t *src_str, data_t *expected_output, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                        int result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[ARIA_MAX_DATASIZE]; | 
					
						
							|  |  |  |     unsigned char blk[MBEDTLS_ARIA_BLOCKSIZE]; | 
					
						
							|  |  |  |     mbedtls_aria_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset( output, 0x00, sizeof( output ) ); | 
					
						
							|  |  |  |     mbedtls_aria_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_aria_crypt_ctr( &ctx, src_str->len, &iv_offset, | 
					
						
							|  |  |  |                                          iv_str->x, blk, src_str->x, output ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                  == result ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     ASSERT_COMPARE( output, expected_output->len, | 
					
						
							|  |  |  |                     expected_output->x, expected_output->len ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_aria_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ | 
					
						
							|  |  |  | void aria_selftest() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_aria_self_test( 1 ) == 0 ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ |