| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | /* BEGIN_HEADER */ | 
					
						
							|  |  |  | #include "mbedtls/blowfish.h" | 
					
						
							|  |  |  | /* END_HEADER */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_DEPENDENCIES | 
					
						
							|  |  |  |  * depends_on:MBEDTLS_BLOWFISH_C | 
					
						
							|  |  |  |  * END_DEPENDENCIES | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_valid_param( ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     TEST_VALID_PARAM( mbedtls_blowfish_free( NULL ) ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */ | 
					
						
							|  |  |  | void blowfish_invalid_param( ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  |     unsigned char buf[16] = { 0 }; | 
					
						
							|  |  |  |     size_t const valid_keylength = sizeof( buf ) * 8; | 
					
						
							|  |  |  |     size_t valid_mode = MBEDTLS_BLOWFISH_ENCRYPT; | 
					
						
							|  |  |  |     size_t invalid_mode = 42; | 
					
						
							|  |  |  |     size_t off; | 
					
						
							|  |  |  |     ((void) off); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM( mbedtls_blowfish_init( NULL ) ); | 
					
						
							|  |  |  |     TEST_VALID_PARAM( mbedtls_blowfish_free( NULL ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_setkey( NULL, | 
					
						
							|  |  |  |                                                      buf, | 
					
						
							|  |  |  |                                                      valid_keylength ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_setkey( &ctx, | 
					
						
							|  |  |  |                                                      NULL, | 
					
						
							|  |  |  |                                                      valid_keylength ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ecb( NULL, | 
					
						
							|  |  |  |                                                      valid_mode, | 
					
						
							|  |  |  |                                                      buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ecb( &ctx, | 
					
						
							|  |  |  |                                                         invalid_mode, | 
					
						
							|  |  |  |                                                         buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ecb( &ctx, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         NULL, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ecb( &ctx, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         buf, NULL ) ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CBC) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cbc( NULL, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         buf, buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                         invalid_mode, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         buf, buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         NULL, buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         buf, NULL, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cbc( &ctx, | 
					
						
							|  |  |  |                                                         valid_mode, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         buf, buf, NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CFB) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( NULL, | 
					
						
							|  |  |  |                                                           valid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           &off, buf, | 
					
						
							|  |  |  |                                                           buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( &ctx, | 
					
						
							|  |  |  |                                                           invalid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           &off, buf, | 
					
						
							|  |  |  |                                                           buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( &ctx, | 
					
						
							|  |  |  |                                                           valid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           NULL, buf, | 
					
						
							|  |  |  |                                                           buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( &ctx, | 
					
						
							|  |  |  |                                                           valid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           &off, NULL, | 
					
						
							|  |  |  |                                                           buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( &ctx, | 
					
						
							|  |  |  |                                                           valid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           &off, buf, | 
					
						
							|  |  |  |                                                           NULL, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_cfb64( &ctx, | 
					
						
							|  |  |  |                                                           valid_mode, | 
					
						
							|  |  |  |                                                           sizeof( buf ), | 
					
						
							|  |  |  |                                                           &off, buf, | 
					
						
							|  |  |  |                                                           buf, NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(MBEDTLS_CIPHER_MODE_CTR) | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( NULL, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         &off, | 
					
						
							|  |  |  |                                                         buf, buf, | 
					
						
							|  |  |  |                                                         buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         NULL, | 
					
						
							|  |  |  |                                                         buf, buf, | 
					
						
							|  |  |  |                                                         buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         &off, | 
					
						
							|  |  |  |                                                         NULL, buf, | 
					
						
							|  |  |  |                                                         buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         &off, | 
					
						
							|  |  |  |                                                         buf, NULL, | 
					
						
							|  |  |  |                                                         buf, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         &off, | 
					
						
							|  |  |  |                                                         buf, buf, | 
					
						
							|  |  |  |                                                         NULL, buf ) ); | 
					
						
							|  |  |  |     TEST_INVALID_PARAM_RET( MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA, | 
					
						
							|  |  |  |                             mbedtls_blowfish_crypt_ctr( &ctx, | 
					
						
							|  |  |  |                                                         sizeof( buf ), | 
					
						
							|  |  |  |                                                         &off, | 
					
						
							|  |  |  |                                                         buf, buf, | 
					
						
							|  |  |  |                                                         buf, NULL ) ); | 
					
						
							|  |  |  | #endif /* MBEDTLS_CIPHER_MODE_CTR */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							|  |  |  | void blowfish_encrypt_ecb( data_t * key_str, data_t * src_str, | 
					
						
							|  |  |  |                            data_t * dst, int setkey_result ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     if( setkey_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         TEST_ASSERT( mbedtls_blowfish_crypt_ecb( &ctx, MBEDTLS_BLOWFISH_ENCRYPT, src_str->x, output ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_decrypt_ecb( data_t * key_str, data_t * src_str, | 
					
						
							|  |  |  |                            data_t * dst, int setkey_result ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     if( setkey_result == 0 ) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         TEST_ASSERT( mbedtls_blowfish_crypt_ecb( &ctx, MBEDTLS_BLOWFISH_DECRYPT, src_str->x, output ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |         TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_encrypt_cbc( data_t * key_str, data_t * iv_str, | 
					
						
							|  |  |  |                            data_t * src_str, data_t * dst, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                            int cbc_result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_blowfish_crypt_cbc( &ctx, MBEDTLS_BLOWFISH_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
										 |  |  |         TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, | 
					
						
							|  |  |  |                                           src_str->len, dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_decrypt_cbc( data_t * key_str, data_t * iv_str, | 
					
						
							|  |  |  |                            data_t * src_str, data_t * dst, | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |                            int cbc_result ) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_blowfish_crypt_cbc( &ctx, MBEDTLS_BLOWFISH_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
										 |  |  |         TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, | 
					
						
							|  |  |  |                                           dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_encrypt_cfb64( data_t * key_str, data_t * iv_str, | 
					
						
							|  |  |  |                              data_t * src_str, data_t * dst ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_blowfish_crypt_cfb64( &ctx, MBEDTLS_BLOWFISH_ENCRYPT, src_str->len, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, | 
					
						
							|  |  |  |                                       dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_decrypt_cfb64( data_t * key_str, data_t * iv_str, | 
					
						
							|  |  |  |                              data_t * src_str, data_t * dst ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_blowfish_crypt_cfb64( &ctx, MBEDTLS_BLOWFISH_DECRYPT, src_str->len, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, | 
					
						
							|  |  |  |                                       dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */ | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  | void blowfish_encrypt_ctr( data_t * key_str, data_t * iv_str, | 
					
						
							|  |  |  |                            data_t * src_str, data_t * dst ) | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     unsigned char stream_str[100]; | 
					
						
							|  |  |  |     unsigned char output[100]; | 
					
						
							|  |  |  |     mbedtls_blowfish_context ctx; | 
					
						
							|  |  |  |     size_t iv_offset = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     memset(stream_str, 0x00, 100); | 
					
						
							|  |  |  |     memset(output, 0x00, 100); | 
					
						
							|  |  |  |     mbedtls_blowfish_init( &ctx ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ); | 
					
						
							|  |  |  |     TEST_ASSERT( mbedtls_blowfish_crypt_ctr( &ctx, src_str->len, &iv_offset, iv_str->x, stream_str, src_str->x, output ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-06 01:41:47 +01:00
										 |  |  |     TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, | 
					
						
							|  |  |  |                                       dst->len ) == 0 ); | 
					
						
							| 
									
										
										
										
											2020-12-28 15:15:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     mbedtls_blowfish_free( &ctx ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | /* END_CASE */ |