Downgraded mbedtls and updated for latest dynarmic
This commit is contained in:
965
externals/mbedtls/tests/suites/helpers.function
vendored
965
externals/mbedtls/tests/suites/helpers.function
vendored
File diff suppressed because it is too large
Load Diff
795
externals/mbedtls/tests/suites/host_test.function
vendored
795
externals/mbedtls/tests/suites/host_test.function
vendored
File diff suppressed because it is too large
Load Diff
235
externals/mbedtls/tests/suites/main_test.function
vendored
235
externals/mbedtls/tests/suites/main_test.function
vendored
@@ -3,43 +3,48 @@
|
||||
* *** THIS FILE HAS BEEN MACHINE GENERATED ***
|
||||
*
|
||||
* This file has been machine generated using the script:
|
||||
* __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT
|
||||
* $generator_script
|
||||
*
|
||||
* Test file : __MBEDTLS_TEST_TEMPLATE__TEST_FILE
|
||||
* Test file : $test_file
|
||||
*
|
||||
* The following files were used to create this file.
|
||||
*
|
||||
* Main code file : __MBEDTLS_TEST_TEMPLATE__TEST_MAIN_FILE
|
||||
* Platform code file : __MBEDTLS_TEST_TEMPLATE__TEST_PLATFORM_FILE
|
||||
* Helper file : __MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPER_FILE
|
||||
* Test suite file : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_FILE
|
||||
* Test suite data : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_DATA_FILE
|
||||
* Main code file : $test_main_file
|
||||
* Platform code file : $test_platform_file
|
||||
* Helper file : $test_common_helper_file
|
||||
* Test suite file : $test_case_file
|
||||
* Test suite data : $test_case_data_file
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
|
||||
#if !defined(_POSIX_C_SOURCE)
|
||||
#define _POSIX_C_SOURCE 200112L // for fileno() from <stdio.h>
|
||||
#define _POSIX_C_SOURCE 1 // for fileno() from <stdio.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "mbedtls/build_info.h"
|
||||
|
||||
/* Test code may use deprecated identifiers only if the preprocessor symbol
|
||||
* MBEDTLS_TEST_DEPRECATED is defined. When building tests, set
|
||||
* MBEDTLS_TEST_DEPRECATED explicitly if MBEDTLS_DEPRECATED_WARNING is
|
||||
* enabled but the corresponding warnings are not treated as errors.
|
||||
/*
|
||||
* for arc4random_buf() from <stdlib.h>
|
||||
*/
|
||||
#if !defined(MBEDTLS_DEPRECATED_REMOVED) && !defined(MBEDTLS_DEPRECATED_WARNING)
|
||||
#define MBEDTLS_TEST_DEPRECATED
|
||||
#if defined(__NetBSD__)
|
||||
#define _NETBSD_SOURCE 1
|
||||
#elif defined(__OpenBSD__)
|
||||
#define _BSD_SOURCE 1
|
||||
#endif
|
||||
|
||||
#if !defined(MBEDTLS_CONFIG_FILE)
|
||||
#include <mbedtls/config.h>
|
||||
#else
|
||||
#include MBEDTLS_CONFIG_FILE
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Common helper code */
|
||||
|
||||
__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS
|
||||
$test_common_helpers
|
||||
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
#line $line_no "suites/main_test.function"
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@@ -48,9 +53,9 @@ __MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS
|
||||
|
||||
#define TEST_SUITE_ACTIVE
|
||||
|
||||
__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE
|
||||
$functions_code
|
||||
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
#line $line_no "suites/main_test.function"
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
@@ -62,30 +67,31 @@ __MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE
|
||||
* For optimizing space for embedded targets each expression/macro
|
||||
* is identified by a unique identifier instead of string literals.
|
||||
* Identifiers and evaluation code is generated by script:
|
||||
* __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT
|
||||
* $generator_script
|
||||
*
|
||||
* \param exp_id Expression identifier.
|
||||
* \param out_value Pointer to int to hold the integer.
|
||||
*
|
||||
* \return 0 if exp_id is found. 1 otherwise.
|
||||
*/
|
||||
int get_expression(int32_t exp_id, intmax_t *out_value)
|
||||
int get_expression( int32_t exp_id, int32_t * out_value )
|
||||
{
|
||||
int ret = KEY_VALUE_MAPPING_FOUND;
|
||||
|
||||
(void) exp_id;
|
||||
(void) out_value;
|
||||
|
||||
switch (exp_id) {
|
||||
__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
switch( exp_id )
|
||||
{
|
||||
$expression_code
|
||||
#line $line_no "suites/main_test.function"
|
||||
default:
|
||||
{
|
||||
ret = KEY_VALUE_MAPPING_NOT_FOUND;
|
||||
}
|
||||
break;
|
||||
{
|
||||
ret = KEY_VALUE_MAPPING_NOT_FOUND;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
@@ -94,126 +100,151 @@ int get_expression(int32_t exp_id, intmax_t *out_value)
|
||||
* For optimizing space for embedded targets each dependency
|
||||
* is identified by a unique identifier instead of string literals.
|
||||
* Identifiers and check code is generated by script:
|
||||
* __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT
|
||||
* $generator_script
|
||||
*
|
||||
* \param dep_id Dependency identifier.
|
||||
* \param exp_id Dependency identifier.
|
||||
*
|
||||
* \return DEPENDENCY_SUPPORTED if set else DEPENDENCY_NOT_SUPPORTED
|
||||
*/
|
||||
int dep_check(int dep_id)
|
||||
int dep_check( int dep_id )
|
||||
{
|
||||
int ret = DEPENDENCY_NOT_SUPPORTED;
|
||||
|
||||
(void) dep_id;
|
||||
|
||||
switch (dep_id) {
|
||||
__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
switch( dep_id )
|
||||
{
|
||||
$dep_check_code
|
||||
#line $line_no "suites/main_test.function"
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Function pointer type for test function wrappers.
|
||||
*
|
||||
* A test function wrapper decodes the parameters and passes them to the
|
||||
* underlying test function. Both the wrapper and the underlying function
|
||||
* return void. Test wrappers assume that they are passed a suitable
|
||||
* parameter array and do not perform any error detection.
|
||||
*
|
||||
* \param param_array The array of parameters. Each element is a `void *`
|
||||
* which the wrapper casts to the correct type and
|
||||
* dereferences. Each wrapper function hard-codes the
|
||||
* number and types of the parameters.
|
||||
* \param void ** Pointer to void pointers. Represents an array of test
|
||||
* function parameters.
|
||||
*
|
||||
* \return void
|
||||
*/
|
||||
typedef void (*TestWrapper_t)(void **param_array);
|
||||
typedef void (*TestWrapper_t)( void ** );
|
||||
|
||||
|
||||
/**
|
||||
* \brief Table of test function wrappers. Used by dispatch_test().
|
||||
* This table is populated by script:
|
||||
* __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT
|
||||
* $generator_script
|
||||
*
|
||||
*/
|
||||
TestWrapper_t test_funcs[] =
|
||||
{
|
||||
__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
$dispatch_code
|
||||
#line $line_no "suites/main_test.function"
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Execute the test function.
|
||||
*
|
||||
* This is a wrapper function around the test function execution
|
||||
* to allow the setjmp() call used to catch any calls to the
|
||||
* parameter failure callback, to be used. Calls to setjmp()
|
||||
* can invalidate the state of any local auto variables.
|
||||
*
|
||||
* \param fp Function pointer to the test function
|
||||
* \param params Parameters to pass
|
||||
*
|
||||
*/
|
||||
void execute_function_ptr(TestWrapper_t fp, void **params)
|
||||
{
|
||||
#if defined(MBEDTLS_CHECK_PARAMS)
|
||||
if ( setjmp( param_fail_jmp ) == 0 )
|
||||
{
|
||||
fp( params );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Unexpected parameter validation error */
|
||||
test_info.result = TEST_RESULT_FAILED;
|
||||
}
|
||||
|
||||
memset( param_fail_jmp, 0, sizeof(jmp_buf) );
|
||||
#else
|
||||
fp( params );
|
||||
#endif
|
||||
|
||||
#if defined(MBEDTLS_TEST_MUTEX_USAGE)
|
||||
mbedtls_test_mutex_usage_check( );
|
||||
#endif /* MBEDTLS_TEST_MUTEX_USAGE */
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Dispatches test functions based on function index.
|
||||
*
|
||||
* \param func_idx Test function index.
|
||||
* \param params The array of parameters to pass to the test function.
|
||||
* It will be decoded by the #TestWrapper_t wrapper function.
|
||||
* \param exp_id Test function index.
|
||||
*
|
||||
* \return DISPATCH_TEST_SUCCESS if found
|
||||
* DISPATCH_TEST_FN_NOT_FOUND if not found
|
||||
* DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
|
||||
*/
|
||||
int dispatch_test(size_t func_idx, void **params)
|
||||
int dispatch_test( size_t func_idx, void ** params )
|
||||
{
|
||||
int ret = DISPATCH_TEST_SUCCESS;
|
||||
TestWrapper_t fp = NULL;
|
||||
|
||||
if (func_idx < (int) (sizeof(test_funcs) / sizeof(TestWrapper_t))) {
|
||||
if ( func_idx < (int)( sizeof( test_funcs ) / sizeof( TestWrapper_t ) ) )
|
||||
{
|
||||
fp = test_funcs[func_idx];
|
||||
if (fp) {
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
|
||||
mbedtls_test_enable_insecure_external_rng();
|
||||
#endif
|
||||
|
||||
fp(params);
|
||||
|
||||
#if defined(MBEDTLS_TEST_MUTEX_USAGE)
|
||||
mbedtls_test_mutex_usage_check();
|
||||
#endif /* MBEDTLS_TEST_MUTEX_USAGE */
|
||||
} else {
|
||||
if ( fp )
|
||||
execute_function_ptr(fp, params);
|
||||
else
|
||||
ret = DISPATCH_UNSUPPORTED_SUITE;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = DISPATCH_TEST_FN_NOT_FOUND;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Checks if test function is supported in this build-time
|
||||
* configuration.
|
||||
* \brief Checks if test function is supported
|
||||
*
|
||||
* \param func_idx Test function index.
|
||||
* \param exp_id Test function index.
|
||||
*
|
||||
* \return DISPATCH_TEST_SUCCESS if found
|
||||
* DISPATCH_TEST_FN_NOT_FOUND if not found
|
||||
* DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
|
||||
*/
|
||||
int check_test(size_t func_idx)
|
||||
int check_test( size_t func_idx )
|
||||
{
|
||||
int ret = DISPATCH_TEST_SUCCESS;
|
||||
TestWrapper_t fp = NULL;
|
||||
|
||||
if (func_idx < (int) (sizeof(test_funcs)/sizeof(TestWrapper_t))) {
|
||||
if ( func_idx < (int)( sizeof(test_funcs)/sizeof( TestWrapper_t ) ) )
|
||||
{
|
||||
fp = test_funcs[func_idx];
|
||||
if (fp == NULL) {
|
||||
if ( fp == NULL )
|
||||
ret = DISPATCH_UNSUPPORTED_SUITE;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = DISPATCH_TEST_FN_NOT_FOUND;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE
|
||||
$platform_code
|
||||
|
||||
#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function"
|
||||
#line $line_no "suites/main_test.function"
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Main Test code */
|
||||
@@ -227,40 +258,18 @@ __MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE
|
||||
*
|
||||
* \return Exit code.
|
||||
*/
|
||||
int main(int argc, const char *argv[])
|
||||
int main( int argc, const char *argv[] )
|
||||
{
|
||||
#if defined(MBEDTLS_TEST_HOOKS)
|
||||
extern void (*mbedtls_test_hook_test_fail)(const char *test, int line, const char *file);
|
||||
mbedtls_test_hook_test_fail = &mbedtls_test_fail;
|
||||
#if defined(MBEDTLS_ERROR_C)
|
||||
mbedtls_test_hook_error_add = &mbedtls_test_err_add_check;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Try changing to the directory containing the executable, if
|
||||
* using the default data file. This allows running the executable
|
||||
* from another directory (e.g. the project root) and still access
|
||||
* the .datax file as well as data files used by test cases
|
||||
* (typically from tests/data_files).
|
||||
*
|
||||
* Note that we do this before the platform setup (which may access
|
||||
* files such as a random seed). We also do this before accessing
|
||||
* test-specific files such as the outcome file, which is arguably
|
||||
* not desirable and should be fixed later.
|
||||
*/
|
||||
if (argc == 1) {
|
||||
try_chdir_if_supported(argv[0]);
|
||||
int ret = platform_setup();
|
||||
if( ret != 0 )
|
||||
{
|
||||
mbedtls_fprintf( stderr,
|
||||
"FATAL: Failed to initialize platform - error %d\n",
|
||||
ret );
|
||||
return( -1 );
|
||||
}
|
||||
|
||||
int ret = mbedtls_test_platform_setup();
|
||||
if (ret != 0) {
|
||||
mbedtls_fprintf(stderr,
|
||||
"FATAL: Failed to initialize platform - error %d\n",
|
||||
ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = execute_tests(argc, argv);
|
||||
mbedtls_test_platform_teardown();
|
||||
return ret;
|
||||
ret = execute_tests( argc, argv );
|
||||
platform_teardown();
|
||||
return( ret );
|
||||
}
|
||||
|
||||
|
||||
440
externals/mbedtls/tests/suites/target_test.function
vendored
Normal file
440
externals/mbedtls/tests/suites/target_test.function
vendored
Normal file
@@ -0,0 +1,440 @@
|
||||
#line 2 "suites/target_test.function"
|
||||
|
||||
#include "greentea-client/test_env.h"
|
||||
|
||||
/**
|
||||
* \brief Increments pointer and asserts that it does not overflow.
|
||||
*
|
||||
* \param p Pointer to byte array
|
||||
* \param start Pointer to start of byte array
|
||||
* \param len Length of byte array
|
||||
* \param step Increment size
|
||||
*
|
||||
*/
|
||||
#define INCR_ASSERT(p, start, len, step) do \
|
||||
{ \
|
||||
TEST_HELPER_ASSERT( ( p ) >= ( start ) ); \
|
||||
TEST_HELPER_ASSERT( sizeof( *( p ) ) == sizeof( *( start ) ) ); \
|
||||
/* <= is checked to support use inside a loop where \
|
||||
pointer is incremented after reading data. */ \
|
||||
TEST_HELPER_ASSERT( (uint32_t)( ( ( p ) - ( start ) ) + ( step ) ) <= ( len ) );\
|
||||
( p ) += ( step ); \
|
||||
} \
|
||||
while( 0 )
|
||||
|
||||
|
||||
/**
|
||||
* \brief 4 byte align unsigned char pointer
|
||||
*
|
||||
* \param p Pointer to byte array
|
||||
* \param start Pointer to start of byte array
|
||||
* \param len Length of byte array
|
||||
*
|
||||
*/
|
||||
#define ALIGN_32BIT(p, start, len) do \
|
||||
{ \
|
||||
uint32_t align = ( - (uintptr_t)( p ) ) % 4; \
|
||||
INCR_ASSERT( ( p ), ( start ), ( len ), align );\
|
||||
} \
|
||||
while( 0 )
|
||||
|
||||
|
||||
/**
|
||||
* \brief Verify dependencies. Dependency identifiers are
|
||||
* encoded in the buffer as 8 bit unsigned integers.
|
||||
*
|
||||
* \param count Number of dependencies.
|
||||
* \param dep_p Pointer to buffer.
|
||||
*
|
||||
* \return DEPENDENCY_SUPPORTED if success else DEPENDENCY_NOT_SUPPORTED.
|
||||
*/
|
||||
int verify_dependencies( uint8_t count, uint8_t * dep_p )
|
||||
{
|
||||
uint8_t i;
|
||||
for ( i = 0; i < count; i++ )
|
||||
{
|
||||
if ( dep_check( (int)(dep_p[i]) ) != DEPENDENCY_SUPPORTED )
|
||||
return( DEPENDENCY_NOT_SUPPORTED );
|
||||
}
|
||||
return( DEPENDENCY_SUPPORTED );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Receives hex string on serial interface, and converts to a byte.
|
||||
*
|
||||
* \param none
|
||||
*
|
||||
* \return unsigned int8
|
||||
*/
|
||||
uint8_t receive_byte()
|
||||
{
|
||||
uint8_t byte;
|
||||
uint8_t c[3];
|
||||
char *endptr;
|
||||
c[0] = greentea_getc();
|
||||
c[1] = greentea_getc();
|
||||
c[2] = '\0';
|
||||
|
||||
TEST_HELPER_ASSERT( mbedtls_test_unhexify( &byte, c ) != 2 );
|
||||
return( byte );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Receives unsigned integer on serial interface.
|
||||
* Integers are encoded in network order, and sent as hex ascii string.
|
||||
*
|
||||
* \param none
|
||||
*
|
||||
* \return unsigned int
|
||||
*/
|
||||
uint32_t receive_uint32()
|
||||
{
|
||||
uint32_t value;
|
||||
const uint8_t c_be[8] = { greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc(),
|
||||
greentea_getc()
|
||||
};
|
||||
const uint8_t c[9] = { c_be[6], c_be[7], c_be[4], c_be[5], c_be[2],
|
||||
c_be[3], c_be[0], c_be[1], '\0' };
|
||||
TEST_HELPER_ASSERT( mbedtls_test_unhexify( (uint8_t*)&value, c ) != 8 );
|
||||
return( value );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Parses out an unsigned 32 int value from the byte array.
|
||||
* Integers are encoded in network order.
|
||||
*
|
||||
* \param p Pointer to byte array
|
||||
*
|
||||
* \return unsigned int
|
||||
*/
|
||||
uint32_t parse_uint32( uint8_t * p )
|
||||
{
|
||||
uint32_t value;
|
||||
value = *p++ << 24;
|
||||
value |= *p++ << 16;
|
||||
value |= *p++ << 8;
|
||||
value |= *p;
|
||||
return( value );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Receives test data on serial as greentea key,value pair:
|
||||
* {{<length>;<byte array>}}
|
||||
*
|
||||
* \param data_len Out pointer to hold received data length.
|
||||
*
|
||||
* \return Byte array.
|
||||
*/
|
||||
uint8_t * receive_data( uint32_t * data_len )
|
||||
{
|
||||
uint32_t i = 0, errors = 0;
|
||||
char c;
|
||||
uint8_t * data = NULL;
|
||||
|
||||
/* Read opening braces */
|
||||
i = 0;
|
||||
while ( i < 2 )
|
||||
{
|
||||
c = greentea_getc();
|
||||
/* Ignore any prevous CR LF characters */
|
||||
if ( c == '\n' || c == '\r' )
|
||||
continue;
|
||||
i++;
|
||||
if ( c != '{' )
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
/* Read data length */
|
||||
*data_len = receive_uint32();
|
||||
data = (uint8_t *)malloc( *data_len );
|
||||
TEST_HELPER_ASSERT( data != NULL );
|
||||
|
||||
greentea_getc(); // read ';' received after key i.e. *data_len
|
||||
|
||||
for( i = 0; i < *data_len; i++ )
|
||||
data[i] = receive_byte();
|
||||
|
||||
/* Read closing braces */
|
||||
for( i = 0; i < 2; i++ )
|
||||
{
|
||||
c = greentea_getc();
|
||||
if ( c != '}' )
|
||||
{
|
||||
errors++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( errors )
|
||||
{
|
||||
free( data );
|
||||
data = NULL;
|
||||
*data_len = 0;
|
||||
}
|
||||
|
||||
return( data );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Parse the received byte array and count the number of arguments
|
||||
* to the test function passed as type hex.
|
||||
*
|
||||
* \param count Parameter count
|
||||
* \param data Received Byte array
|
||||
* \param data_len Byte array length
|
||||
*
|
||||
* \return count of hex params
|
||||
*/
|
||||
uint32_t find_hex_count( uint8_t count, uint8_t * data, uint32_t data_len )
|
||||
{
|
||||
uint32_t i = 0, sz = 0;
|
||||
char c;
|
||||
uint8_t * p = NULL;
|
||||
uint32_t hex_count = 0;
|
||||
|
||||
p = data;
|
||||
|
||||
for( i = 0; i < count; i++ )
|
||||
{
|
||||
c = (char)*p;
|
||||
INCR_ASSERT( p, data, data_len, 1 );
|
||||
|
||||
/* Align p to 4 bytes for int, expression, string len or hex length */
|
||||
ALIGN_32BIT( p, data, data_len );
|
||||
|
||||
/* Network to host conversion */
|
||||
sz = (int32_t)parse_uint32( p );
|
||||
|
||||
INCR_ASSERT( p, data, data_len, sizeof( int32_t ) );
|
||||
|
||||
if ( c == 'H' || c == 'S' )
|
||||
{
|
||||
INCR_ASSERT( p, data, data_len, sz );
|
||||
hex_count += ( c == 'H' )?1:0;
|
||||
}
|
||||
}
|
||||
|
||||
return( hex_count );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Parses received byte array for test parameters.
|
||||
*
|
||||
* \param count Parameter count
|
||||
* \param data Received Byte array
|
||||
* \param data_len Byte array length
|
||||
* \param error Parsing error out variable.
|
||||
*
|
||||
* \return Array of parsed parameters allocated on heap.
|
||||
* Note: Caller has the responsibility to delete
|
||||
* the memory after use.
|
||||
*/
|
||||
void ** parse_parameters( uint8_t count, uint8_t * data, uint32_t data_len,
|
||||
int * error )
|
||||
{
|
||||
uint32_t i = 0, hex_count = 0;
|
||||
char c;
|
||||
void ** params = NULL;
|
||||
void ** cur = NULL;
|
||||
uint8_t * p = NULL;
|
||||
|
||||
hex_count = find_hex_count(count, data, data_len);
|
||||
|
||||
params = (void **)malloc( sizeof( void *) * ( count + hex_count ) );
|
||||
TEST_HELPER_ASSERT( params != NULL );
|
||||
cur = params;
|
||||
|
||||
p = data;
|
||||
|
||||
/* Parameters */
|
||||
for( i = 0; i < count; i++ )
|
||||
{
|
||||
c = (char)*p;
|
||||
INCR_ASSERT( p, data, data_len, 1 );
|
||||
|
||||
/* Align p to 4 bytes for int, expression, string len or hex length */
|
||||
ALIGN_32BIT( p, data, data_len );
|
||||
|
||||
/* Network to host conversion */
|
||||
*( (int32_t *)p ) = (int32_t)parse_uint32( p );
|
||||
|
||||
switch( c )
|
||||
{
|
||||
case 'E':
|
||||
{
|
||||
if ( get_expression( *( (int32_t *)p ), (int32_t *)p ) )
|
||||
{
|
||||
*error = KEY_VALUE_MAPPING_NOT_FOUND;
|
||||
goto exit;
|
||||
}
|
||||
} /* Intentional fall through */
|
||||
case 'I':
|
||||
{
|
||||
*cur++ = (void *)p;
|
||||
INCR_ASSERT( p, data, data_len, sizeof( int32_t ) );
|
||||
}
|
||||
break;
|
||||
case 'H': /* Intentional fall through */
|
||||
case 'S':
|
||||
{
|
||||
uint32_t * sz = (uint32_t *)p;
|
||||
INCR_ASSERT( p, data, data_len, sizeof( int32_t ) );
|
||||
*cur++ = (void *)p;
|
||||
if ( c == 'H' )
|
||||
*cur++ = (void *)sz;
|
||||
INCR_ASSERT( p, data, data_len, ( *sz ) );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
*error = DISPATCH_INVALID_TEST_DATA;
|
||||
goto exit;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
if ( *error )
|
||||
{
|
||||
free( params );
|
||||
params = NULL;
|
||||
}
|
||||
|
||||
return( params );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Sends greentea key and int value pair to host.
|
||||
*
|
||||
* \param key key string
|
||||
* \param value integer value
|
||||
*
|
||||
* \return void
|
||||
*/
|
||||
void send_key_integer( char * key, int value )
|
||||
{
|
||||
char str[50];
|
||||
snprintf( str, sizeof( str ), "%d", value );
|
||||
greentea_send_kv( key, str );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Sends test setup failure to the host.
|
||||
*
|
||||
* \param failure Test set failure
|
||||
*
|
||||
* \return void
|
||||
*/
|
||||
void send_failure( int failure )
|
||||
{
|
||||
send_key_integer( "F", failure );
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Sends test status to the host.
|
||||
*
|
||||
* \param status Test status (PASS=0/FAIL=!0)
|
||||
*
|
||||
* \return void
|
||||
*/
|
||||
void send_status( int status )
|
||||
{
|
||||
send_key_integer( "R", status );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Embedded implementation of execute_tests().
|
||||
* Ignores command line and received test data
|
||||
* on serial.
|
||||
*
|
||||
* \param argc not used
|
||||
* \param argv not used
|
||||
*
|
||||
* \return Program exit status.
|
||||
*/
|
||||
int execute_tests( int args, const char ** argv )
|
||||
{
|
||||
int ret = 0;
|
||||
uint32_t data_len = 0;
|
||||
uint8_t count = 0, function_id;
|
||||
void ** params = NULL;
|
||||
uint8_t * data = NULL, * p = NULL;
|
||||
|
||||
GREENTEA_SETUP( 800, "mbedtls_test" );
|
||||
greentea_send_kv( "GO", " " );
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
ret = 0;
|
||||
test_info.result = TEST_RESULT_SUCCESS;
|
||||
data_len = 0;
|
||||
|
||||
data = receive_data( &data_len );
|
||||
if ( data == NULL )
|
||||
continue;
|
||||
p = data;
|
||||
|
||||
do
|
||||
{
|
||||
/* Read dependency count */
|
||||
count = *p;
|
||||
TEST_HELPER_ASSERT( count < data_len );
|
||||
INCR_ASSERT( p, data, data_len, sizeof( uint8_t ) );
|
||||
ret = verify_dependencies( count, p );
|
||||
if ( ret != DEPENDENCY_SUPPORTED )
|
||||
break;
|
||||
|
||||
if ( count )
|
||||
INCR_ASSERT( p, data, data_len, count );
|
||||
|
||||
/* Read function id */
|
||||
function_id = *p;
|
||||
INCR_ASSERT( p, data, data_len, sizeof( uint8_t ) );
|
||||
if ( ( ret = check_test( function_id ) ) != DISPATCH_TEST_SUCCESS )
|
||||
break;
|
||||
|
||||
/* Read number of parameters */
|
||||
count = *p;
|
||||
INCR_ASSERT( p, data, data_len, sizeof( uint8_t ) );
|
||||
|
||||
/* Parse parameters if present */
|
||||
if ( count )
|
||||
{
|
||||
params = parse_parameters( count, p, data_len - ( p - data ), &ret );
|
||||
if ( ret )
|
||||
break;
|
||||
}
|
||||
|
||||
ret = dispatch_test( function_id, params );
|
||||
}
|
||||
while ( 0 );
|
||||
|
||||
if ( data )
|
||||
{
|
||||
free( data );
|
||||
data = NULL;
|
||||
}
|
||||
|
||||
if ( params )
|
||||
{
|
||||
free( params );
|
||||
params = NULL;
|
||||
}
|
||||
|
||||
if ( ret )
|
||||
send_failure( ret );
|
||||
else
|
||||
send_status( test_info.result );
|
||||
}
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
@@ -71,193 +71,145 @@ AES-128-CBC Decrypt NIST KAT #12
|
||||
aes_decrypt_cbc:"00000000000000000000000000000000":"00000000000000000000000000000000":"39bde67d5c8ed8a8b1c37eb8fa9f5ac0":"fffffffffffffffffffffffffffffffc":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"fffffffffffffffffffffffffffffffffffffffffffffe00":"00000000000000000000000000000000":"00000000000000000000000000000000":"ddb505e6cc1384cbaec1df90b80beb20":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"ffffffffffffffffffffffffffffffffffffffffffffff00":"00000000000000000000000000000000":"00000000000000000000000000000000":"5674a3bed27bf4bd3622f9f5fe208306":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"ffffffffffffffffffffffffffffffffffffffffffffff80":"00000000000000000000000000000000":"00000000000000000000000000000000":"b687f26a89cfbfbb8e5eeac54055315e":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"25a39dbfd8034f71a81f9ceb55026e4037f8f6aa30ab44ce":"00000000000000000000000000000000":"00000000000000000000000000000000":"3608c344868e94555d23a120f8a5502d":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"e08c15411774ec4a908b64eadc6ac4199c7cd453f3aaef53":"00000000000000000000000000000000":"00000000000000000000000000000000":"77da2021935b840b7f5dcc39132da9e5":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"3b375a1ff7e8d44409696e6326ec9dec86138e2ae010b980":"00000000000000000000000000000000":"00000000000000000000000000000000":"3b7c24f825e3bf9873c9f14d39a0e6f4":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"51719783d3185a535bd75adc65071ce1":"4f354592ff7c8847d2d0870ca9481b7c":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"26aa49dcfe7629a8901a69a9914e6dfd":"d5e08bf9a182e857cf40b3a36ee248cc":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"941a4773058224e1ef66d10e0a6ee782":"067cd9d3749207791841562507fa9626":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffc00000000000000000000000000000":"030d7e5b64f380a7e4ea5387b5cd7f49":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffe00000000000000000000000000000":"0dc9a2610037009b698f11bb7e86c83e":0
|
||||
|
||||
AES-192-CBC Encrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"fff00000000000000000000000000000":"0046612c766d1840c226364f1fa7ed72":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"902d88d13eae52089abd6143cfe394e9":"ffffffffe00000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"d49bceb3b823fedd602c305345734bd2":"fffffffff00000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"707b1dbb0ffa40ef7d95def421233fae":"fffffffff80000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"fffffffffffffffffffc0000000000000000000000000000":"00000000000000000000000000000000":"8dfd999be5d0cfa35732c0ddc88ff5a5":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"fffffffffffffffffffe0000000000000000000000000000":"00000000000000000000000000000000":"02647c76a300c3173b841487eb2bae9f":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"ffffffffffffffffffff0000000000000000000000000000":"00000000000000000000000000000000":"172df8b02f04b53adab028b4e01acd87":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35":"00000000000000000000000000000000":"3cf5e1d21a17956d1dffad6a7c41c659":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"45899367c3132849763073c435a9288a766c8b9ec2308516":"00000000000000000000000000000000":"69fd12e8505f8ded2fdcb197a121b362":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"ec250e04c3903f602647b85a401a1ae7ca2f02f67fa4253e":"00000000000000000000000000000000":"8aa584e2cc4d17417a97cb9a28ba29c8":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"c9b8135ff1b5adc413dfd053b21bd96d":"9c2d8842e5f48f57648205d39a239af1":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"4a3650c3371ce2eb35e389a171427440":"bff52510095f518ecca60af4205444bb":0
|
||||
|
||||
AES-192-CBC Decrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"4f354592ff7c8847d2d0870ca9481b7c":"51719783d3185a535bd75adc65071ce1":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"8000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"e35a6dcb19b201a01ebcfa8aa22b5759":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"c000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"b29169cdcf2d83e838125a12ee6aa400":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"e000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"d8f3a72fc3cdf74dfaf6c3e6b97b2fa6":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf":"00000000000000000000000000000000":"00000000000000000000000000000000":"fc6aec906323480005c58e7e1ab004ad":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9":"00000000000000000000000000000000":"00000000000000000000000000000000":"a3944b95ca0b52043584ef02151926a8":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e":"00000000000000000000000000000000":"00000000000000000000000000000000":"a74289fe73a4c123ca189ea1e1b49ad5":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"761c1fe41a18acf20d241650611d90f1":"623a52fcea5d443e48d9181ab32c7421":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"8a560769d605868ad80d819bdba03771":"38f2c7ae10612415d27ca190d27da8b4":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"91fbef2d15a97816060bee1feaa49afe":"1bc704f1bce135ceb810341b216d7abe":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffffffffffffff800000000000000000":"0d9ac756eb297695eed4d382eb126d26":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffffffffffffffc00000000000000000":"56ede9dda3f6f141bff1757fa689c3e1":0
|
||||
|
||||
AES-256-CBC Encrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffffffffffffffe00000000000000000":"768f520efe0f23e61d3ec8ad9ce91774":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"49af6b372135acef10132e548f217b17":"ff000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"8bcd40f94ebb63b9f7909676e667f1e7":"ff800000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"fe1cffb83f45dcfb38b29be438dbd3ab":"ffc00000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00":"00000000000000000000000000000000":"cca7c3086f5f9511b31233da7cab9160":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00":"00000000000000000000000000000000":"5b40ff4ec9be536ba23035fa4f06064c":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"00000000000000000000000000000000":"60eb5af8416b257149372194e8b88749":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1":"00000000000000000000000000000000":"798c7c005dee432b2c8ea5dfa381ecc3":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"b7a5794d52737475d53d5a377200849be0260a67a2b22ced8bbef12882270d07":"00000000000000000000000000000000":"637c31dc2591a07636f646b72daabbe7":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"fca02f3d5011cfc5c1e23165d413a049d4526a991827424d896fe3435e0bf68e":"00000000000000000000000000000000":"179a49c712154bbffbe6e7a84a18e220":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"a9ff75bd7cf6613d3731c77c3b6d0c04":"0b24af36193ce4665f2825d7b4749c98":0
|
||||
|
||||
AES-256-CBC Decrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"623a52fcea5d443e48d9181ab32c7421":"761c1fe41a18acf20d241650611d90f1":0
|
||||
|
||||
@@ -95,195 +95,195 @@ depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"00000000000000000000000000000000":"ffffffffffffffffc000000000000000":"10d3ed7a6fe15ab4d91acbc7d0767ab1":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"fffffffffffffffffffc0000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"8dfd999be5d0cfa35732c0ddc88ff5a5"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"fffffffffffffffffffe0000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"02647c76a300c3173b841487eb2bae9f"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"ffffffffffffffffffff0000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"172df8b02f04b53adab028b4e01acd87"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"d184c36cf0dddfec39e654195006022237871a47c33d3198":"00000000000000000000000000000000":"00000000000000000000000000000000":"2e19fb60a3e1de0166f483c97824a978"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"4c6994ffa9dcdc805b60c2c0095334c42d95a8fc0ca5b080":"00000000000000000000000000000000":"00000000000000000000000000000000":"7656709538dd5fec41e0ce6a0f8e207d"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"c88f5b00a4ef9a6840e2acaf33f00a3bdc4e25895303fa72":"00000000000000000000000000000000":"00000000000000000000000000000000":"a67cf333b314d411d3c0ae6e1cfcd8f5"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"9c2d8842e5f48f57648205d39a239af1":"00000000000000000000000000000000":"c9b8135ff1b5adc413dfd053b21bd96d"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"bff52510095f518ecca60af4205444bb":"00000000000000000000000000000000":"4a3650c3371ce2eb35e389a171427440"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"51719783d3185a535bd75adc65071ce1":"00000000000000000000000000000000":"4f354592ff7c8847d2d0870ca9481b7c"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"ffffffffffffffe00000000000000000":"00000000000000000000000000000000":"f34e4a6324ea4a5c39a661c8fe5ada8f"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"fffffffffffffff00000000000000000":"00000000000000000000000000000000":"0882a16f44088d42447a29ac090ec17e"
|
||||
|
||||
AES-192-CFB128 Encrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"000000000000000000000000000000000000000000000000":"fffffffffffffff80000000000000000":"00000000000000000000000000000000":"3a3c15bfc11a9537c130687004e136ee"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"ffffffffffffffffffffffffffffffffffffffffffe00000":"00000000000000000000000000000000":"60136703374f64e860b48ce31f930716":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"fffffffffffffffffffffffffffffffffffffffffff00000":"00000000000000000000000000000000":"8d63a269b14d506ccc401ab8a9f1b591":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"fffffffffffffffffffffffffffffffffffffffffff80000":"00000000000000000000000000000000":"d317f81dc6aa454aee4bd4a5a5cff4bd":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9":"00000000000000000000000000000000":"19c80ec4a6deb7e5ed1033dda933498f":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"b3ad5cea1dddc214ca969ac35f37dae1a9a9d1528f89bb35":"00000000000000000000000000000000":"3cf5e1d21a17956d1dffad6a7c41c659":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"45899367c3132849763073c435a9288a766c8b9ec2308516":"00000000000000000000000000000000":"69fd12e8505f8ded2fdcb197a121b362":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"9c2d8842e5f48f57648205d39a239af1":"c9b8135ff1b5adc413dfd053b21bd96d":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"bff52510095f518ecca60af4205444bb":"4a3650c3371ce2eb35e389a171427440":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"ffffffffffffffffffff000000000000":"54d632d03aba0bd0f91877ebdd4d09cb":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"ffffffffffffffffffff800000000000":"d3427be7e4d27cd54f5fe37b03cf0897":"00000000000000000000000000000000"
|
||||
|
||||
AES-192-CFB128 Decrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"000000000000000000000000000000000000000000000000":"ffffffffffffffffffffc00000000000":"b2099795e88cc158fd75ea133d7e7fbe":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"ffffffe000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"bbd1097a62433f79449fa97d4ee80dbf"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"fffffff000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"07058e408f5b99b0e0f061a1761b5b3b"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"fffffff800000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"5fd1f13fa0f31e37fabde328f894eac2"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"13428b5e4c005e0636dd338405d173ab135dec2a25c22c5df0722d69dcc43887":"00000000000000000000000000000000":"00000000000000000000000000000000":"649a71545378c783e368c9ade7114f6c"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"07eb03a08d291d1b07408bf3512ab40c91097ac77461aad4bb859647f74f00ee":"00000000000000000000000000000000":"00000000000000000000000000000000":"47cb030da2ab051dfc6c4bf6910d12bb"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"90143ae20cd78c5d8ebdd6cb9dc1762427a96c78c639bccc41a61424564eafe1":"00000000000000000000000000000000":"00000000000000000000000000000000":"798c7c005dee432b2c8ea5dfa381ecc3"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"0b24af36193ce4665f2825d7b4749c98":"00000000000000000000000000000000":"a9ff75bd7cf6613d3731c77c3b6d0c04"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"761c1fe41a18acf20d241650611d90f1":"00000000000000000000000000000000":"623a52fcea5d443e48d9181ab32c7421"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"8a560769d605868ad80d819bdba03771":"00000000000000000000000000000000":"38f2c7ae10612415d27ca190d27da8b4"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffe0000000":"00000000000000000000000000000000":"2be1fae5048a25582a679ca10905eb80"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffff0000000":"00000000000000000000000000000000":"da86f292c6f41ea34fb2068df75ecc29"
|
||||
|
||||
AES-256-CFB128 Encrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_encrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffff8000000":"00000000000000000000000000000000":"220df19f85d69b1b562fa69a3c5beca5"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"ffffffffff800000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"be66cfea2fecd6bf0ec7b4352c99bcaa":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"ffffffffffc00000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"df31144f87a2ef523facdcf21a427804":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"ffffffffffe00000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"b5bb0f5629fb6aae5e1839a3c3625d63":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"1d85a181b54cde51f0e098095b2962fdc93b51fe9b88602b3f54130bf76a5bd9":"00000000000000000000000000000000":"531c2c38344578b84d50b3c917bbb6e1":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"dc0eba1f2232a7879ded34ed8428eeb8769b056bbaf8ad77cb65c3541430b4cf":"00000000000000000000000000000000":"fc6aec906323480005c58e7e1ab004ad":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9":"00000000000000000000000000000000":"a3944b95ca0b52043584ef02151926a8":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"761c1fe41a18acf20d241650611d90f1":"623a52fcea5d443e48d9181ab32c7421":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"8a560769d605868ad80d819bdba03771":"38f2c7ae10612415d27ca190d27da8b4":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"91fbef2d15a97816060bee1feaa49afe":"1bc704f1bce135ceb810341b216d7abe":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"e0000000000000000000000000000000":"9b80eefb7ebe2d2b16247aa0efc72f5d":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"f0000000000000000000000000000000":"7f2c5ece07a98d8bee13c51177395ff7":"00000000000000000000000000000000"
|
||||
|
||||
AES-256-CFB128 Decrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_CFB
|
||||
aes_decrypt_cfb128:"0000000000000000000000000000000000000000000000000000000000000000":"f8000000000000000000000000000000":"7818d800dcf6f4be1e0e94f403d1e4c2":"00000000000000000000000000000000"
|
||||
|
||||
AES-128-CFB8 Encrypt NIST MMT #0
|
||||
@@ -347,161 +347,121 @@ AES-128-CFB8 Decrypt NIST MMT #9
|
||||
aes_decrypt_cfb8:"6399c1dc068ba3509845628fa9ed1a96":"1157c2766c86b754df485be9dd5851df":"c9c284e9abbfe6fb11fe":"feff4e2e2458addf2a54"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #0
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"32a1b0e3da368db563d7316b9779d3327e53d9a6d287ed97":"3dd0e7e21f09d5842f3a699da9b57346":"54":"6d"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"a6381dcc18dd85d7729c1dce90743bbe1df580d857f5b9c4":"c0ac501fad7f4a1465daf32e18fc1a4f":"a456":"8fb6"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"d08dbee4732c7ffc544c1695b201d30e795037325ef0aa18":"a1e39aeeb972a8d70aa0fc7d6fac6eac":"fd115d":"c4c016"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"277185a4a440869920f523c4d578fc5bedd33aee8d2ebaf7":"67be00572f82aabc13d6e5a2e51d1f08":"88e07061":"8bb630ba"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"83f70fdce47306fcbb8c21b6a8b3209f7ec185fef4deebd4":"ff73b310cf7e62ce6f501092fa6cc888":"36664e222d":"20855555d1"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"c5be271a29f4a29e085e8e98196601dcb88ccc03e559a304":"9f51fa2eb8a084718f7240e47d135dce":"b57f12342a62":"73ff9bf3ec4b"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"9c55322e6d495be01076d4b80371ad1479ae5636ff9861f5":"2b79cfc1ff37254dedf5924a6b61e3e0":"6dcede43c2ee65":"7c897658282220"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"6e78ccece7d1b2a3c08cf0de738bee33cbbbf78d9bf4922c":"4bbe15b1e94a7b97250a2136d8804e46":"ceda42527871f802":"d92ff89045b1917f"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"13c98665746f7825b37b404916240adbd1e4364be1d05c63":"0e479fbd5f3961f38b8a26be1f2d65c5":"1b0a63d73464ab3c8a":"5485847e5d3c2e2cc4"
|
||||
|
||||
AES-192-CFB8 Encrypt NIST MMT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"537e7bf661fd4024a024613f15b13690f7d0c847c1e18965":"3a81f9d9d3c155b0caad5d73349476fc":"d3d8b9b984adc24237ee":"3879fea72ac99929e53a"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #0
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"7dbdc15ad4034ed828dc862799b7adc9abd68eaf9d526d5d":"4359683af5a3a85c248fb7f5506f317b":"25":"2d"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"3a2cdf9c9608c1dd6233d03dd855293b0885915114b25279":"e7a28ee34acc52128ddae658ec6398a2":"0678":"7b04"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"c984b99a6cc5bc88003143cbe4b755e6e30ba94114f7ad1e":"41e3b8fd138f8c358dfeef420302f634":"037cf6":"658d0a"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"39747da225bdc0c53c3463fd686dbe19d14157535171f91d":"77d3a5ad8bbdb169f8d29e5f21798651":"0fb0cee2":"2d191f2f"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"4cd13179dfa16d01c6a8633dfc8783e723e72114c9b0d50a":"6657c46c99d642474c330d8016b71dbe":"09d914cf0b":"105a64c872"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"5dcc9b8d8a456e9917cd8d54d7f7100b34964b4ed2d398a0":"4fa295a8987f1b010ce4e011fbf94156":"288c752d9fac":"98f332d37b78"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"c8baf0204ef80b8e0125efe43a0bccdfd0f356b62e6c75fe":"e9144bf2cbc5720a1b4cb6f37d11edff":"c9981a34b7aa89":"56bb4c3cae53b3"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"64e40763f38a63ae378c32052b0ae3aa538bb868a04ac985":"aacf65089e4b285438451ffdcd0f6389":"d8fcf83a88510a0d":"b567411bc61b0a76"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"7bfdca9605f17253f203efffc92da96fde023007d22cdad0":"45c09e44036070f8a7737a5176b8cf26":"9c195b1944c4af5bfb":"89358df65c3ef14d26"
|
||||
|
||||
AES-192-CFB8 Decrypt NIST MMT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"baf08b76317a65c5f07ae6f57eb0e65488659324d29709e3":"0a02846b62abb693ef31d754842eed29":"729c0b6deb75fa6eb5e8":"9895932402393dc33a60"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #0
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"34e8091cee09f1bd3ebf1e8f05f51bfbd4899ef2ae006a3a0f7875052cdd46c8":"43eb4dcc4b04a80216a20e4a09a7abb5":"f9":"28"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"e04e43173113109e1343393842fe6caef3f8a2e506d7f55f83dcb10444c6ad23":"a38b88a293b077fb5546636aad90d663":"2914":"69a6"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"064874092f7a13cc4462247ad423d0e96edf42e8b67a5a23b7a0a6477b098e66":"338c552ff1eca14408e05d8cf9f3b31b":"b974fa":"1cff95"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"56794adb0ef04aeddeabd650de736531d408837954b919002c33edfdff976cc2":"71b5526facea4236d33f1f4107e4b04f":"db774912":"f04d9d4f"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"dddd7f234e7d0e6ec64560b96430986a856f2ee9805443a7946e31601ef6679d":"e20f39db0025eb24491bd06012887108":"ad1d5311ea":"19cc97a662"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"ec73a760272c83f91771b3ab7b188715c6d6afb9c554feae83856e966a3863d0":"ae7bfa38fd25778fcf66ce8157f6e42e":"02fe724fbc5d":"b0eca63405f4"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"a66874ca0b70fb98b37c033ec96413f339adae02acade015b9f016b459db3309":"6ed480d9e4ed031cf66bb1e07f8d5514":"b4777e6bcd9a05":"8c017397ad5bab"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"a3dbbb775ada92b0b8ed1632444e21c1c86ff3eba8f628307306e766b8c15b5c":"4ec56a8e541f5cfe7b8ab947bfa4fd08":"1d70a5a82badf5ea":"1e22bebebeacd81d"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"64135e67c0ca1acef3360d930afcd726c5b04861a69c1b6a48bde1daf20f3b1f":"5377a154d5f948189f9aa57b466c16b2":"a36ca5ea382a322eef":"3105016567d3174aed"
|
||||
|
||||
AES-256-CFB8 Encrypt NIST MMT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cfb8:"ebbb4566b5e182e0f072466b0b311df38f9175bc0213a5530bce2ec4d74f400d":"0956a48e01002c9e16376d6e308dbad1":"b0fe25ac8d3d28a2f471":"638c6823e7256fb5626e"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #0
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"1687831580cb764321a9d674dbd0a9640f668b0f58ef01b87a710b3095d5f855":"6cd5bec6d6e1fd23afc543b8f80d3f89":"6f":"98"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"b6b504e8b7065373ea31cd549e52eda7cb96fd1db14eddacbc420085ab48b747":"870ecd45b1241803ddaf8bad15a025d7":"17d4":"3572"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"6ad3105e15fb5b742bf4fe1eb8e98c6c1ffea653107c84f6b42ed1232a0bbc21":"17534c89c4eae5dea6ea353dde7b1623":"a9841e":"f9411a"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"758f3fa8b2b289f19fd59e7316be40b904eff7f565caac4570f972360e0da787":"b21335ae980898fa92c4b3069e532973":"84b35e25":"47887872"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"802e854eb799500975d960a67885820d195e02ab23d51f15e5cdbcee86a1580c":"94478c4e44e2fa8d2e6bc43d384597e6":"d1e96bf1e8":"ed414b5689"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"3a0c03ca9d1e5d49bb37f9041f88d159c3f1d5ce26c798f59ed54a93f0a0e600":"9aae38ba832e4b093b50444074517d20":"74410ccd12da":"8207eee2a7ab"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"ee05462128fea75e919f6f436cb198f222847d698a283f5767df682d33d3ce77":"d2ad55e41887075184635112a22fc093":"ff039e89877b44":"aff3aa4c24e353"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"08abbdcc3eb9c1717db1faa38dcd0893afd5e16e2596747af58f8d61ebedf9cd":"b925c8dc9a9b55a4372ea6d37d21c1eb":"e176ba99ea602fd9":"b7370050288bf600"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"56d404a893fb3b3f594aab18939230b096646a37a781629fbd9270f3891a5cea":"e5906b36f2d97e6f2db19b6c7a3ce319":"c55a9a917a809a784b":"e44995bbb0fff40fee"
|
||||
|
||||
AES-256-CFB8 Decrypt NIST MMT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cfb8:"ec13062551e4d7291e320f565b749eea1809b663b26f2c4d53b52058b833e0ad":"fbfa5a528e20863012790c2abafb5a0c":"2bfc3f0209307140101a":"547bfd642cf6e12ed942"
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
# Test vectors from NIST Special Publication 800-38A 2001 Edition
|
||||
# Recommendation for Block Edition Cipher Modes of Operation
|
||||
|
||||
# as below, but corrupt the key to check the test catches it
|
||||
AES-CTR NIST 128 bad
|
||||
aes_ctr:"00000000000000000000000000000000":"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee":1
|
||||
|
||||
AES-CTR NIST 128
|
||||
aes_ctr:"2b7e151628aed2a6abf7158809cf4f3c":"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee":0
|
||||
|
||||
AES-CTR NIST 192
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_ctr:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b050":0
|
||||
|
||||
AES-CTR NIST 256
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_ctr:"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4":"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6":0
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1 1
|
||||
aes_encrypt_ctr_multipart:1:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 2 1
|
||||
aes_encrypt_ctr_multipart:2:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 2 2
|
||||
aes_encrypt_ctr_multipart:2:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 4 1
|
||||
aes_encrypt_ctr_multipart:4:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 4 2
|
||||
aes_encrypt_ctr_multipart:4:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 15 1
|
||||
aes_encrypt_ctr_multipart:15:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 15 2
|
||||
aes_encrypt_ctr_multipart:15:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 15 8
|
||||
aes_encrypt_ctr_multipart:15:8
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 15 15
|
||||
aes_encrypt_ctr_multipart:15:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 16 1
|
||||
aes_encrypt_ctr_multipart:16:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 16 2
|
||||
aes_encrypt_ctr_multipart:16:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 16 8
|
||||
aes_encrypt_ctr_multipart:16:8
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 16 15
|
||||
aes_encrypt_ctr_multipart:16:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 16 16
|
||||
aes_encrypt_ctr_multipart:16:16
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 17 1
|
||||
aes_encrypt_ctr_multipart:17:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 17 2
|
||||
aes_encrypt_ctr_multipart:17:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 17 8
|
||||
aes_encrypt_ctr_multipart:17:8
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 17 15
|
||||
aes_encrypt_ctr_multipart:17:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 17 16
|
||||
aes_encrypt_ctr_multipart:17:16
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 1
|
||||
aes_encrypt_ctr_multipart:63:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 2
|
||||
aes_encrypt_ctr_multipart:63:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 8
|
||||
aes_encrypt_ctr_multipart:63:8
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 15
|
||||
aes_encrypt_ctr_multipart:63:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 16
|
||||
aes_encrypt_ctr_multipart:63:16
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 63 17
|
||||
aes_encrypt_ctr_multipart:63:17
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 1
|
||||
aes_encrypt_ctr_multipart:64:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 2
|
||||
aes_encrypt_ctr_multipart:64:2
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 8
|
||||
aes_encrypt_ctr_multipart:64:8
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 15
|
||||
aes_encrypt_ctr_multipart:64:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 16
|
||||
aes_encrypt_ctr_multipart:64:16
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 64 17
|
||||
aes_encrypt_ctr_multipart:64:17
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 1
|
||||
aes_encrypt_ctr_multipart:1024:1
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 10
|
||||
aes_encrypt_ctr_multipart:1024:10
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 15
|
||||
aes_encrypt_ctr_multipart:1024:15
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 16
|
||||
aes_encrypt_ctr_multipart:1024:16
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 63
|
||||
aes_encrypt_ctr_multipart:1024:63
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 64
|
||||
aes_encrypt_ctr_multipart:1024:64
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 65
|
||||
aes_encrypt_ctr_multipart:1024:65
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 1023
|
||||
aes_encrypt_ctr_multipart:1024:1023
|
||||
|
||||
AES-CTR aes_encrypt_ctr_multipart 1024 1024
|
||||
aes_encrypt_ctr_multipart:1024:1024
|
||||
@@ -86,204 +86,145 @@ AES-128-ECB Decrypt NIST KAT #11
|
||||
aes_decrypt_ecb:"ffffffffffffffff8000000000000000":"32cd652842926aea4aa6137bb2be2b5e":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffff80000000000":"156f07767a85a4312321f63968338a01":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffffc0000000000":"15eec9ebf42b9ca76897d2cd6c5a12e2":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffffe0000000000":"db0d3a6fdcc13f915e2b302ceeb70fd8":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"51719783d3185a535bd75adc65071ce1":"4f354592ff7c8847d2d0870ca9481b7c":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"26aa49dcfe7629a8901a69a9914e6dfd":"d5e08bf9a182e857cf40b3a36ee248cc":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"000000000000000000000000000000000000000000000000":"941a4773058224e1ef66d10e0a6ee782":"067cd9d3749207791841562507fa9626":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3":"00000000000000000000000000000000":"dd619e1cf204446112e0af2b9afa8f8c":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93":"00000000000000000000000000000000":"d4f0aae13c8fe9339fbf9e69ed0ad74d":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9":"00000000000000000000000000000000":"19c80ec4a6deb7e5ed1033dda933498f":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"fffffffffffffffffffffffffff800000000000000000000":"00000000000000000000000000000000":"8dd274bd0f1b58ae345d9e7233f9b8f3":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"fffffffffffffffffffffffffffc00000000000000000000":"00000000000000000000000000000000":"9d6bdc8f4ce5feb0f3bed2e4b9a9bb0b":0
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"fffffffffffffffffffffffffffe00000000000000000000":"00000000000000000000000000000000":"fd5548bcf3f42565f7efa94562528d46":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffff000000000000000":"bb2852c891c5947d2ed44032c421b85f":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffff800000000000000":"1b9f5fbd5e8a4264c0a85b80409afa5e":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffffc00000000000000":"30dab809f85a917fe924733f424ac589":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"61257134a518a0d57d9d244d45f6498cbc32f2bafc522d79":"cfe4d74002696ccf7d87b14a2f9cafc9":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"b0ab0a6a818baef2d11fa33eac947284fb7d748cfb75e570":"d2eafd86f63b109b91f5dbb3a3fb7e13":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"ee053aa011c8b428cdcc3636313c54d6a03cac01c71579d6":"9b9fdd1c5975655f539998b306a324af":"00000000000000000000000000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"c9b8135ff1b5adc413dfd053b21bd96d":"9c2d8842e5f48f57648205d39a239af1":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"4a3650c3371ce2eb35e389a171427440":"bff52510095f518ecca60af4205444bb":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"b2099795e88cc158fd75ea133d7e7fbe":"ffffffffffffffffffffc00000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"a6cae46fb6fadfe7a2c302a34242817b":"ffffffffffffffffffffe00000000000":0
|
||||
|
||||
AES-192-ECB Decrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"000000000000000000000000000000000000000000000000":"026a7024d6a902e0b3ffccbaa910cc3f":"fffffffffffffffffffff00000000000":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c":"00000000000000000000000000000000":"352065272169abf9856843927d0674fd":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627":"00000000000000000000000000000000":"4307456a9e67813b452e15fa8fffe398":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f":"00000000000000000000000000000000":"4663446607354989477a5c6f0f007ef4":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"0b24af36193ce4665f2825d7b4749c98":"a9ff75bd7cf6613d3731c77c3b6d0c04":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"761c1fe41a18acf20d241650611d90f1":"623a52fcea5d443e48d9181ab32c7421":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"8a560769d605868ad80d819bdba03771":"38f2c7ae10612415d27ca190d27da8b4":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"ffffff80000000000000000000000000":"36aff0ef7bf3280772cf4cac80a0d2b2":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"ffffffc0000000000000000000000000":"1f8eedea0f62a1406d58cfc3ecea72cf":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"ffffffe0000000000000000000000000":"abf4154a3375a1d3e6b1d454438f95a6":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"ffffffffffffffffffffffffffffffffffff8000000000000000000000000000":"00000000000000000000000000000000":"45d089c36d5c5a4efc689e3b0de10dd5":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"ffffffffffffffffffffffffffffffffffffc000000000000000000000000000":"00000000000000000000000000000000":"b4da5df4becb5462e03a0ed00d295629":0
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_ecb:"ffffffffffffffffffffffffffffffffffffe000000000000000000000000000":"00000000000000000000000000000000":"dcf4e129136c1a4b7a0f38935cc34b2b":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #1
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000":"edf61ae362e882ddc0167474a7a77f3a":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #2
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffffffffffffffffff80000000000000000":"6168b00ba7859e0970ecfd757efecf7c":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #3
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"fffffffffffffffffffffffffffffffffffffffffffffffc0000000000000000":"d1415447866230d28bb1ea18a4cdfd02":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #4
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"f8be9ba615c5a952cabbca24f68f8593039624d524c816acda2c9183bd917cb9":"a3944b95ca0b52043584ef02151926a8":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #5
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"797f8b3d176dac5b7e34a2d539c4ef367a16f8635f6264737591c5c07bf57a3e":"a74289fe73a4c123ca189ea1e1b49ad5":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #6
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"6838d40caf927749c13f0329d331f448e202c73ef52c5f73a37ca635d4c47707":"b91d4ea4488644b56cf0812fa7fcf5fc":"00000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #7
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"623a52fcea5d443e48d9181ab32c7421":"761c1fe41a18acf20d241650611d90f1":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #8
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"38f2c7ae10612415d27ca190d27da8b4":"8a560769d605868ad80d819bdba03771":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #9
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"1bc704f1bce135ceb810341b216d7abe":"91fbef2d15a97816060bee1feaa49afe":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"0a6bdc6d4c1e6280301fd8e97ddbe601":"c0000000000000000000000000000000":0
|
||||
|
||||
AES-256-ECB Decrypt NIST KAT #12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_ecb:"0000000000000000000000000000000000000000000000000000000000000000":"9b80eefb7ebe2d2b16247aa0efc72f5d":"e0000000000000000000000000000000":0
|
||||
|
||||
AES-128-ECB Copy context
|
||||
aes_ecb_copy_context:"000102030405060708090a0b0c0d0e0f"
|
||||
|
||||
AES-192-ECB Copy context
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_ecb_copy_context:"000102030405060708090a0b0c0d0e0f1011121314151617"
|
||||
|
||||
AES-256-ECB Copy context
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_ecb_copy_context:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -18,18 +18,18 @@ depends_on:MBEDTLS_CIPHER_MODE_OFB
|
||||
aes_encrypt_ofb:16:"2b7e151628aed2a6abf7158809cf4f3c":"000102030405060708090a0b0c0d0e0f":"3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5e":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710"
|
||||
|
||||
OFB-AES192.Encrypt - Test NIST SP800-38A - F.4.3
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB
|
||||
aes_encrypt_ofb:16:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":"000102030405060708090a0b0c0d0e0f":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92a"
|
||||
|
||||
OFB-AES192.Decrypt - Test NIST SP800-38A - F.4.4
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB
|
||||
aes_encrypt_ofb:16:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":"000102030405060708090a0b0c0d0e0f":"cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92a":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710"
|
||||
|
||||
OFB-AES256.Encrypt - Test NIST SP800-38A - F.4.5
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB
|
||||
aes_encrypt_ofb:16:"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4":"000102030405060708090a0b0c0d0e0f":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":"dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484"
|
||||
|
||||
OFB-AES256.Decrypt - Test NIST SP800-38A - F.4.6
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_CIPHER_MODE_OFB
|
||||
aes_encrypt_ofb:16:"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4":"000102030405060708090a0b0c0d0e0f":"dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710"
|
||||
|
||||
|
||||
@@ -5,15 +5,13 @@ AES-ECB Decrypt (Invalid keylength)
|
||||
aes_decrypt_ecb:"000000000000000000000000000000":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
|
||||
|
||||
AES-256-CBC Encrypt (Invalid input length)
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ffffffffffffffe000000000000000":"":MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH
|
||||
|
||||
AES-256-CBC Decrypt (Invalid input length)
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_cbc:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"623a52fcea5d443e48d9181ab32c74":"":MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH
|
||||
|
||||
AES - Mode Parameter Validation
|
||||
aes_invalid_mode:
|
||||
AES - Optional Parameter Validation (MBEDTLS_CHECK_PARAMS)
|
||||
aes_check_params:
|
||||
|
||||
AES - Mandatory Parameter Validation and Valid Parameters
|
||||
aes_misc_params:
|
||||
|
||||
@@ -23,7 +23,6 @@ AES-64-XTS Setkey Fail Invalid Key Length
|
||||
aes_crypt_xts_keysize:16:MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
|
||||
|
||||
AES-192-XTS Setkey Fail Invalid Key Length
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_crypt_xts_keysize:48:MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
|
||||
|
||||
AES-384-XTS Setkey Fail Invalid Key Length
|
||||
@@ -69,23 +68,18 @@ aes_encrypt_xts:"271828182845904523536028747135263141592653589793238462643383279
|
||||
# 256-bit keys with 512 byte sector
|
||||
#
|
||||
AES-256-XTS Encrypt IEEE P1619/D16 Vector 10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ff000000000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"1c3b3a102f770386e4836c99e370cf9bea00803f5e482357a4ae12d414a3e63b5d31e276f8fe4a8d66b317f9ac683f44680a86ac35adfc3345befecb4bb188fd5776926c49a3095eb108fd1098baec70aaa66999a72a82f27d848b21d4a741b0c5cd4d5fff9dac89aeba122961d03a757123e9870f8acf1000020887891429ca2a3e7a7d7df7b10355165c8b9a6d0a7de8b062c4500dc4cd120c0f7418dae3d0b5781c34803fa75421c790dfe1de1834f280d7667b327f6c8cd7557e12ac3a0f93ec05c52e0493ef31a12d3d9260f79a289d6a379bc70c50841473d1a8cc81ec583e9645e07b8d9670655ba5bbcfecc6dc3966380ad8fecb17b6ba02469a020a84e18e8f84252070c13e9f1f289be54fbc481457778f616015e1327a02b140f1505eb309326d68378f8374595c849d84f4c333ec4423885143cb47bd71c5edae9be69a2ffeceb1bec9de244fbe15992b11b77c040f12bd8f6a975a44a0f90c29a9abc3d4d893927284c58754cce294529f8614dcd2aba991925fedc4ae74ffac6e333b93eb4aff0479da9a410e4450e0dd7ae4c6e2910900575da401fc07059f645e8b7e9bfdef33943054ff84011493c27b3429eaedb4ed5376441a77ed43851ad77f16f541dfd269d50d6a5f14fb0aab1cbb4c1550be97f7ab4066193c4caa773dad38014bd2092fa755c824bb5e54c4f36ffda9fcea70b9c6e693e148c151"
|
||||
|
||||
AES-256-XTS Encrypt IEEE P1619/D16 Vector 11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffff0000000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"77a31251618a15e6b92d1d66dffe7b50b50bad552305ba0217a610688eff7e11e1d0225438e093242d6db274fde801d4cae06f2092c728b2478559df58e837c2469ee4a4fa794e4bbc7f39bc026e3cb72c33b0888f25b4acf56a2a9804f1ce6d3d6e1dc6ca181d4b546179d55544aa7760c40d06741539c7e3cd9d2f6650b2013fd0eeb8c2b8e3d8d240ccae2d4c98320a7442e1c8d75a42d6e6cfa4c2eca1798d158c7aecdf82490f24bb9b38e108bcda12c3faf9a21141c3613b58367f922aaa26cd22f23d708dae699ad7cb40a8ad0b6e2784973dcb605684c08b8d6998c69aac049921871ebb65301a4619ca80ecb485a31d744223ce8ddc2394828d6a80470c092f5ba413c3378fa6054255c6f9df4495862bbb3287681f931b687c888abf844dfc8fc28331e579928cd12bd2390ae123cf03818d14dedde5c0c24c8ab018bfca75ca096f2d531f3d1619e785f1ada437cab92e980558b3dce1474afb75bfedbf8ff54cb2618e0244c9ac0d3c66fb51598cd2db11f9be39791abe447c63094f7c453b7ff87cb5bb36b7c79efb0872d17058b83b15ab0866ad8a58656c5a7e20dbdf308b2461d97c0ec0024a2715055249cf3b478ddd4740de654f75ca686e0d7345c69ed50cdc2a8b332b1f8824108ac937eb050585608ee734097fc09054fbff89eeaeea791f4a7ab1f9868294a4f9e27b42af8100cb9d59cef9645803"
|
||||
|
||||
AES-256-XTS Encrypt IEEE P1619/D16 Vector 12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffff00000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"e387aaa58ba483afa7e8eb469778317ecf4cf573aa9d4eac23f2cdf914e4e200a8b490e42ee646802dc6ee2b471b278195d60918ececb44bf79966f83faba0499298ebc699c0c8634715a320bb4f075d622e74c8c932004f25b41e361025b5a87815391f6108fc4afa6a05d9303c6ba68a128a55705d415985832fdeaae6c8e19110e84d1b1f199a2692119edc96132658f09da7c623efcec712537a3d94c0bf5d7e352ec94ae5797fdb377dc1551150721adf15bd26a8efc2fcaad56881fa9e62462c28f30ae1ceaca93c345cf243b73f542e2074a705bd2643bb9f7cc79bb6e7091ea6e232df0f9ad0d6cf502327876d82207abf2115cdacf6d5a48f6c1879a65b115f0f8b3cb3c59d15dd8c769bc014795a1837f3901b5845eb491adfefe097b1fa30a12fc1f65ba22905031539971a10f2f36c321bb51331cdefb39e3964c7ef079994f5b69b2edd83a71ef549971ee93f44eac3938fcdd61d01fa71799da3a8091c4c48aa9ed263ff0749df95d44fef6a0bb578ec69456aa5408ae32c7af08ad7ba8921287e3bbee31b767be06a0e705c864a769137df28292283ea81a2480241b44d9921cdbec1bc28dc1fda114bd8e5217ac9d8ebafa720e9da4f9ace231cc949e5b96fe76ffc21063fddc83a6b8679c00d35e09576a875305bed5f36ed242c8900dd1fa965bc950dfce09b132263a1eef52dd6888c309f5a7d712826"
|
||||
|
||||
AES-256-XTS Encrypt IEEE P1619/D16 Vector 13
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffffff000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"bf53d2dade78e822a4d949a9bc6766b01b06a8ef70d26748c6a7fc36d80ae4c5520f7c4ab0ac8544424fa405162fef5a6b7f229498063618d39f0003cb5fb8d1c86b643497da1ff945c8d3bedeca4f479702a7a735f043ddb1d6aaade3c4a0ac7ca7f3fa5279bef56f82cd7a2f38672e824814e10700300a055e1630b8f1cb0e919f5e942010a416e2bf48cb46993d3cb6a51c19bacf864785a00bc2ecff15d350875b246ed53e68be6f55bd7e05cfc2b2ed6432198a6444b6d8c247fab941f569768b5c429366f1d3f00f0345b96123d56204c01c63b22ce78baf116e525ed90fdea39fa469494d3866c31e05f295ff21fea8d4e6e13d67e47ce722e9698a1c1048d68ebcde76b86fcf976eab8aa9790268b7068e017a8b9b749409514f1053027fd16c3786ea1bac5f15cb79711ee2abe82f5cf8b13ae73030ef5b9e4457e75d1304f988d62dd6fc4b94ed38ba831da4b7634971b6cd8ec325d9c61c00f1df73627ed3745a5e8489f3a95c69639c32cd6e1d537a85f75cc844726e8a72fc0077ad22000f1d5078f6b866318c668f1ad03d5a5fced5219f2eabbd0aa5c0f460d183f04404a0d6f469558e81fab24a167905ab4c7878502ad3e38fdbe62a41556cec37325759533ce8f25f367c87bb5578d667ae93f9e2fd99bcbc5f2fbba88cf6516139420fcff3b7361d86322c4bd84c82f335abb152c4a93411373aaa8220"
|
||||
|
||||
AES-256-XTS Encrypt IEEE P1619/D16 Vector 14
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_encrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffffffff0000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"64497e5a831e4a932c09be3e5393376daa599548b816031d224bbf50a818ed2350eae7e96087c8a0db51ad290bd00c1ac1620857635bf246c176ab463be30b808da548081ac847b158e1264be25bb0910bbc92647108089415d45fab1b3d2604e8a8eff1ae4020cfa39936b66827b23f371b92200be90251e6d73c5f86de5fd4a950781933d79a28272b782a2ec313efdfcc0628f43d744c2dc2ff3dcb66999b50c7ca895b0c64791eeaa5f29499fb1c026f84ce5b5c72ba1083cddb5ce45434631665c333b60b11593fb253c5179a2c8db813782a004856a1653011e93fb6d876c18366dd8683f53412c0c180f9c848592d593f8609ca736317d356e13e2bff3a9f59cd9aeb19cd482593d8c46128bb32423b37a9adfb482b99453fbe25a41bf6feb4aa0bef5ed24bf73c762978025482c13115e4015aac992e5613a3b5c2f685b84795cb6e9b2656d8c88157e52c42f978d8634c43d06fea928f2822e465aa6576e9bf419384506cc3ce3c54ac1a6f67dc66f3b30191e698380bc999b05abce19dc0c6dcc2dd001ec535ba18deb2df1a101023108318c75dc98611a09dc48a0acdec676fabdf222f07e026f059b672b56e5cbc8e1d21bbd867dd927212054681d70ea737134cdfce93b6f82ae22423274e58a0821cc5502e2d0ab4585e94de6975be5e0b4efce51cd3e70c25a1fbbbd609d273ad5b0d59631c531f6a0a57b9"
|
||||
|
||||
#
|
||||
@@ -134,23 +128,18 @@ AES-128-XTS Decrypt IEEE P1619/D16 Vector 9
|
||||
aes_decrypt_xts:"2718281828459045235360287471352631415926535897932384626433832795":"ff000000000000000000000000000000":"72efc1ebfe1ee25975a6eb3aa8589dda2b261f1c85bdab442a9e5b2dd1d7c3957a16fc08e526d4b1223f1b1232a11af274c3d70dac57f83e0983c498f1a6f1aecb021c3e70085a1e527f1ce41ee5911a82020161529cd82773762daf5459de94a0a82adae7e1703c808543c29ed6fb32d9e004327c1355180c995a07741493a09c21ba01a387882da4f62534b87bb15d60d197201c0fd3bf30c1500a3ecfecdd66d8721f90bcc4c17ee925c61b0a03727a9c0d5f5ca462fbfa0af1c2513a9d9d4b5345bd27a5f6e653f751693e6b6a2b8ead57d511e00e58c45b7b8d005af79288f5c7c22fd4f1bf7a898b03a5634c6a1ae3f9fae5de4f296a2896b23e7ed43ed14fa5a2803f4d28f0d3ffcf24757677aebdb47bb388378708948a8d4126ed1839e0da29a537a8c198b3c66ab00712dd261674bf45a73d67f76914f830ca014b65596f27e4cf62de66125a5566df9975155628b400fbfb3a29040ed50faffdbb18aece7c5c44693260aab386c0a37b11b114f1c415aebb653be468179428d43a4d8bc3ec38813eca30a13cf1bb18d524f1992d44d8b1a42ea30b22e6c95b199d8d182f8840b09d059585c31ad691fa0619ff038aca2c39a943421157361717c49d322028a74648113bd8c9d7ec77cf3c89c1ec8718ceff8516d96b34c3c614f10699c9abc4ed0411506223bea16af35c883accdbe1104eef0cfdb54e12fb230a":"3260ae8dad1f4a32c5cafe3ab0eb95549d461a67ceb9e5aa2d3afb62dece0553193ba50c75be251e08d1d08f1088576c7efdfaaf3f459559571e12511753b07af073f35da06af0ce0bbf6b8f5ccc5cea500ec1b211bd51f63b606bf6528796ca12173ba39b8935ee44ccce646f90a45bf9ccc567f0ace13dc2d53ebeedc81f58b2e41179dddf0d5a5c42f5d8506c1a5d2f8f59f3ea873cbcd0eec19acbf325423bd3dcb8c2b1bf1d1eaed0eba7f0698e4314fbeb2f1566d1b9253008cbccf45a2b0d9c5c9c21474f4076e02be26050b99dee4fd68a4cf890e496e4fcae7b70f94ea5a9062da0daeba1993d2ccd1dd3c244b8428801495a58b216547e7e847c46d1d756377b6242d2e5fb83bf752b54e0df71e889f3a2bb0f4c10805bf3c590376e3c24e22ff57f7fa965577375325cea5d920db94b9c336b455f6e894c01866fe9fbb8c8d3f70a2957285f6dfb5dcd8cbf54782f8fe7766d4723819913ac773421e3a31095866bad22c86a6036b2518b2059b4229d18c8c2ccbdf906c6cc6e82464ee57bddb0bebcb1dc645325bfb3e665ef7251082c88ebb1cf203bd779fdd38675713c8daadd17e1cabee432b09787b6ddf3304e38b731b45df5df51b78fcfb3d32466028d0ba36555e7e11ab0ee0666061d1645d962444bc47a38188930a84b4d561395c73c087021927ca638b7afc8a8679ccb84c26555440ec7f10445cd"
|
||||
|
||||
AES-256-XTS Decrypt IEEE P1619/D16 Vector 10
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ff000000000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"1c3b3a102f770386e4836c99e370cf9bea00803f5e482357a4ae12d414a3e63b5d31e276f8fe4a8d66b317f9ac683f44680a86ac35adfc3345befecb4bb188fd5776926c49a3095eb108fd1098baec70aaa66999a72a82f27d848b21d4a741b0c5cd4d5fff9dac89aeba122961d03a757123e9870f8acf1000020887891429ca2a3e7a7d7df7b10355165c8b9a6d0a7de8b062c4500dc4cd120c0f7418dae3d0b5781c34803fa75421c790dfe1de1834f280d7667b327f6c8cd7557e12ac3a0f93ec05c52e0493ef31a12d3d9260f79a289d6a379bc70c50841473d1a8cc81ec583e9645e07b8d9670655ba5bbcfecc6dc3966380ad8fecb17b6ba02469a020a84e18e8f84252070c13e9f1f289be54fbc481457778f616015e1327a02b140f1505eb309326d68378f8374595c849d84f4c333ec4423885143cb47bd71c5edae9be69a2ffeceb1bec9de244fbe15992b11b77c040f12bd8f6a975a44a0f90c29a9abc3d4d893927284c58754cce294529f8614dcd2aba991925fedc4ae74ffac6e333b93eb4aff0479da9a410e4450e0dd7ae4c6e2910900575da401fc07059f645e8b7e9bfdef33943054ff84011493c27b3429eaedb4ed5376441a77ed43851ad77f16f541dfd269d50d6a5f14fb0aab1cbb4c1550be97f7ab4066193c4caa773dad38014bd2092fa755c824bb5e54c4f36ffda9fcea70b9c6e693e148c151"
|
||||
|
||||
AES-256-XTS Decrypt IEEE P1619/D16 Vector 11
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffff0000000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"77a31251618a15e6b92d1d66dffe7b50b50bad552305ba0217a610688eff7e11e1d0225438e093242d6db274fde801d4cae06f2092c728b2478559df58e837c2469ee4a4fa794e4bbc7f39bc026e3cb72c33b0888f25b4acf56a2a9804f1ce6d3d6e1dc6ca181d4b546179d55544aa7760c40d06741539c7e3cd9d2f6650b2013fd0eeb8c2b8e3d8d240ccae2d4c98320a7442e1c8d75a42d6e6cfa4c2eca1798d158c7aecdf82490f24bb9b38e108bcda12c3faf9a21141c3613b58367f922aaa26cd22f23d708dae699ad7cb40a8ad0b6e2784973dcb605684c08b8d6998c69aac049921871ebb65301a4619ca80ecb485a31d744223ce8ddc2394828d6a80470c092f5ba413c3378fa6054255c6f9df4495862bbb3287681f931b687c888abf844dfc8fc28331e579928cd12bd2390ae123cf03818d14dedde5c0c24c8ab018bfca75ca096f2d531f3d1619e785f1ada437cab92e980558b3dce1474afb75bfedbf8ff54cb2618e0244c9ac0d3c66fb51598cd2db11f9be39791abe447c63094f7c453b7ff87cb5bb36b7c79efb0872d17058b83b15ab0866ad8a58656c5a7e20dbdf308b2461d97c0ec0024a2715055249cf3b478ddd4740de654f75ca686e0d7345c69ed50cdc2a8b332b1f8824108ac937eb050585608ee734097fc09054fbff89eeaeea791f4a7ab1f9868294a4f9e27b42af8100cb9d59cef9645803"
|
||||
|
||||
AES-256-XTS Decrypt IEEE P1619/D16 Vector 12
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffff00000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"e387aaa58ba483afa7e8eb469778317ecf4cf573aa9d4eac23f2cdf914e4e200a8b490e42ee646802dc6ee2b471b278195d60918ececb44bf79966f83faba0499298ebc699c0c8634715a320bb4f075d622e74c8c932004f25b41e361025b5a87815391f6108fc4afa6a05d9303c6ba68a128a55705d415985832fdeaae6c8e19110e84d1b1f199a2692119edc96132658f09da7c623efcec712537a3d94c0bf5d7e352ec94ae5797fdb377dc1551150721adf15bd26a8efc2fcaad56881fa9e62462c28f30ae1ceaca93c345cf243b73f542e2074a705bd2643bb9f7cc79bb6e7091ea6e232df0f9ad0d6cf502327876d82207abf2115cdacf6d5a48f6c1879a65b115f0f8b3cb3c59d15dd8c769bc014795a1837f3901b5845eb491adfefe097b1fa30a12fc1f65ba22905031539971a10f2f36c321bb51331cdefb39e3964c7ef079994f5b69b2edd83a71ef549971ee93f44eac3938fcdd61d01fa71799da3a8091c4c48aa9ed263ff0749df95d44fef6a0bb578ec69456aa5408ae32c7af08ad7ba8921287e3bbee31b767be06a0e705c864a769137df28292283ea81a2480241b44d9921cdbec1bc28dc1fda114bd8e5217ac9d8ebafa720e9da4f9ace231cc949e5b96fe76ffc21063fddc83a6b8679c00d35e09576a875305bed5f36ed242c8900dd1fa965bc950dfce09b132263a1eef52dd6888c309f5a7d712826"
|
||||
|
||||
AES-256-XTS Decrypt IEEE P1619/D16 Vector 13
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffffff000000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"bf53d2dade78e822a4d949a9bc6766b01b06a8ef70d26748c6a7fc36d80ae4c5520f7c4ab0ac8544424fa405162fef5a6b7f229498063618d39f0003cb5fb8d1c86b643497da1ff945c8d3bedeca4f479702a7a735f043ddb1d6aaade3c4a0ac7ca7f3fa5279bef56f82cd7a2f38672e824814e10700300a055e1630b8f1cb0e919f5e942010a416e2bf48cb46993d3cb6a51c19bacf864785a00bc2ecff15d350875b246ed53e68be6f55bd7e05cfc2b2ed6432198a6444b6d8c247fab941f569768b5c429366f1d3f00f0345b96123d56204c01c63b22ce78baf116e525ed90fdea39fa469494d3866c31e05f295ff21fea8d4e6e13d67e47ce722e9698a1c1048d68ebcde76b86fcf976eab8aa9790268b7068e017a8b9b749409514f1053027fd16c3786ea1bac5f15cb79711ee2abe82f5cf8b13ae73030ef5b9e4457e75d1304f988d62dd6fc4b94ed38ba831da4b7634971b6cd8ec325d9c61c00f1df73627ed3745a5e8489f3a95c69639c32cd6e1d537a85f75cc844726e8a72fc0077ad22000f1d5078f6b866318c668f1ad03d5a5fced5219f2eabbd0aa5c0f460d183f04404a0d6f469558e81fab24a167905ab4c7878502ad3e38fdbe62a41556cec37325759533ce8f25f367c87bb5578d667ae93f9e2fd99bcbc5f2fbba88cf6516139420fcff3b7361d86322c4bd84c82f335abb152c4a93411373aaa8220"
|
||||
|
||||
AES-256-XTS Decrypt IEEE P1619/D16 Vector 14
|
||||
depends_on:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
aes_decrypt_xts:"27182818284590452353602874713526624977572470936999595749669676273141592653589793238462643383279502884197169399375105820974944592":"ffffffffff0000000000000000000000":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"64497e5a831e4a932c09be3e5393376daa599548b816031d224bbf50a818ed2350eae7e96087c8a0db51ad290bd00c1ac1620857635bf246c176ab463be30b808da548081ac847b158e1264be25bb0910bbc92647108089415d45fab1b3d2604e8a8eff1ae4020cfa39936b66827b23f371b92200be90251e6d73c5f86de5fd4a950781933d79a28272b782a2ec313efdfcc0628f43d744c2dc2ff3dcb66999b50c7ca895b0c64791eeaa5f29499fb1c026f84ce5b5c72ba1083cddb5ce45434631665c333b60b11593fb253c5179a2c8db813782a004856a1653011e93fb6d876c18366dd8683f53412c0c180f9c848592d593f8609ca736317d356e13e2bff3a9f59cd9aeb19cd482593d8c46128bb32423b37a9adfb482b99453fbe25a41bf6feb4aa0bef5ed24bf73c762978025482c13115e4015aac992e5613a3b5c2f685b84795cb6e9b2656d8c88157e52c42f978d8634c43d06fea928f2822e465aa6576e9bf419384506cc3ce3c54ac1a6f67dc66f3b30191e698380bc999b05abce19dc0c6dcc2dd001ec535ba18deb2df1a101023108318c75dc98611a09dc48a0acdec676fabdf222f07e026f059b672b56e5cbc8e1d21bbd867dd927212054681d70ea737134cdfce93b6f82ae22423274e58a0821cc5502e2d0ab4585e94de6975be5e0b4efce51cd3e70c25a1fbbbd609d273ad5b0d59631c531f6a0a57b9"
|
||||
|
||||
AES-128-XTS Decrypt IEEE P1619/D16 Vector 15
|
||||
|
||||
@@ -1,119 +0,0 @@
|
||||
Aligned 16-bit access
|
||||
mbedtls_unaligned_access:16:0
|
||||
|
||||
Aligned 32-bit access
|
||||
mbedtls_unaligned_access:32:0
|
||||
|
||||
Aligned 64-bit access
|
||||
mbedtls_unaligned_access:64:0
|
||||
|
||||
Unaligned 16-bit access offset=1
|
||||
mbedtls_unaligned_access:16:1
|
||||
|
||||
Unaligned 32-bit access offset=1
|
||||
mbedtls_unaligned_access:32:1
|
||||
|
||||
Unaligned 64-bit access offset=1
|
||||
mbedtls_unaligned_access:64:1
|
||||
|
||||
Unaligned 16-bit access offset=4
|
||||
mbedtls_unaligned_access:16:4
|
||||
|
||||
Unaligned 32-bit access offset=4
|
||||
mbedtls_unaligned_access:32:4
|
||||
|
||||
Unaligned 64-bit access offset=4
|
||||
mbedtls_unaligned_access:64:4
|
||||
|
||||
Unaligned 16-bit access offset=7
|
||||
mbedtls_unaligned_access:16:7
|
||||
|
||||
Unaligned 32-bit access offset=7
|
||||
mbedtls_unaligned_access:32:7
|
||||
|
||||
Unaligned 64-bit access offset=7
|
||||
mbedtls_unaligned_access:64:7
|
||||
|
||||
Unaligned 16-bit access offset=8
|
||||
mbedtls_unaligned_access:16:8
|
||||
|
||||
Unaligned 32-bit access offset=8
|
||||
mbedtls_unaligned_access:32:8
|
||||
|
||||
Unaligned 64-bit access offset=8
|
||||
mbedtls_unaligned_access:64:8
|
||||
|
||||
Byteswap 16
|
||||
mbedtls_byteswap:"0100":16:"0001"
|
||||
|
||||
Byteswap 16 with truncation
|
||||
mbedtls_byteswap:"0706050403020100":16:"0001"
|
||||
|
||||
Byteswap 16 all-zero
|
||||
mbedtls_byteswap:"0000":16:"0000"
|
||||
|
||||
Byteswap 16 all-ones
|
||||
mbedtls_byteswap:"ffffffffffffffff":16:"ffff"
|
||||
|
||||
Byteswap 32
|
||||
mbedtls_byteswap:"03020100":32:"00010203"
|
||||
|
||||
Byteswap 32 with truncation
|
||||
mbedtls_byteswap:"0706050403020100":32:"00010203"
|
||||
|
||||
Byteswap 32 all-zero
|
||||
mbedtls_byteswap:"00000000":32:"00000000"
|
||||
|
||||
Byteswap 32 all-ones
|
||||
mbedtls_byteswap:"ffffffffffffffff":32:"ffffffff"
|
||||
|
||||
Byteswap 64
|
||||
mbedtls_byteswap:"0706050403020100":64:"01020304050607"
|
||||
|
||||
Byteswap 64 all-zero
|
||||
mbedtls_byteswap:"0000000000000000":64:"0000000000000000"
|
||||
|
||||
Byteswap 64 all-ones
|
||||
mbedtls_byteswap:"ffffffffffffffff":64:"ffffffffffffffff"
|
||||
|
||||
Get individual bytes
|
||||
get_byte
|
||||
|
||||
Endian-aware unaligned 16-bit BE offset=0
|
||||
unaligned_access_endian_aware:16:0:1
|
||||
|
||||
Endian-aware unaligned 16-bit BE offset=3
|
||||
unaligned_access_endian_aware:16:3:1
|
||||
|
||||
Endian-aware unaligned 16-bit LE offset=0
|
||||
unaligned_access_endian_aware:16:0:0
|
||||
|
||||
Endian-aware unaligned 16-bit LE offset=3
|
||||
unaligned_access_endian_aware:16:3:0
|
||||
|
||||
Endian-aware unaligned 32-bit BE offset=0
|
||||
unaligned_access_endian_aware:32:0:1
|
||||
|
||||
Endian-aware unaligned 32-bit BE offset=3
|
||||
unaligned_access_endian_aware:32:3:1
|
||||
|
||||
Endian-aware unaligned 32-bit LE offset=0
|
||||
unaligned_access_endian_aware:32:0:0
|
||||
|
||||
Endian-aware unaligned 32-bit LE offset=3
|
||||
unaligned_access_endian_aware:32:3:0
|
||||
|
||||
Endian-aware unaligned 64-bit BE offset=0
|
||||
unaligned_access_endian_aware:64:0:1
|
||||
|
||||
Endian-aware unaligned 64-bit BE offset=3
|
||||
unaligned_access_endian_aware:64:3:1
|
||||
|
||||
Endian-aware unaligned 64-bit LE offset=0
|
||||
unaligned_access_endian_aware:64:0:0
|
||||
|
||||
Endian-aware unaligned 64-bit LE offset=3
|
||||
unaligned_access_endian_aware:64:3:0
|
||||
|
||||
Big-endian check
|
||||
mbedtls_is_big_endian
|
||||
@@ -1,360 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include <alignment.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#if defined(__clang__)
|
||||
#pragma clang diagnostic ignored "-Wunreachable-code"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Convert a string of the form "abcd" (case-insensitive) to a uint64_t.
|
||||
*/
|
||||
int parse_hex_string(char *hex_string, uint64_t *result)
|
||||
{
|
||||
uint8_t raw[8] = { 0 };
|
||||
size_t olen;
|
||||
if (mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*result = 0;
|
||||
for (size_t i = 0; i < olen; i++) {
|
||||
*result |= ((uint64_t) raw[i]) << ((olen - i - 1) * 8);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_unaligned_access(int size, int offset)
|
||||
{
|
||||
/* Define 64-bit aligned raw byte array */
|
||||
uint64_t raw[2];
|
||||
|
||||
/* Populate with known data */
|
||||
uint8_t *x = (uint8_t *) raw;
|
||||
for (size_t i = 0; i < sizeof(raw); i++) {
|
||||
x[i] = (uint8_t) i;
|
||||
}
|
||||
|
||||
TEST_ASSERT(size == 16 || size == 32 || size == 64);
|
||||
|
||||
uint64_t r = 0;
|
||||
switch (size) {
|
||||
case 16:
|
||||
r = mbedtls_get_unaligned_uint16(x + offset);
|
||||
break;
|
||||
case 32:
|
||||
r = mbedtls_get_unaligned_uint32(x + offset);
|
||||
break;
|
||||
case 64:
|
||||
r = mbedtls_get_unaligned_uint64(x + offset);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Define expected result by manually aligning the raw bytes, and
|
||||
* reading back with a normal pointer access. */
|
||||
uint64_t raw_aligned_64;
|
||||
uint16_t *raw_aligned_16 = (uint16_t *) &raw_aligned_64;
|
||||
uint32_t *raw_aligned_32 = (uint32_t *) &raw_aligned_64;
|
||||
memcpy(&raw_aligned_64, ((uint8_t *) &raw) + offset, size / 8);
|
||||
/* Make a 16/32/64 byte read from the aligned location, and copy to expected */
|
||||
uint64_t expected = 0;
|
||||
switch (size) {
|
||||
case 16:
|
||||
expected = *raw_aligned_16;
|
||||
break;
|
||||
case 32:
|
||||
expected = *raw_aligned_32;
|
||||
break;
|
||||
case 64:
|
||||
expected = raw_aligned_64;
|
||||
break;
|
||||
}
|
||||
|
||||
TEST_EQUAL(r, expected);
|
||||
|
||||
/* Write sentinel to the part of the array we will test writing to */
|
||||
for (size_t i = 0; i < (size_t) (size / 8); i++) {
|
||||
x[i + offset] = 0xff;
|
||||
}
|
||||
/*
|
||||
* Write back to the array with mbedtls_put_unaligned_uint16 and validate
|
||||
* that the array is unchanged as a result.
|
||||
*/
|
||||
switch (size) {
|
||||
case 16:
|
||||
mbedtls_put_unaligned_uint16(x + offset, r);
|
||||
break;
|
||||
case 32:
|
||||
mbedtls_put_unaligned_uint32(x + offset, r);
|
||||
break;
|
||||
case 64:
|
||||
mbedtls_put_unaligned_uint64(x + offset, r);
|
||||
break;
|
||||
}
|
||||
for (size_t i = 0; i < sizeof(x); i++) {
|
||||
TEST_EQUAL(x[i], (uint8_t) i);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_byteswap(char *input_str, int size, char *expected_str)
|
||||
{
|
||||
uint64_t input = 0, expected = 0;
|
||||
TEST_ASSERT(parse_hex_string(input_str, &input));
|
||||
TEST_ASSERT(parse_hex_string(expected_str, &expected));
|
||||
|
||||
/* Check against expected result */
|
||||
uint64_t r = 0;
|
||||
switch (size) {
|
||||
case 16:
|
||||
r = MBEDTLS_BSWAP16(input);
|
||||
break;
|
||||
case 32:
|
||||
r = MBEDTLS_BSWAP32(input);
|
||||
break;
|
||||
case 64:
|
||||
r = MBEDTLS_BSWAP64(input);
|
||||
break;
|
||||
default:
|
||||
TEST_FAIL("size must be 16, 32 or 64");
|
||||
}
|
||||
TEST_EQUAL(r, expected);
|
||||
|
||||
/*
|
||||
* Check byte by byte by extracting bytes from opposite ends of
|
||||
* input and r.
|
||||
*/
|
||||
for (size_t i = 0; i < (size_t) (size / 8); i++) {
|
||||
size_t s1 = i * 8;
|
||||
size_t s2 = ((size / 8 - 1) - i) * 8;
|
||||
uint64_t a = (input & ((uint64_t) 0xff << s1)) >> s1;
|
||||
uint64_t b = (r & ((uint64_t) 0xff << s2)) >> s2;
|
||||
TEST_EQUAL(a, b);
|
||||
}
|
||||
|
||||
/* Check BSWAP(BSWAP(x)) == x */
|
||||
switch (size) {
|
||||
case 16:
|
||||
r = MBEDTLS_BSWAP16(r);
|
||||
TEST_EQUAL(r, input & 0xffff);
|
||||
break;
|
||||
case 32:
|
||||
r = MBEDTLS_BSWAP32(r);
|
||||
TEST_EQUAL(r, input & 0xffffffff);
|
||||
break;
|
||||
case 64:
|
||||
r = MBEDTLS_BSWAP64(r);
|
||||
TEST_EQUAL(r, input);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_byte()
|
||||
{
|
||||
uint8_t data[16];
|
||||
|
||||
for (size_t i = 0; i < sizeof(data); i++) {
|
||||
data[i] = (uint8_t) i;
|
||||
}
|
||||
|
||||
uint64_t u64 = 0x0706050403020100;
|
||||
for (size_t b = 0; b < 8; b++) {
|
||||
uint8_t expected = b;
|
||||
uint8_t actual = b + 1;
|
||||
switch (b) {
|
||||
case 0:
|
||||
actual = MBEDTLS_BYTE_0(u64);
|
||||
break;
|
||||
case 1:
|
||||
actual = MBEDTLS_BYTE_1(u64);
|
||||
break;
|
||||
case 2:
|
||||
actual = MBEDTLS_BYTE_2(u64);
|
||||
break;
|
||||
case 3:
|
||||
actual = MBEDTLS_BYTE_3(u64);
|
||||
break;
|
||||
case 4:
|
||||
actual = MBEDTLS_BYTE_4(u64);
|
||||
break;
|
||||
case 5:
|
||||
actual = MBEDTLS_BYTE_5(u64);
|
||||
break;
|
||||
case 6:
|
||||
actual = MBEDTLS_BYTE_6(u64);
|
||||
break;
|
||||
case 7:
|
||||
actual = MBEDTLS_BYTE_7(u64);
|
||||
break;
|
||||
}
|
||||
TEST_EQUAL(actual, expected);
|
||||
}
|
||||
|
||||
uint32_t u32 = 0x03020100;
|
||||
for (size_t b = 0; b < 4; b++) {
|
||||
uint8_t expected = b;
|
||||
uint8_t actual = b + 1;
|
||||
switch (b) {
|
||||
case 0:
|
||||
actual = MBEDTLS_BYTE_0(u32);
|
||||
break;
|
||||
case 1:
|
||||
actual = MBEDTLS_BYTE_1(u32);
|
||||
break;
|
||||
case 2:
|
||||
actual = MBEDTLS_BYTE_2(u32);
|
||||
break;
|
||||
case 3:
|
||||
actual = MBEDTLS_BYTE_3(u32);
|
||||
break;
|
||||
}
|
||||
TEST_EQUAL(actual, expected);
|
||||
}
|
||||
|
||||
uint16_t u16 = 0x0100;
|
||||
for (size_t b = 0; b < 2; b++) {
|
||||
uint8_t expected = b;
|
||||
uint8_t actual = b + 1;
|
||||
switch (b) {
|
||||
case 0:
|
||||
actual = MBEDTLS_BYTE_0(u16);
|
||||
break;
|
||||
case 1:
|
||||
actual = MBEDTLS_BYTE_1(u16);
|
||||
break;
|
||||
}
|
||||
TEST_EQUAL(actual, expected);
|
||||
}
|
||||
|
||||
uint8_t u8 = 0x01;
|
||||
uint8_t actual = MBEDTLS_BYTE_0(u8);
|
||||
TEST_EQUAL(actual, u8);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void unaligned_access_endian_aware(int size, int offset, int big_endian)
|
||||
{
|
||||
TEST_ASSERT(size == 16 || size == 24 || size == 32 || size == 64);
|
||||
TEST_ASSERT(offset >= 0 && offset < 8);
|
||||
|
||||
/* Define 64-bit aligned raw byte array */
|
||||
uint64_t raw[2];
|
||||
/* Populate with known data: x == { 0, 1, 2, ... } */
|
||||
uint8_t *x = (uint8_t *) raw;
|
||||
for (size_t i = 0; i < sizeof(raw); i++) {
|
||||
x[i] = (uint8_t) i;
|
||||
}
|
||||
|
||||
uint64_t read = 0;
|
||||
if (big_endian) {
|
||||
switch (size) {
|
||||
case 16:
|
||||
read = MBEDTLS_GET_UINT16_BE(x, offset);
|
||||
break;
|
||||
case 24:
|
||||
read = MBEDTLS_GET_UINT24_BE(x, offset);
|
||||
break;
|
||||
case 32:
|
||||
read = MBEDTLS_GET_UINT32_BE(x, offset);
|
||||
break;
|
||||
case 64:
|
||||
read = MBEDTLS_GET_UINT64_BE(x, offset);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (size) {
|
||||
case 16:
|
||||
read = MBEDTLS_GET_UINT16_LE(x, offset);
|
||||
break;
|
||||
case 24:
|
||||
read = MBEDTLS_GET_UINT24_LE(x, offset);
|
||||
break;
|
||||
case 32:
|
||||
read = MBEDTLS_GET_UINT32_LE(x, offset);
|
||||
break;
|
||||
case 64:
|
||||
read = MBEDTLS_GET_UINT64_LE(x, offset);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Build up expected value byte by byte, in either big or little endian format */
|
||||
uint64_t expected = 0;
|
||||
for (size_t i = 0; i < (size_t) (size / 8); i++) {
|
||||
uint64_t b = x[i + offset];
|
||||
uint8_t shift = (big_endian) ? (8 * ((size / 8 - 1) - i)) : (8 * i);
|
||||
expected |= b << shift;
|
||||
}
|
||||
|
||||
/* Verify read */
|
||||
TEST_EQUAL(read, expected);
|
||||
|
||||
/* Test writing back to memory. First write sentinel */
|
||||
for (size_t i = 0; i < (size_t) (size / 8); i++) {
|
||||
x[i + offset] = 0xff;
|
||||
}
|
||||
/* Overwrite sentinel with endian-aware write macro */
|
||||
if (big_endian) {
|
||||
switch (size) {
|
||||
case 16:
|
||||
MBEDTLS_PUT_UINT16_BE(read, x, offset);
|
||||
break;
|
||||
case 24:
|
||||
MBEDTLS_PUT_UINT24_BE(read, x, offset);
|
||||
break;
|
||||
case 32:
|
||||
MBEDTLS_PUT_UINT32_BE(read, x, offset);
|
||||
break;
|
||||
case 64:
|
||||
MBEDTLS_PUT_UINT64_BE(read, x, offset);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (size) {
|
||||
case 16:
|
||||
MBEDTLS_PUT_UINT16_LE(read, x, offset);
|
||||
break;
|
||||
case 24:
|
||||
MBEDTLS_PUT_UINT24_LE(read, x, offset);
|
||||
break;
|
||||
case 32:
|
||||
MBEDTLS_PUT_UINT32_LE(read, x, offset);
|
||||
break;
|
||||
case 64:
|
||||
MBEDTLS_PUT_UINT64_LE(read, x, offset);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify write - check memory is correct */
|
||||
for (size_t i = 0; i < sizeof(raw); i++) {
|
||||
TEST_EQUAL(x[i], (uint8_t) i);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_is_big_endian()
|
||||
{
|
||||
uint16_t check = 0x1234;
|
||||
uint8_t *p = (uint8_t *) ✓
|
||||
|
||||
if (MBEDTLS_IS_BIG_ENDIAN) {
|
||||
/* Big-endian: data stored MSB first, i.e. p == { 0x12, 0x34 } */
|
||||
TEST_EQUAL(p[0], 0x12);
|
||||
TEST_EQUAL(p[1], 0x34);
|
||||
} else {
|
||||
/* Little-endian: data stored LSB first, i.e. p == { 0x34, 0x12 } */
|
||||
TEST_EQUAL(p[0], 0x34);
|
||||
TEST_EQUAL(p[1], 0x12);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
27
externals/mbedtls/tests/suites/test_suite_arc4.data
vendored
Normal file
27
externals/mbedtls/tests/suites/test_suite_arc4.data
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
Test vector ARC4 [Cryptlib]
|
||||
mbedtls_arc4_crypt:"0000000000000000":"0123456789abcdef":"7494c2e7104b0879"
|
||||
|
||||
Test vector ARC4 [COMMERCE]
|
||||
mbedtls_arc4_crypt:"dcee4cf92c":"618a63d2fb":"f13829c9de"
|
||||
|
||||
Test vector ARC4 [SSH ARCFOUR]
|
||||
mbedtls_arc4_crypt:"527569736c696e6e756e206c61756c75206b6f727669737373616e692c2074e4686be470e46964656e2070e4e46c6ce42074e47973696b75752e204b6573e479f66e206f6e206f6e6e69206f6d616e616e692c206b61736b6973617675756e206c61616b736f7420766572686f75752e20456e206d6120696c6f697473652c20737572652068756f6b61612c206d75747461206d657473e46e2074756d6d757573206d756c6c652074756f6b61612e205075756e746f2070696c76656e2c206d692068756b6b75752c207369696e746f20766172616e207475756c6973656e2c206d69206e756b6b75752e2054756f6b7375742076616e616d6f6e206a61207661726a6f74207665656e2c206e69697374e420737964e46d656e69206c61756c756e207465656e2e202d2045696e6f204c65696e6f":"29041972fb42ba5fc7127712f13829c9":"358186999001e6b5daf05eceeb7eee21e0689c1f00eea81f7dd2caaee1d2763e68af0ead33d66c268bc946c484fbe94c5f5e0b86a59279e4f824e7a640bd223210b0a61160b7bce986ea65688003596b630a6b90f8e0caf6912a98eb872176e83c202caa64166d2cce57ff1bca57b213f0ed1aa72fb8ea52b0be01cd1e412867720b326eb389d011bd70d8af035fb0d8589dbce3c666f5ea8d4c7954c50c3f340b0467f81b425961c11843074df620f208404b394cf9d37ff54b5f1ad8f6ea7da3c561dfa7281f964463d2cc35a4d1b03490dec51b0711fbd6f55f79234d5b7c766622a66de92be996461d5e4dc878ef9bca030521e8351e4baed2fd04f9467368c4ad6ac186d08245b263a2666d1f6c5420f1599dfd9f438921c2f5a463938ce0982265eef70179bc553f339eb1a4c1af5f6a547f"
|
||||
|
||||
Test Vector ARC4 [RFC6229 40-bit]
|
||||
mbedtls_arc4_crypt:"0000000000000000000000000000000000000000000000000000000000000000":"0102030405":"b2396305f03dc027ccc3524a0a1118a86982944f18fc82d589c403a47a0d0919"
|
||||
|
||||
Test Vector ARC4 [RFC6229 56-bit]
|
||||
mbedtls_arc4_crypt:"0000000000000000000000000000000000000000000000000000000000000000":"01020304050607":"293f02d47f37c9b633f2af5285feb46be620f1390d19bd84e2e0fd752031afc1"
|
||||
|
||||
Test Vector ARC4 [RFC6229 64-bit]
|
||||
mbedtls_arc4_crypt:"0000000000000000000000000000000000000000000000000000000000000000":"0102030405060708":"97ab8a1bf0afb96132f2f67258da15a88263efdb45c4a18684ef87e6b19e5b09"
|
||||
|
||||
Test Vector ARC4 [RFC6229 128-bit]
|
||||
mbedtls_arc4_crypt:"0000000000000000000000000000000000000000000000000000000000000000":"0102030405060708090a0b0c0d0e0f10":"9ac7cc9a609d1ef7b2932899cde41b975248c4959014126a6e8a84f11d1a9e1c"
|
||||
|
||||
TMP
|
||||
mbedtls_arc4_crypt:"1400002433c96cfa5c53a65184fcba83d9793f42522f94e49bf25edcb7a23c9eaae5ca84f6ee6da8":"5e58b1ad80":"e9a3d07ea1a3eac9fd73dcb14c409f2d434a72b6aa077e0924bcffc236f55d2d372b289707571531"
|
||||
|
||||
ARC4 Selftest
|
||||
depends_on:MBEDTLS_SELF_TEST
|
||||
arc4_selftest:
|
||||
37
externals/mbedtls/tests/suites/test_suite_arc4.function
vendored
Normal file
37
externals/mbedtls/tests/suites/test_suite_arc4.function
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/arc4.h"
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_ARC4_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_arc4_crypt( data_t * src_str, data_t * key_str, data_t * dst )
|
||||
{
|
||||
unsigned char dst_str[1000];
|
||||
mbedtls_arc4_context ctx;
|
||||
|
||||
memset(dst_str, 0x00, 1000);
|
||||
mbedtls_arc4_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_arc4_setup(&ctx, key_str->x, key_str->len);
|
||||
TEST_ASSERT( mbedtls_arc4_crypt(&ctx, src_str->len,
|
||||
src_str->x, dst_str ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( dst_str, dst->x,
|
||||
src_str->len, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_arc4_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void arc4_selftest( )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_arc4_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,3 +1,6 @@
|
||||
ARIA - Valid parameters
|
||||
aria_valid_param:
|
||||
|
||||
ARIA - Invalid parameters
|
||||
aria_invalid_param:
|
||||
|
||||
@@ -13,9 +16,18 @@ aria_encrypt_ecb:"000102030405060708090a0b0c0d0e0f1011121314151617":"00112233445
|
||||
ARIA-192-ECB Decrypt - RFC 5794
|
||||
aria_decrypt_ecb:"000102030405060708090a0b0c0d0e0f1011121314151617":"26449c1805dbe7aa25a468ce263a9e79":"00112233445566778899aabbccddeeff":0
|
||||
|
||||
ARIA-256-ECB Encrypt - RFC 5794
|
||||
ARIA-256-ECB_Encrypt - RFC 5794
|
||||
aria_encrypt_ecb:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"00112233445566778899aabbccddeeff":"f92bd7c79fb72e2f2b8f80c1972d24fc":0
|
||||
|
||||
ARIA-256-ECB_Decrypt - RFC 5794
|
||||
aria_decrypt_ecb:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"f92bd7c79fb72e2f2b8f80c1972d24fc":"00112233445566778899aabbccddeeff":0
|
||||
|
||||
ARIA-128-ECB Decrypt - RFC 5794
|
||||
aria_decrypt_ecb:"000102030405060708090a0b0c0d0e0f":"d718fbd6ab644c739da95f3be6451778":"00112233445566778899aabbccddeeff":0
|
||||
|
||||
ARIA-192-ECB Decrypt - RFC 5794
|
||||
aria_decrypt_ecb:"000102030405060708090a0b0c0d0e0f1011121314151617":"26449c1805dbe7aa25a468ce263a9e79":"00112233445566778899aabbccddeeff":0
|
||||
|
||||
ARIA-256-ECB Decrypt - RFC 5794
|
||||
aria_decrypt_ecb:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"f92bd7c79fb72e2f2b8f80c1972d24fc":"00112233445566778899aabbccddeeff":0
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/aria.h"
|
||||
|
||||
/* Maximum size of data used by test vectors
|
||||
/* 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)
|
||||
#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
|
||||
@@ -17,9 +17,17 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void aria_invalid_param()
|
||||
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 };
|
||||
@@ -27,252 +35,395 @@ void aria_invalid_param()
|
||||
|
||||
((void) iv_off);
|
||||
((void) iv);
|
||||
((void) ctx);
|
||||
((void) input);
|
||||
((void) output);
|
||||
|
||||
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_EQUAL(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( 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_EQUAL(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( 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_CBC) || defined(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;
|
||||
#endif
|
||||
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void aria_encrypt_ecb(data_t *key_str, data_t *src_str,
|
||||
data_t *expected_output, int setkey_result)
|
||||
void aria_encrypt_ecb( data_t *key_str, data_t *src_str,
|
||||
data_t *expected_output, int setkey_result )
|
||||
{
|
||||
unsigned char output[ARIA_MAX_DATASIZE];
|
||||
mbedtls_aria_context ctx;
|
||||
size_t i;
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
mbedtls_aria_init(&ctx);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8)
|
||||
== setkey_result);
|
||||
if (setkey_result == 0) {
|
||||
for (i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE) {
|
||||
TEST_ASSERT(mbedtls_aria_crypt_ecb(&ctx, src_str->x + i,
|
||||
output + i) == 0);
|
||||
TEST_ASSERT( mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 )
|
||||
== setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i,
|
||||
output + i ) == 0 );
|
||||
}
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:!MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
|
||||
void aria_decrypt_ecb(data_t *key_str, data_t *src_str,
|
||||
data_t *expected_output, int setkey_result)
|
||||
/* BEGIN_CASE */
|
||||
void aria_decrypt_ecb( data_t *key_str, data_t *src_str,
|
||||
data_t *expected_output, int setkey_result )
|
||||
{
|
||||
unsigned char output[ARIA_MAX_DATASIZE];
|
||||
mbedtls_aria_context ctx;
|
||||
size_t i;
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
mbedtls_aria_init(&ctx);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_aria_setkey_dec(&ctx, key_str->x, key_str->len * 8)
|
||||
== setkey_result);
|
||||
if (setkey_result == 0) {
|
||||
for (i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE) {
|
||||
TEST_ASSERT(mbedtls_aria_crypt_ecb(&ctx, src_str->x + i,
|
||||
output + i) == 0);
|
||||
TEST_ASSERT( mbedtls_aria_setkey_dec( &ctx, key_str->x, key_str->len * 8 )
|
||||
== setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i,
|
||||
output + i ) == 0 );
|
||||
}
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void aria_encrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int cbc_result)
|
||||
void aria_encrypt_cbc( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[ARIA_MAX_DATASIZE];
|
||||
mbedtls_aria_context ctx;
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
mbedtls_aria_init(&ctx);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
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);
|
||||
if (cbc_result == 0) {
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
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 );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void aria_decrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int cbc_result)
|
||||
void aria_decrypt_cbc( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[ARIA_MAX_DATASIZE];
|
||||
mbedtls_aria_context ctx;
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
mbedtls_aria_init(&ctx);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
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);
|
||||
if (cbc_result == 0) {
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
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 );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void aria_encrypt_cfb128(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int result)
|
||||
void aria_encrypt_cfb128( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
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);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_ENCRYPT,
|
||||
src_str->len, &iv_offset,
|
||||
iv_str->x, src_str->x, output)
|
||||
== result);
|
||||
mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT,
|
||||
src_str->len, &iv_offset,
|
||||
iv_str->x, src_str->x, output )
|
||||
== result );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void aria_decrypt_cfb128(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int result)
|
||||
void aria_decrypt_cfb128( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
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);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_DECRYPT,
|
||||
src_str->len, &iv_offset,
|
||||
iv_str->x, src_str->x, output)
|
||||
== result);
|
||||
mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT,
|
||||
src_str->len, &iv_offset,
|
||||
iv_str->x, src_str->x, output )
|
||||
== result );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */
|
||||
void aria_encrypt_ctr(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int result)
|
||||
void aria_encrypt_ctr( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
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);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
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)
|
||||
== result);
|
||||
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 )
|
||||
== result );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */
|
||||
void aria_decrypt_ctr(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
int result)
|
||||
void aria_decrypt_ctr( data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *expected_output,
|
||||
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);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
mbedtls_aria_init( &ctx );
|
||||
|
||||
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)
|
||||
== result);
|
||||
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 )
|
||||
== result );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output->len,
|
||||
expected_output->x, expected_output->len);
|
||||
ASSERT_COMPARE( output, expected_output->len,
|
||||
expected_output->x, expected_output->len );
|
||||
|
||||
exit:
|
||||
mbedtls_aria_free(&ctx);
|
||||
mbedtls_aria_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void aria_selftest()
|
||||
{
|
||||
TEST_ASSERT(mbedtls_aria_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_aria_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -1,637 +0,0 @@
|
||||
Empty length
|
||||
parse_prefixes:"04":MBEDTLS_ERR_ASN1_OUT_OF_DATA:UNPREDICTABLE_RESULT
|
||||
|
||||
Incomplete length
|
||||
parse_prefixes:"0481":MBEDTLS_ERR_ASN1_OUT_OF_DATA:UNPREDICTABLE_RESULT
|
||||
|
||||
Prefixes of OCTET STRING, length=0
|
||||
parse_prefixes:"0400":0:0
|
||||
|
||||
Prefixes of OCTET STRING, length=0 (0 length bytes)
|
||||
parse_prefixes:"0480":MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_LENGTH
|
||||
|
||||
Prefixes of OCTET STRING, length=1
|
||||
parse_prefixes:"040141":0:0
|
||||
|
||||
Prefixes of OCTET STRING, length=2
|
||||
parse_prefixes:"04024142":0:0
|
||||
|
||||
Prefixes of BOOLEAN, length=0
|
||||
parse_prefixes:"0100":MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_LENGTH
|
||||
|
||||
Prefixes of BOOLEAN, length=1
|
||||
parse_prefixes:"010100":0:0
|
||||
|
||||
Prefixes of BOOLEAN, length=2
|
||||
parse_prefixes:"01020000":MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_LENGTH
|
||||
|
||||
Prefixes of INTEGER, length=1
|
||||
parse_prefixes:"020141":0:0
|
||||
|
||||
Prefixes of INTEGER, length=2
|
||||
parse_prefixes:"02024142":0:0
|
||||
|
||||
Prefixes of INTEGER, length=5
|
||||
parse_prefixes:"02054142434445":0:0
|
||||
|
||||
Prefixes of empty BIT STRING
|
||||
parse_prefixes:"0300":MBEDTLS_ERR_ASN1_OUT_OF_DATA:UNPREDICTABLE_RESULT
|
||||
|
||||
Prefixes of BIT STRING, unused_bits=0, payload_length=0
|
||||
parse_prefixes:"030100":0:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
Prefixes of BIT STRING, unused_bits=0, payload_length=1
|
||||
parse_prefixes:"0302002a":0:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
Prefixes of BIT STRING, unused_bits=1, payload_length=1
|
||||
parse_prefixes:"0302012a":0:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
Prefixes of empty SEQUENCE
|
||||
parse_prefixes:"3000":0:0
|
||||
|
||||
Prefixes of SEQUENCE of BOOLEAN, INTEGER, INTEGER
|
||||
parse_prefixes:"300b01010102012a0203123456":0:0
|
||||
|
||||
Prefixes of SEQUENCE of (SEQUENCE of INTEGER, INTEGER), INTEGER
|
||||
parse_prefixes:"300b3006020141020142020161":0:0
|
||||
|
||||
length=0 (short form)
|
||||
get_len:"00":0
|
||||
|
||||
length=0 (1 length byte)
|
||||
get_len:"8100":0
|
||||
|
||||
length=0 (2 length bytes)
|
||||
get_len:"820000":0
|
||||
|
||||
length=1 (short form)
|
||||
get_len:"01":1
|
||||
|
||||
length=1 (1 length byte)
|
||||
get_len:"8101":1
|
||||
|
||||
length=1 (2 length bytes)
|
||||
get_len:"820001":1
|
||||
|
||||
length=1 (3 length bytes)
|
||||
get_len:"83000001":1
|
||||
|
||||
length=1 (4 length bytes)
|
||||
get_len:"8400000001":1
|
||||
|
||||
length=2 (short form)
|
||||
get_len:"02":2
|
||||
|
||||
length=2 (1 length byte)
|
||||
get_len:"8102":2
|
||||
|
||||
length=2 (2 length bytes)
|
||||
get_len:"820002":2
|
||||
|
||||
length=2 (3 length bytes)
|
||||
get_len:"83000002":2
|
||||
|
||||
length=2 (4 length bytes)
|
||||
get_len:"8400000002":2
|
||||
|
||||
length=127 (short form)
|
||||
get_len:"7f":127
|
||||
|
||||
length=128 (1 length byte)
|
||||
get_len:"8180":128
|
||||
|
||||
length=128 (2 length bytes)
|
||||
get_len:"820080":128
|
||||
|
||||
length=255 (1 length byte)
|
||||
get_len:"81ff":255
|
||||
|
||||
length=255 (2 length bytes)
|
||||
get_len:"8200ff":255
|
||||
|
||||
length=256 (2 length bytes)
|
||||
get_len:"820100":256
|
||||
|
||||
length=256 (3 length bytes)
|
||||
get_len:"83000100":256
|
||||
|
||||
length=258 (2 length bytes)
|
||||
get_len:"820102":258
|
||||
|
||||
length=258 (3 length bytes)
|
||||
get_len:"83000102":258
|
||||
|
||||
length=65535 (2 length bytes)
|
||||
get_len:"82ffff":65535
|
||||
|
||||
length=65535 (3 length bytes)
|
||||
get_len:"8300ffff":65535
|
||||
|
||||
length=65535 (4 length bytes)
|
||||
get_len:"840000ffff":65535
|
||||
|
||||
length=65536 (3 length bytes)
|
||||
get_len:"83010000":65536
|
||||
|
||||
length=65536 (4 length bytes)
|
||||
get_len:"8400010000":65536
|
||||
|
||||
length=16777215 (3 length bytes)
|
||||
get_len:"83ffffff":16777215
|
||||
|
||||
length=16777215 (4 length bytes)
|
||||
get_len:"8400ffffff":16777215
|
||||
|
||||
length=16777216 (4 length bytes)
|
||||
get_len:"8401000000":16777216
|
||||
|
||||
length=16909060 (4 length bytes)
|
||||
get_len:"8401020304":16909060
|
||||
|
||||
BOOLEAN FALSE
|
||||
get_boolean:"010100":0:0
|
||||
|
||||
BOOLEAN TRUE (1)
|
||||
get_boolean:"010101":1:0
|
||||
|
||||
BOOLEAN TRUE (2)
|
||||
get_boolean:"010101":1:0
|
||||
|
||||
BOOLEAN TRUE (128)
|
||||
get_boolean:"010180":1:0
|
||||
|
||||
BOOLEAN TRUE (255)
|
||||
get_boolean:"0101ff":1:0
|
||||
|
||||
Not BOOLEAN
|
||||
get_boolean:"020101":0:MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Empty INTEGER
|
||||
empty_integer:"0200"
|
||||
|
||||
INTEGER 0
|
||||
get_integer:"020100":"0":0
|
||||
|
||||
INTEGER 0, extra leading 0
|
||||
get_integer:"02020000":"0":0
|
||||
|
||||
INTEGER 1
|
||||
get_integer:"020101":"1":0:
|
||||
|
||||
INTEGER 1, extra leading 0
|
||||
get_integer:"02020001":"1":0:
|
||||
|
||||
INTEGER 0x7f
|
||||
get_integer:"02017f":"7f":0
|
||||
|
||||
INTEGER 0x80
|
||||
get_integer:"02020080":"80":0
|
||||
|
||||
INTEGER 0x80, extra leading 0
|
||||
get_integer:"0203000080":"80":0
|
||||
|
||||
INTEGER 0xff
|
||||
get_integer:"020200ff":"ff":0
|
||||
|
||||
INTEGER 0x7fff
|
||||
get_integer:"02027fff":"7fff":0
|
||||
|
||||
INTEGER 0x12345678
|
||||
get_integer:"020412345678":"12345678":0
|
||||
|
||||
INTEGER 0x12345678, extra leading 0
|
||||
get_integer:"02050012345678":"12345678":0
|
||||
|
||||
INTEGER 0x7fffffff
|
||||
get_integer:"02047fffffff":"7fffffff":0
|
||||
|
||||
INTEGER 0x7fffffff, extra leading 0
|
||||
get_integer:"0205007fffffff":"7fffffff":0
|
||||
|
||||
INTEGER 0x80000000
|
||||
get_integer:"02050080000000":"80000000":0
|
||||
|
||||
INTEGER 0xffffffff
|
||||
get_integer:"020500ffffffff":"ffffffff":0
|
||||
|
||||
INTEGER 0x100000000
|
||||
get_integer:"02050100000000":"0100000000":0
|
||||
|
||||
INTEGER 0x123456789abcdef0
|
||||
get_integer:"0208123456789abcdef0":"123456789abcdef0":0
|
||||
|
||||
INTEGER 0xfedcab9876543210
|
||||
get_integer:"020900fedcab9876543210":"fedcab9876543210":0
|
||||
|
||||
INTEGER 0x1fedcab9876543210
|
||||
get_integer:"020901fedcab9876543210":"1fedcab9876543210":0
|
||||
|
||||
INTEGER with 127 value octets
|
||||
get_integer:"027f0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd":0
|
||||
|
||||
INTEGER with 127 value octets (long length encoding)
|
||||
get_integer:"02817f0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd":0
|
||||
|
||||
INTEGER with 128 value octets
|
||||
get_integer:"0281800123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef":0
|
||||
|
||||
INTEGER with 128 value octets (leading 0 in length)
|
||||
get_integer:"028200800123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef":0
|
||||
|
||||
INTEGER -1
|
||||
get_integer:"0201ff":"-1":0
|
||||
|
||||
INTEGER -1, extra leading ff
|
||||
get_integer:"0202ffff":"-1":0
|
||||
|
||||
INTEGER -0x7f
|
||||
get_integer:"020181":"-7f":0
|
||||
|
||||
INTEGER -0x80
|
||||
get_integer:"020180":"-80":0
|
||||
|
||||
INTEGER -0x81
|
||||
get_integer:"0202ff7f":"-81":0
|
||||
|
||||
INTEGER -0xff
|
||||
get_integer:"0202ff01":"-ff":0
|
||||
|
||||
INTEGER -0x100
|
||||
get_integer:"0202ff00":"-100":0
|
||||
|
||||
INTEGER -0x7fffffff
|
||||
get_integer:"020480000001":"-7fffffff":0
|
||||
|
||||
INTEGER -0x80000000
|
||||
get_integer:"020480000000":"-80000000":0
|
||||
|
||||
INTEGER -0x80000001
|
||||
get_integer:"0205ff7fffffff":"-80000001":0
|
||||
|
||||
INTEGER -0xffffffff
|
||||
get_integer:"0205ff00000001":"-ffffffff":0
|
||||
|
||||
INTEGER -0x100000000
|
||||
get_integer:"0205ff00000000":"-100000000":0
|
||||
|
||||
INTEGER -0x123456789abcdef0
|
||||
get_integer:"0208edcba98765432110":"-123456789abcdef0":0
|
||||
|
||||
INTEGER -0xfedcba9876543210
|
||||
get_integer:"0209ff0123456789abcdf0":"-fedcba9876543210":0
|
||||
|
||||
INTEGER -0x1fedcab9876543210
|
||||
get_integer:"0209fe0123546789abcdf0":"-1fedcab9876543210":0
|
||||
|
||||
Not INTEGER
|
||||
get_integer:"010101":"":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
INTEGER too large for mpi
|
||||
get_mpi_too_large:
|
||||
|
||||
ENUMERATED 0
|
||||
get_enum:"0A0100":"0":0
|
||||
|
||||
ENUMERATED 0, extra leading 0
|
||||
get_enum:"0A020000":"0":0
|
||||
|
||||
ENUMERATED 1
|
||||
get_enum:"0A0101":"1":0
|
||||
|
||||
ENUMERATED 1, extra leading 0
|
||||
get_enum:"0A020001":"1":0
|
||||
|
||||
ENUMERATED 0x7f
|
||||
get_enum:"0A017f":"7f":0
|
||||
|
||||
ENUMERATED 0x80
|
||||
get_enum:"0A020080":"80":0
|
||||
|
||||
ENUMERATED 0x80, extra leading 0
|
||||
get_enum:"0A03000080":"80":0
|
||||
|
||||
ENUMERATED 0xff
|
||||
get_enum:"0A0200ff":"ff":0
|
||||
|
||||
ENUMERATED 0x7fff
|
||||
get_enum:"0A027fff":"7fff":0
|
||||
|
||||
ENUMERATED 0x12345678
|
||||
get_enum:"0A0412345678":"12345678":0
|
||||
|
||||
ENUMERATED 0x12345678, extra leading 0
|
||||
get_enum:"0A050012345678":"12345678":0
|
||||
|
||||
ENUMERATED 0x7fffffff
|
||||
get_enum:"0A047fffffff":"7fffffff":0
|
||||
|
||||
ENUMERATED 0x7fffffff, extra leading 0
|
||||
get_enum:"0A05007fffffff":"7fffffff":0
|
||||
|
||||
ENUMERATED 0x80000000
|
||||
get_enum:"0A050080000000":"80000000":0
|
||||
|
||||
ENUMERATED 0xffffffff
|
||||
get_enum:"0A0500ffffffff":"ffffffff":0
|
||||
|
||||
ENUMERATED 0x100000000
|
||||
get_enum:"0A050100000000":"0100000000":0
|
||||
|
||||
ENUMERATED -1
|
||||
get_enum:"0A01ff":"-1":0
|
||||
|
||||
ENUMERATED -1, extra leading ff
|
||||
get_enum:"0A02ffff":"-1":0
|
||||
|
||||
ENUMERATED -0x7f
|
||||
get_enum:"0A0181":"-7f":0
|
||||
|
||||
ENUMERATED -0x80
|
||||
get_enum:"0A0180":"-80":0
|
||||
|
||||
ENUMERATED -0x81
|
||||
get_enum:"0A02ff7f":"-81":0
|
||||
|
||||
ENUMERATED -0xff
|
||||
get_enum:"0A02ff01":"-ff":0
|
||||
|
||||
ENUMERATED -0x100
|
||||
get_enum:"0A02ff00":"-100":0
|
||||
|
||||
ENUMERATED -0x7fffffff
|
||||
get_enum:"0A0480000001":"-7fffffff":0
|
||||
|
||||
ENUMERATED -0x80000000
|
||||
get_enum:"0A0480000000":"-80000000":0
|
||||
|
||||
ENUMERATED -0x80000001
|
||||
get_enum:"0A05ff7fffffff":"-80000001":0
|
||||
|
||||
ENUMERATED -0xffffffff
|
||||
get_enum:"0A05ff00000001":"-ffffffff":0
|
||||
|
||||
ENUMERATED -0x100000000
|
||||
get_enum:"0A05ff00000000":"-100000000":0
|
||||
|
||||
BIT STRING: empty
|
||||
get_bitstring:"0300":0:0:MBEDTLS_ERR_ASN1_OUT_OF_DATA:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=0, unused_bits=0
|
||||
get_bitstring:"030100":0:0:0:0
|
||||
|
||||
BIT STRING: octets=0, unused_bits=7
|
||||
get_bitstring:"030107":0:7:0:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=0, unused_bits=8
|
||||
get_bitstring:"030108":0:0:MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=1, unused_bits=0
|
||||
get_bitstring:"03020041":1:0:0:0
|
||||
|
||||
BIT STRING: octets=1, unused_bits=7
|
||||
get_bitstring:"03020741":1:7:0:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=1, unused_bits=8
|
||||
get_bitstring:"03020841":1:8:MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=2, unused_bits=0
|
||||
get_bitstring:"0303004142":2:0:0:0
|
||||
|
||||
BIT STRING: octets=2, unused_bits=7
|
||||
get_bitstring:"0303074142":2:7:0:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING: octets=2, unused_bits=8
|
||||
get_bitstring:"0303084142":2:8:MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING with trailing garbage, unused_bits=0
|
||||
get_bitstring:"030200417e":1:0:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH:0
|
||||
|
||||
BIT STRING with trailing garbage, unused_bits=7
|
||||
get_bitstring:"030207417e":1:7:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
BIT STRING with trailing garbage, unused_bits=8
|
||||
get_bitstring:"030208417e":1:8:MBEDTLS_ERR_ASN1_INVALID_LENGTH:MBEDTLS_ERR_ASN1_INVALID_DATA
|
||||
|
||||
Not BIT STRING
|
||||
get_bitstring:"04020100":0:0:MBEDTLS_ERR_ASN1_UNEXPECTED_TAG:MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
SEQUENCE OF 0 OCTET STRING
|
||||
get_sequence_of:"3000":0x04:"":0
|
||||
|
||||
SEQUENCE OF 0 OCTET STRING plus trailing garbage
|
||||
get_sequence_of:"30007e":0x04:"":MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated after tag
|
||||
get_sequence_of:"300104":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated in length #1
|
||||
get_sequence_of:"30020481":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated in length #2
|
||||
get_sequence_of:"3003048201":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated in content #1
|
||||
get_sequence_of:"30020401":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated in content #2
|
||||
get_sequence_of:"3003040241":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING truncated in content #3
|
||||
get_sequence_of:"300404034142":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 1 OCTET STRING (0)
|
||||
get_sequence_of:"30020400":0x04:"4,0":0
|
||||
|
||||
SEQUENCE of 1 OCTET STRING (1)
|
||||
get_sequence_of:"3003040141":0x04:"4,1":0
|
||||
|
||||
SEQUENCE of 1 OCTET STRING (126)
|
||||
get_sequence_of:"308180047e414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141":0x04:"5,126":0
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated after tag
|
||||
get_sequence_of:"30050402414104":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated in length #1
|
||||
get_sequence_of:"3006040241410481":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated in length #2
|
||||
get_sequence_of:"300704024141048201":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated in content #1
|
||||
get_sequence_of:"3006040241410401":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated in content #2
|
||||
get_sequence_of:"300704024141040241":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs, second truncated in content #3
|
||||
get_sequence_of:"30080402414104034142":0x04:"":MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs (2, 0)
|
||||
get_sequence_of:"3006040241410400":0x04:"4,2,8,0":0
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs (2, 1)
|
||||
get_sequence_of:"300704024141040142":0x04:"4,2,8,1":0
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs (0, 2)
|
||||
get_sequence_of:"3006040004024141":0x04:"4,0,6,2":0
|
||||
|
||||
SEQUENCE of 2 OCTET STRINGs (1, 2)
|
||||
get_sequence_of:"300704014104024242":0x04:"4,1,7,2":0
|
||||
|
||||
Not a SEQUENCE (not CONSTRUCTED)
|
||||
get_sequence_of:"1000":0x04:"":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Not a SEQUENCE (not SEQUENCE)
|
||||
get_sequence_of:"3100":0x04:"":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Traverse empty SEQUENCE
|
||||
traverse_sequence_of:"3000":0:0:0:0:"":0
|
||||
|
||||
Traverse empty SEQUENCE plus trailing garbage
|
||||
traverse_sequence_of:"30007e":0:0:0:0:"":MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
Traverse SEQUENCE of INTEGER: 1 INTEGER
|
||||
traverse_sequence_of:"30050203123456":0xff:0x02:0:0:"4,0x02,3":0
|
||||
|
||||
Traverse SEQUENCE of INTEGER: 2 INTEGERs
|
||||
traverse_sequence_of:"30080203123456020178":0xff:0x02:0:0:"4,0x02,3,9,0x02,1":0
|
||||
|
||||
Traverse SEQUENCE of INTEGER: INTEGER, NULL
|
||||
traverse_sequence_of:"300702031234560500":0xff:0x02:0:0:"4,0x02,3":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Traverse SEQUENCE of INTEGER: NULL, INTEGER
|
||||
traverse_sequence_of:"300705000203123456":0xff:0x02:0:0:"":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Traverse SEQUENCE of ANY: NULL, INTEGER
|
||||
traverse_sequence_of:"300705000203123456":0:0:0:0:"4,0x05,0,6,0x02,3":0
|
||||
|
||||
Traverse SEQUENCE of ANY, skip non-INTEGER: INTEGER, NULL
|
||||
traverse_sequence_of:"300702031234560500":0:0:0xff:0x02:"4,0x02,3":0
|
||||
|
||||
Traverse SEQUENCE of ANY, skip non-INTEGER: NULL, INTEGER
|
||||
traverse_sequence_of:"300705000203123456":0:0:0xff:0x02:"6,0x02,3":0
|
||||
|
||||
Traverse SEQUENCE of INTEGER, skip everything
|
||||
traverse_sequence_of:"30080203123456020178":0xff:0x02:0:1:"":0
|
||||
|
||||
Traverse SEQUENCE of {NULL, OCTET STRING}, skip NULL: OS, NULL
|
||||
traverse_sequence_of:"300704031234560500":0xfe:0x04:0xff:0x04:"4,0x04,3":0
|
||||
|
||||
Traverse SEQUENCE of {NULL, OCTET STRING}, skip NULL: NULL, OS
|
||||
traverse_sequence_of:"300705000403123456":0xfe:0x04:0xff:0x04:"6,0x04,3":0
|
||||
|
||||
Traverse SEQUENCE of {NULL, OCTET STRING}, skip everything
|
||||
traverse_sequence_of:"300705000403123456":0xfe:0x04:0:1:"":0
|
||||
|
||||
Traverse SEQUENCE of INTEGER, stop at 0: NULL
|
||||
traverse_sequence_of:"30020500":0xff:0x02:0:0:"":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Traverse SEQUENCE of INTEGER, stop at 0: INTEGER
|
||||
traverse_sequence_of:"30050203123456":0xff:0x02:0:0:"":RET_TRAVERSE_STOP
|
||||
|
||||
Traverse SEQUENCE of INTEGER, stop at 0: INTEGER, NULL
|
||||
traverse_sequence_of:"300702031234560500":0xff:0x02:0:0:"":RET_TRAVERSE_STOP
|
||||
|
||||
Traverse SEQUENCE of INTEGER, stop at 1: INTEGER, NULL
|
||||
traverse_sequence_of:"300702031234560500":0xff:0x02:0:0:"4,0x02,3":MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Traverse SEQUENCE of INTEGER, stop at 1: INTEGER, INTEGER
|
||||
traverse_sequence_of:"30080203123456020178":0xff:0x02:0:0:"4,0x02,3":RET_TRAVERSE_STOP
|
||||
|
||||
AlgorithmIdentifier, no params
|
||||
get_alg:"300506034f4944":4:3:0:0:0:7:0
|
||||
|
||||
AlgorithmIdentifier, no params, trailing garbage
|
||||
get_alg:"300506034f49447e":4:3:0:0:0:7:0
|
||||
|
||||
AlgorithmIdentifier, null params
|
||||
get_alg:"300706034f49440500":4:3:0x05:9:0:9:0
|
||||
|
||||
AlgorithmIdentifier, null params, trailing garbage
|
||||
get_alg:"300706034f494405007e":4:3:0x05:9:0:9:0
|
||||
|
||||
AlgorithmIdentifier, OCTET STRING params
|
||||
get_alg:"300c06034f494404056162636465":4:3:0x04:9:5:14:0
|
||||
|
||||
AlgorithmIdentifier, truncated before OID
|
||||
get_alg:"3000":4:3:0:0:0:2:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated in OID after tag
|
||||
get_alg:"300106":0:0:0:0:0:3:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated in OID after length
|
||||
get_alg:"30020603":4:3:0:0:0:4:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated inside OID content
|
||||
get_alg:"300406034f49":4:3:0:0:0:6:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated in params after tag
|
||||
get_alg:"300606034f494404":4:3:0x04:0:0:8:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated in params after length
|
||||
get_alg:"300706034f49440405":4:3:0x04:9:0:9:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
AlgorithmIdentifier, truncated inside params content
|
||||
get_alg:"300806034f4944040561":4:3:0x04:9:5:10:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
Not an AlgorithmIdentifier (not a SEQUENCE)
|
||||
get_alg:"310506034f4944":0:0:0:0:0:0:MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Not an AlgorithmIdentifier (empty SEQUENCE)
|
||||
get_alg:"3000":0:0:0:0:0:0:MBEDTLS_ERR_ASN1_OUT_OF_DATA
|
||||
|
||||
Not an AlgorithmIdentifier (not an OID)
|
||||
get_alg:"3006050006034f4944":0:0:0:0:0:0:MBEDTLS_ERR_ASN1_UNEXPECTED_TAG
|
||||
|
||||
Not an AlgorithmIdentifier (too many elements)
|
||||
get_alg:"300f06034f494406034f494406034f4944":0:0:0:0:0:0:MBEDTLS_ERR_ASN1_LENGTH_MISMATCH
|
||||
|
||||
Find named data: not found
|
||||
find_named_data:"414141":"424242":"434343":"444444":"7f7f7f":0:4
|
||||
|
||||
Find named data: empty haystack
|
||||
find_named_data:"414141":"424242":"434343":"444444":"7f7f7f":4:4
|
||||
|
||||
Find named data: first
|
||||
find_named_data:"414141":"424242":"434343":"444444":"414141":0:0
|
||||
|
||||
Find named data: last
|
||||
find_named_data:"414141":"424242":"434343":"444444":"444444":0:3
|
||||
|
||||
Find named data: skip suffix
|
||||
find_named_data:"41414141":"414141":"434343":"444444":"414141":0:1
|
||||
|
||||
Find named data: skip prefix
|
||||
find_named_data:"4141":"414141":"434343":"444444":"414141":0:1
|
||||
|
||||
Find named data: first match
|
||||
find_named_data:"414141":"414141":"434343":"444444":"414141":0:0
|
||||
|
||||
Free named data: null pointer
|
||||
depends_on:MBEDTLS_TEST_DEPRECATED
|
||||
free_named_data_null:
|
||||
|
||||
Free named data: all null
|
||||
depends_on:MBEDTLS_TEST_DEPRECATED
|
||||
free_named_data:0:0:0
|
||||
|
||||
Free named data: with oid
|
||||
depends_on:MBEDTLS_TEST_DEPRECATED
|
||||
free_named_data:1:0:0
|
||||
|
||||
Free named data: with val
|
||||
depends_on:MBEDTLS_TEST_DEPRECATED
|
||||
free_named_data:0:1:0
|
||||
|
||||
Free named data: with next
|
||||
depends_on:MBEDTLS_TEST_DEPRECATED
|
||||
free_named_data:0:0:1
|
||||
|
||||
Free named data list (empty)
|
||||
free_named_data_list:0
|
||||
|
||||
Free named data list (1)
|
||||
free_named_data_list:1
|
||||
|
||||
Free named data list (2)
|
||||
free_named_data_list:2
|
||||
@@ -1,774 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
|
||||
#include "mbedtls/bignum.h"
|
||||
#include "mbedtls/asn1.h"
|
||||
#if defined(MBEDTLS_ASN1_WRITE_C)
|
||||
#include "mbedtls/asn1write.h"
|
||||
#endif
|
||||
|
||||
/* Used internally to report an error that indicates a bug in a parsing function. */
|
||||
#define ERR_PARSE_INCONSISTENCY INT_MAX
|
||||
|
||||
/* Use this magic value in some tests to indicate that the expected result
|
||||
* should not be checked. */
|
||||
#define UNPREDICTABLE_RESULT 0x5552
|
||||
|
||||
static int nested_parse(unsigned char **const p,
|
||||
const unsigned char *const end)
|
||||
{
|
||||
int ret;
|
||||
size_t len = 0;
|
||||
size_t len2 = 0;
|
||||
unsigned char *const start = *p;
|
||||
unsigned char *content_start;
|
||||
unsigned char tag;
|
||||
|
||||
/* First get the length, skipping over the tag. */
|
||||
content_start = start + 1;
|
||||
ret = mbedtls_asn1_get_len(&content_start, end, &len);
|
||||
TEST_ASSERT(content_start <= end);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Since we have a valid element start (tag and length), retrieve and
|
||||
* check the tag. */
|
||||
tag = start[0];
|
||||
TEST_EQUAL(mbedtls_asn1_get_tag(p, end, &len2, tag ^ 1),
|
||||
MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
|
||||
*p = start;
|
||||
TEST_EQUAL(mbedtls_asn1_get_tag(p, end, &len2, tag), 0);
|
||||
TEST_EQUAL(len, len2);
|
||||
TEST_ASSERT(*p == content_start);
|
||||
*p = content_start;
|
||||
|
||||
switch (tag & 0x1f) {
|
||||
case MBEDTLS_ASN1_BOOLEAN:
|
||||
{
|
||||
int val = -257;
|
||||
*p = start;
|
||||
ret = mbedtls_asn1_get_bool(p, end, &val);
|
||||
if (ret == 0) {
|
||||
TEST_ASSERT(val == 0 || val == 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MBEDTLS_ASN1_INTEGER:
|
||||
{
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi mpi;
|
||||
mbedtls_mpi_init(&mpi);
|
||||
*p = start;
|
||||
ret = mbedtls_asn1_get_mpi(p, end, &mpi);
|
||||
mbedtls_mpi_free(&mpi);
|
||||
#else
|
||||
*p = start + 1;
|
||||
ret = mbedtls_asn1_get_len(p, end, &len);
|
||||
*p += len;
|
||||
#endif
|
||||
/* If we're sure that the number fits in an int, also
|
||||
* call mbedtls_asn1_get_int(). */
|
||||
if (ret == 0 && len < sizeof(int)) {
|
||||
int val = -257;
|
||||
unsigned char *q = start;
|
||||
ret = mbedtls_asn1_get_int(&q, end, &val);
|
||||
TEST_ASSERT(*p == q);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MBEDTLS_ASN1_BIT_STRING:
|
||||
{
|
||||
mbedtls_asn1_bitstring bs;
|
||||
*p = start;
|
||||
ret = mbedtls_asn1_get_bitstring(p, end, &bs);
|
||||
break;
|
||||
}
|
||||
|
||||
case MBEDTLS_ASN1_SEQUENCE:
|
||||
{
|
||||
while (*p <= end && *p < content_start + len && ret == 0) {
|
||||
ret = nested_parse(p, content_start + len);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case MBEDTLS_ASN1_OCTET_STRING:
|
||||
case MBEDTLS_ASN1_NULL:
|
||||
case MBEDTLS_ASN1_OID:
|
||||
case MBEDTLS_ASN1_UTF8_STRING:
|
||||
case MBEDTLS_ASN1_SET:
|
||||
case MBEDTLS_ASN1_PRINTABLE_STRING:
|
||||
case MBEDTLS_ASN1_T61_STRING:
|
||||
case MBEDTLS_ASN1_IA5_STRING:
|
||||
case MBEDTLS_ASN1_UTC_TIME:
|
||||
case MBEDTLS_ASN1_GENERALIZED_TIME:
|
||||
case MBEDTLS_ASN1_UNIVERSAL_STRING:
|
||||
case MBEDTLS_ASN1_BMP_STRING:
|
||||
default:
|
||||
/* No further testing implemented for this tag. */
|
||||
*p += len;
|
||||
return 0;
|
||||
}
|
||||
|
||||
TEST_ASSERT(*p <= end);
|
||||
return ret;
|
||||
|
||||
exit:
|
||||
return ERR_PARSE_INCONSISTENCY;
|
||||
}
|
||||
|
||||
int get_len_step(const data_t *input, size_t buffer_size,
|
||||
size_t actual_length)
|
||||
{
|
||||
unsigned char *buf = NULL;
|
||||
unsigned char *p = NULL;
|
||||
unsigned char *end;
|
||||
size_t parsed_length;
|
||||
int ret;
|
||||
|
||||
mbedtls_test_set_step(buffer_size);
|
||||
/* Allocate a new buffer of exactly the length to parse each time.
|
||||
* This gives memory sanitizers a chance to catch buffer overreads. */
|
||||
if (buffer_size == 0) {
|
||||
TEST_CALLOC(buf, 1);
|
||||
end = buf + 1;
|
||||
p = end;
|
||||
} else {
|
||||
TEST_CALLOC_OR_SKIP(buf, buffer_size);
|
||||
if (buffer_size > input->len) {
|
||||
memcpy(buf, input->x, input->len);
|
||||
memset(buf + input->len, 'A', buffer_size - input->len);
|
||||
} else {
|
||||
memcpy(buf, input->x, buffer_size);
|
||||
}
|
||||
p = buf;
|
||||
end = buf + buffer_size;
|
||||
}
|
||||
|
||||
ret = mbedtls_asn1_get_len(&p, end, &parsed_length);
|
||||
|
||||
if (buffer_size >= input->len + actual_length) {
|
||||
TEST_EQUAL(ret, 0);
|
||||
TEST_ASSERT(p == buf + input->len);
|
||||
TEST_EQUAL(parsed_length, actual_length);
|
||||
} else {
|
||||
TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA);
|
||||
}
|
||||
mbedtls_free(buf);
|
||||
return 1;
|
||||
|
||||
exit:
|
||||
mbedtls_free(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
const unsigned char *input_start;
|
||||
const char *description;
|
||||
} traverse_state_t;
|
||||
|
||||
/* Value returned by traverse_callback if description runs out. */
|
||||
#define RET_TRAVERSE_STOP 1
|
||||
/* Value returned by traverse_callback if description has an invalid format
|
||||
* (see traverse_sequence_of). */
|
||||
#define RET_TRAVERSE_ERROR 2
|
||||
|
||||
|
||||
static int traverse_callback(void *ctx, int tag,
|
||||
unsigned char *content, size_t len)
|
||||
{
|
||||
traverse_state_t *state = ctx;
|
||||
size_t offset;
|
||||
const char *rest = state->description;
|
||||
unsigned long n;
|
||||
|
||||
TEST_ASSERT(content > state->input_start);
|
||||
offset = content - state->input_start;
|
||||
mbedtls_test_set_step(offset);
|
||||
|
||||
if (*rest == 0) {
|
||||
return RET_TRAVERSE_STOP;
|
||||
}
|
||||
n = strtoul(rest, (char **) &rest, 0);
|
||||
TEST_EQUAL(n, offset);
|
||||
TEST_EQUAL(*rest, ',');
|
||||
++rest;
|
||||
n = strtoul(rest, (char **) &rest, 0);
|
||||
TEST_EQUAL(n, (unsigned) tag);
|
||||
TEST_EQUAL(*rest, ',');
|
||||
++rest;
|
||||
n = strtoul(rest, (char **) &rest, 0);
|
||||
TEST_EQUAL(n, len);
|
||||
if (*rest == ',') {
|
||||
++rest;
|
||||
}
|
||||
|
||||
state->description = rest;
|
||||
return 0;
|
||||
|
||||
exit:
|
||||
return RET_TRAVERSE_ERROR;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_ASN1_PARSE_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void parse_prefixes(const data_t *input,
|
||||
int full_result,
|
||||
int overfull_result)
|
||||
{
|
||||
/* full_result: expected result from parsing the given string. */
|
||||
/* overfull_result: expected_result from parsing the given string plus
|
||||
* some trailing garbage. This may be UNPREDICTABLE_RESULT to accept
|
||||
* any result: use this for invalid inputs that may or may not become
|
||||
* valid depending on what the trailing garbage is. */
|
||||
|
||||
unsigned char *buf = NULL;
|
||||
unsigned char *p = NULL;
|
||||
size_t buffer_size;
|
||||
int ret;
|
||||
|
||||
/* Test every prefix of the input, except the empty string.
|
||||
* The first byte of the string is the tag. Without a tag byte,
|
||||
* we wouldn't know what to parse the input as.
|
||||
* Also test the input followed by an extra byte.
|
||||
*/
|
||||
for (buffer_size = 1; buffer_size <= input->len + 1; buffer_size++) {
|
||||
mbedtls_test_set_step(buffer_size);
|
||||
/* Allocate a new buffer of exactly the length to parse each time.
|
||||
* This gives memory sanitizers a chance to catch buffer overreads. */
|
||||
TEST_CALLOC(buf, buffer_size);
|
||||
memcpy(buf, input->x, buffer_size);
|
||||
p = buf;
|
||||
ret = nested_parse(&p, buf + buffer_size);
|
||||
|
||||
if (ret == ERR_PARSE_INCONSISTENCY) {
|
||||
goto exit;
|
||||
}
|
||||
if (buffer_size < input->len) {
|
||||
TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA);
|
||||
} else if (buffer_size == input->len) {
|
||||
TEST_EQUAL(ret, full_result);
|
||||
} else { /* ( buffer_size > input->len ) */
|
||||
if (overfull_result != UNPREDICTABLE_RESULT) {
|
||||
TEST_EQUAL(ret, overfull_result);
|
||||
}
|
||||
}
|
||||
if (ret == 0) {
|
||||
TEST_ASSERT(p == buf + input->len);
|
||||
}
|
||||
|
||||
mbedtls_free(buf);
|
||||
buf = NULL;
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(buf);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_len(const data_t *input, int actual_length_arg)
|
||||
{
|
||||
size_t actual_length = actual_length_arg;
|
||||
size_t buffer_size;
|
||||
|
||||
/* Test prefixes of a buffer containing the given length string
|
||||
* followed by `actual_length` bytes of payload. To save a bit of
|
||||
* time, we skip some "boring" prefixes: we don't test prefixes where
|
||||
* the payload is truncated more than one byte away from either end,
|
||||
* and we only test the empty string on a 1-byte input.
|
||||
*/
|
||||
for (buffer_size = 1; buffer_size <= input->len + 1; buffer_size++) {
|
||||
if (!get_len_step(input, buffer_size, actual_length)) {
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
if (!get_len_step(input, input->len + actual_length - 1, actual_length)) {
|
||||
goto exit;
|
||||
}
|
||||
if (!get_len_step(input, input->len + actual_length, actual_length)) {
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_boolean(const data_t *input,
|
||||
int expected_value, int expected_result)
|
||||
{
|
||||
unsigned char *p = input->x;
|
||||
int val;
|
||||
int ret;
|
||||
ret = mbedtls_asn1_get_bool(&p, input->x + input->len, &val);
|
||||
TEST_EQUAL(ret, expected_result);
|
||||
if (expected_result == 0) {
|
||||
TEST_EQUAL(val, expected_value);
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void empty_integer(const data_t *input)
|
||||
{
|
||||
unsigned char *p;
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi actual_mpi;
|
||||
#endif
|
||||
int val;
|
||||
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi_init(&actual_mpi);
|
||||
#endif
|
||||
|
||||
/* An INTEGER with no content is not valid. */
|
||||
p = input->x;
|
||||
TEST_EQUAL(mbedtls_asn1_get_int(&p, input->x + input->len, &val),
|
||||
MBEDTLS_ERR_ASN1_INVALID_LENGTH);
|
||||
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
/* INTEGERs are sometimes abused as bitstrings, so the library accepts
|
||||
* an INTEGER with empty content and gives it the value 0. */
|
||||
p = input->x;
|
||||
TEST_EQUAL(mbedtls_asn1_get_mpi(&p, input->x + input->len, &actual_mpi),
|
||||
0);
|
||||
TEST_EQUAL(mbedtls_mpi_cmp_int(&actual_mpi, 0), 0);
|
||||
#endif
|
||||
|
||||
exit:
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi_free(&actual_mpi);
|
||||
#endif
|
||||
/*empty cleanup in some configurations*/;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_integer(const data_t *input,
|
||||
const char *expected_hex, int expected_result)
|
||||
{
|
||||
unsigned char *p;
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi expected_mpi;
|
||||
mbedtls_mpi actual_mpi;
|
||||
mbedtls_mpi complement;
|
||||
int expected_result_for_mpi = expected_result;
|
||||
#endif
|
||||
long expected_value;
|
||||
int expected_result_for_int = expected_result;
|
||||
int val;
|
||||
int ret;
|
||||
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi_init(&expected_mpi);
|
||||
mbedtls_mpi_init(&actual_mpi);
|
||||
mbedtls_mpi_init(&complement);
|
||||
#endif
|
||||
|
||||
errno = 0;
|
||||
expected_value = strtol(expected_hex, NULL, 16);
|
||||
if (expected_result == 0 &&
|
||||
(errno == ERANGE
|
||||
#if LONG_MAX > INT_MAX
|
||||
|| expected_value > INT_MAX || expected_value < INT_MIN
|
||||
#endif
|
||||
)) {
|
||||
/* The library returns the dubious error code INVALID_LENGTH
|
||||
* for integers that are out of range. */
|
||||
expected_result_for_int = MBEDTLS_ERR_ASN1_INVALID_LENGTH;
|
||||
}
|
||||
if (expected_result == 0 && expected_value < 0) {
|
||||
/* The library does not support negative INTEGERs and
|
||||
* returns the dubious error code INVALID_LENGTH.
|
||||
* Test that we preserve the historical behavior. If we
|
||||
* decide to change the behavior, we'll also change this test. */
|
||||
expected_result_for_int = MBEDTLS_ERR_ASN1_INVALID_LENGTH;
|
||||
}
|
||||
|
||||
p = input->x;
|
||||
ret = mbedtls_asn1_get_int(&p, input->x + input->len, &val);
|
||||
TEST_EQUAL(ret, expected_result_for_int);
|
||||
if (ret == 0) {
|
||||
TEST_EQUAL(val, expected_value);
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
}
|
||||
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
ret = mbedtls_test_read_mpi(&expected_mpi, expected_hex);
|
||||
TEST_ASSERT(ret == 0 || ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA);
|
||||
if (ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA) {
|
||||
/* The data overflows the maximum MPI size. */
|
||||
expected_result_for_mpi = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
|
||||
}
|
||||
p = input->x;
|
||||
ret = mbedtls_asn1_get_mpi(&p, input->x + input->len, &actual_mpi);
|
||||
TEST_EQUAL(ret, expected_result_for_mpi);
|
||||
if (ret == 0) {
|
||||
if (expected_value >= 0) {
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&actual_mpi,
|
||||
&expected_mpi) == 0);
|
||||
} else {
|
||||
/* The library ignores the sign bit in ASN.1 INTEGERs
|
||||
* (which makes sense insofar as INTEGERs are sometimes
|
||||
* abused as bit strings), so the result of parsing them
|
||||
* is a positive integer such that expected_mpi +
|
||||
* actual_mpi = 2^n where n is the length of the content
|
||||
* of the INTEGER. (Leading ff octets don't matter for the
|
||||
* expected value, but they matter for the actual value.)
|
||||
* Test that we don't change from this behavior. If we
|
||||
* decide to fix the library to change the behavior on
|
||||
* negative INTEGERs, we'll fix this test code. */
|
||||
unsigned char *q = input->x + 1;
|
||||
size_t len;
|
||||
TEST_ASSERT(mbedtls_asn1_get_len(&q, input->x + input->len,
|
||||
&len) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_lset(&complement, 1) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_shift_l(&complement, len * 8) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_add_mpi(&complement, &complement,
|
||||
&expected_mpi) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&complement,
|
||||
&actual_mpi) == 0);
|
||||
}
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
}
|
||||
#endif
|
||||
|
||||
exit:
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
mbedtls_mpi_free(&expected_mpi);
|
||||
mbedtls_mpi_free(&actual_mpi);
|
||||
mbedtls_mpi_free(&complement);
|
||||
#endif
|
||||
/*empty cleanup in some configurations*/;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_enum(const data_t *input,
|
||||
const char *expected_hex, int expected_result)
|
||||
{
|
||||
unsigned char *p;
|
||||
long expected_value;
|
||||
int expected_result_for_enum = expected_result;
|
||||
int val;
|
||||
int ret;
|
||||
|
||||
errno = 0;
|
||||
expected_value = strtol(expected_hex, NULL, 16);
|
||||
if (expected_result == 0 &&
|
||||
(errno == ERANGE
|
||||
#if LONG_MAX > INT_MAX
|
||||
|| expected_value > INT_MAX || expected_value < INT_MIN
|
||||
#endif
|
||||
)) {
|
||||
/* The library returns the dubious error code INVALID_LENGTH
|
||||
* for integers that are out of range. */
|
||||
expected_result_for_enum = MBEDTLS_ERR_ASN1_INVALID_LENGTH;
|
||||
}
|
||||
if (expected_result == 0 && expected_value < 0) {
|
||||
/* The library does not support negative INTEGERs and
|
||||
* returns the dubious error code INVALID_LENGTH.
|
||||
* Test that we preserve the historical behavior. If we
|
||||
* decide to change the behavior, we'll also change this test. */
|
||||
expected_result_for_enum = MBEDTLS_ERR_ASN1_INVALID_LENGTH;
|
||||
}
|
||||
|
||||
p = input->x;
|
||||
ret = mbedtls_asn1_get_enum(&p, input->x + input->len, &val);
|
||||
TEST_EQUAL(ret, expected_result_for_enum);
|
||||
if (ret == 0) {
|
||||
TEST_EQUAL(val, expected_value);
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */
|
||||
void get_mpi_too_large()
|
||||
{
|
||||
unsigned char *buf = NULL;
|
||||
unsigned char *p;
|
||||
mbedtls_mpi actual_mpi;
|
||||
size_t too_many_octets =
|
||||
MBEDTLS_MPI_MAX_LIMBS * sizeof(mbedtls_mpi_uint) + 1;
|
||||
size_t size = too_many_octets + 6;
|
||||
|
||||
mbedtls_mpi_init(&actual_mpi);
|
||||
|
||||
TEST_CALLOC(buf, size);
|
||||
buf[0] = 0x02; /* tag: INTEGER */
|
||||
buf[1] = 0x84; /* 4-octet length */
|
||||
buf[2] = (too_many_octets >> 24) & 0xff;
|
||||
buf[3] = (too_many_octets >> 16) & 0xff;
|
||||
buf[4] = (too_many_octets >> 8) & 0xff;
|
||||
buf[5] = too_many_octets & 0xff;
|
||||
buf[6] = 0x01; /* most significant octet */
|
||||
|
||||
p = buf;
|
||||
TEST_EQUAL(mbedtls_asn1_get_mpi(&p, buf + size, &actual_mpi),
|
||||
MBEDTLS_ERR_MPI_ALLOC_FAILED);
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&actual_mpi);
|
||||
mbedtls_free(buf);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_bitstring(const data_t *input,
|
||||
int expected_length, int expected_unused_bits,
|
||||
int expected_result, int expected_result_null)
|
||||
{
|
||||
mbedtls_asn1_bitstring bs = { 0xdead, 0x21, NULL };
|
||||
unsigned char *p = input->x;
|
||||
|
||||
TEST_EQUAL(mbedtls_asn1_get_bitstring(&p, input->x + input->len, &bs),
|
||||
expected_result);
|
||||
if (expected_result == 0) {
|
||||
TEST_EQUAL(bs.len, (size_t) expected_length);
|
||||
TEST_EQUAL(bs.unused_bits, expected_unused_bits);
|
||||
TEST_ASSERT(bs.p != NULL);
|
||||
TEST_EQUAL(bs.p - input->x + bs.len, input->len);
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
}
|
||||
|
||||
p = input->x;
|
||||
TEST_EQUAL(mbedtls_asn1_get_bitstring_null(&p, input->x + input->len,
|
||||
&bs.len),
|
||||
expected_result_null);
|
||||
if (expected_result_null == 0) {
|
||||
TEST_EQUAL(bs.len, (size_t) expected_length);
|
||||
if (expected_result == 0) {
|
||||
TEST_ASSERT(p == input->x + input->len - bs.len);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_sequence_of(const data_t *input, int tag,
|
||||
const char *description,
|
||||
int expected_result)
|
||||
{
|
||||
/* The description string is a comma-separated list of integers.
|
||||
* For each element in the SEQUENCE in input, description contains
|
||||
* two integers: the offset of the element (offset from the start
|
||||
* of input to the tag of the element) and the length of the
|
||||
* element's contents.
|
||||
* "offset1,length1,..." */
|
||||
|
||||
mbedtls_asn1_sequence head = { { 0, 0, NULL }, NULL };
|
||||
mbedtls_asn1_sequence *cur;
|
||||
unsigned char *p = input->x;
|
||||
const char *rest = description;
|
||||
unsigned long n;
|
||||
unsigned int step = 0;
|
||||
|
||||
TEST_EQUAL(mbedtls_asn1_get_sequence_of(&p, input->x + input->len,
|
||||
&head, tag),
|
||||
expected_result);
|
||||
if (expected_result == 0) {
|
||||
TEST_ASSERT(p == input->x + input->len);
|
||||
|
||||
if (!*rest) {
|
||||
TEST_EQUAL(head.buf.tag, 0);
|
||||
TEST_ASSERT(head.buf.p == NULL);
|
||||
TEST_EQUAL(head.buf.len, 0);
|
||||
TEST_ASSERT(head.next == NULL);
|
||||
} else {
|
||||
cur = &head;
|
||||
while (*rest) {
|
||||
mbedtls_test_set_step(step);
|
||||
TEST_ASSERT(cur != NULL);
|
||||
TEST_EQUAL(cur->buf.tag, tag);
|
||||
n = strtoul(rest, (char **) &rest, 0);
|
||||
TEST_EQUAL(n, (size_t) (cur->buf.p - input->x));
|
||||
++rest;
|
||||
n = strtoul(rest, (char **) &rest, 0);
|
||||
TEST_EQUAL(n, cur->buf.len);
|
||||
if (*rest) {
|
||||
++rest;
|
||||
}
|
||||
cur = cur->next;
|
||||
++step;
|
||||
}
|
||||
TEST_ASSERT(cur == NULL);
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_asn1_sequence_free(head.next);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void traverse_sequence_of(const data_t *input,
|
||||
int tag_must_mask, int tag_must_val,
|
||||
int tag_may_mask, int tag_may_val,
|
||||
const char *description,
|
||||
int expected_result)
|
||||
{
|
||||
/* The description string is a comma-separated list of integers.
|
||||
* For each element in the SEQUENCE in input, description contains
|
||||
* three integers: the offset of the element's content (offset from
|
||||
* the start of input to the content of the element), the element's tag,
|
||||
* and the length of the element's contents.
|
||||
* "offset1,tag1,length1,..." */
|
||||
|
||||
unsigned char *p = input->x;
|
||||
traverse_state_t traverse_state = { input->x, description };
|
||||
int ret;
|
||||
|
||||
ret = mbedtls_asn1_traverse_sequence_of(&p, input->x + input->len,
|
||||
(uint8_t) tag_must_mask, (uint8_t) tag_must_val,
|
||||
(uint8_t) tag_may_mask, (uint8_t) tag_may_val,
|
||||
traverse_callback, &traverse_state);
|
||||
if (ret == RET_TRAVERSE_ERROR) {
|
||||
goto exit;
|
||||
}
|
||||
TEST_EQUAL(ret, expected_result);
|
||||
TEST_EQUAL(*traverse_state.description, 0);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void get_alg(const data_t *input,
|
||||
int oid_offset, int oid_length,
|
||||
int params_tag, int params_offset, int params_length,
|
||||
int total_length,
|
||||
int expected_result)
|
||||
{
|
||||
mbedtls_asn1_buf oid = { -1, 0, NULL };
|
||||
mbedtls_asn1_buf params = { -1, 0, NULL };
|
||||
unsigned char *p = input->x;
|
||||
int ret;
|
||||
|
||||
TEST_EQUAL(mbedtls_asn1_get_alg(&p, input->x + input->len,
|
||||
&oid, ¶ms),
|
||||
expected_result);
|
||||
if (expected_result == 0) {
|
||||
TEST_EQUAL(oid.tag, MBEDTLS_ASN1_OID);
|
||||
TEST_EQUAL(oid.p - input->x, oid_offset);
|
||||
TEST_EQUAL(oid.len, (size_t) oid_length);
|
||||
TEST_EQUAL(params.tag, params_tag);
|
||||
if (params_offset != 0) {
|
||||
TEST_EQUAL(params.p - input->x, params_offset);
|
||||
} else {
|
||||
TEST_ASSERT(params.p == NULL);
|
||||
}
|
||||
TEST_EQUAL(params.len, (size_t) params_length);
|
||||
TEST_EQUAL(p - input->x, total_length);
|
||||
}
|
||||
|
||||
ret = mbedtls_asn1_get_alg_null(&p, input->x + input->len, &oid);
|
||||
if (expected_result == 0 && params_offset == 0) {
|
||||
TEST_EQUAL(oid.tag, MBEDTLS_ASN1_OID);
|
||||
TEST_EQUAL(oid.p - input->x, oid_offset);
|
||||
TEST_EQUAL(oid.len, (size_t) oid_length);
|
||||
TEST_EQUAL(p - input->x, total_length);
|
||||
} else {
|
||||
TEST_ASSERT(ret != 0);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void find_named_data(data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3,
|
||||
data_t *needle, int from, int position)
|
||||
{
|
||||
mbedtls_asn1_named_data nd[] = {
|
||||
{ { 0x06, oid0->len, oid0->x }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, oid1->len, oid1->x }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, oid2->len, oid2->x }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, oid3->len, oid3->x }, { 0, 0, NULL }, NULL, 0 },
|
||||
};
|
||||
mbedtls_asn1_named_data *pointers[ARRAY_LENGTH(nd) + 1];
|
||||
size_t i;
|
||||
const mbedtls_asn1_named_data *found;
|
||||
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
pointers[i] = &nd[i];
|
||||
}
|
||||
pointers[ARRAY_LENGTH(nd)] = NULL;
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
nd[i].next = pointers[i+1];
|
||||
}
|
||||
|
||||
found = mbedtls_asn1_find_named_data((const mbedtls_asn1_named_data *) pointers[from],
|
||||
(const char *) needle->x,
|
||||
needle->len);
|
||||
TEST_ASSERT(found == pointers[position]);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */
|
||||
void free_named_data_null()
|
||||
{
|
||||
mbedtls_asn1_free_named_data(NULL);
|
||||
goto exit; /* Silence unused label warning */
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */
|
||||
void free_named_data(int with_oid, int with_val, int with_next)
|
||||
{
|
||||
mbedtls_asn1_named_data next =
|
||||
{ { 0x06, 0, NULL }, { 0, 0xcafe, NULL }, NULL, 0 };
|
||||
mbedtls_asn1_named_data head =
|
||||
{ { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 };
|
||||
|
||||
if (with_oid) {
|
||||
TEST_CALLOC(head.oid.p, 1);
|
||||
}
|
||||
if (with_val) {
|
||||
TEST_CALLOC(head.val.p, 1);
|
||||
}
|
||||
if (with_next) {
|
||||
head.next = &next;
|
||||
}
|
||||
|
||||
mbedtls_asn1_free_named_data(&head);
|
||||
TEST_ASSERT(head.oid.p == NULL);
|
||||
TEST_ASSERT(head.val.p == NULL);
|
||||
TEST_ASSERT(head.next == NULL);
|
||||
TEST_ASSERT(next.val.len == 0xcafe);
|
||||
|
||||
exit:
|
||||
mbedtls_free(head.oid.p);
|
||||
mbedtls_free(head.val.p);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void free_named_data_list(int length)
|
||||
{
|
||||
mbedtls_asn1_named_data *head = NULL;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < length; i++) {
|
||||
mbedtls_asn1_named_data *new = NULL;
|
||||
TEST_CALLOC(new, 1);
|
||||
new->next = head;
|
||||
head = new;
|
||||
}
|
||||
|
||||
mbedtls_asn1_free_named_data_list(&head);
|
||||
TEST_ASSERT(head == NULL);
|
||||
/* Most of the point of the test is that it doesn't leak memory.
|
||||
* So this test is only really useful under a memory leak detection
|
||||
* framework. */
|
||||
exit:
|
||||
mbedtls_asn1_free_named_data_list(&head);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,233 +1,53 @@
|
||||
ASN.1 Write NULL
|
||||
mbedtls_asn1_write_null:"0500"
|
||||
ASN.1 Write Octet String #0 (Empty string)
|
||||
mbedtls_asn1_write_octet_string:"":"0400":2:2
|
||||
|
||||
ASN.1 Write BOOLEAN FALSE
|
||||
mbedtls_asn1_write_bool:0:"010100"
|
||||
ASN.1 Write Octet String #1 (Large buffer)
|
||||
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":10:5
|
||||
|
||||
ASN.1 Write BOOLEAN TRUE
|
||||
mbedtls_asn1_write_bool:1:"0101ff"
|
||||
ASN.1 Write Octet String #2 (Buffer just fits)
|
||||
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":5:5
|
||||
|
||||
ASN.1 Write int 0
|
||||
mbedtls_asn1_write_int:0:"020100"
|
||||
ASN.1 Write Octet String #3 (Buffer too small for tag)
|
||||
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 1
|
||||
mbedtls_asn1_write_int:1:"020101"
|
||||
ASN.1 Write Octet String #4 (Buffer too small for len)
|
||||
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":3:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 127
|
||||
mbedtls_asn1_write_int:0x7f:"02017f"
|
||||
ASN.1 Write Octet String #5 (Buffer too small for string)
|
||||
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":2:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 128
|
||||
mbedtls_asn1_write_int:0x80:"02020080"
|
||||
ASN.1 Write Octet String #6 (l = 128, large buffer)
|
||||
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"048180000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":140:131
|
||||
|
||||
ASN.1 Write int 255
|
||||
mbedtls_asn1_write_int:0xff:"020200ff"
|
||||
ASN.1 Write Octet String #7 (l = 128, buffer just fits)
|
||||
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"048180000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":131:131
|
||||
|
||||
ASN.1 Write int 256
|
||||
mbedtls_asn1_write_int:0x100:"02020100"
|
||||
ASN.1 Write Octet String #8 (l = 128, buffer too small for tag)
|
||||
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":130:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 32767
|
||||
mbedtls_asn1_write_int:0x7fff:"02027fff"
|
||||
ASN.1 Write Octet String #9 (l = 128, buffer too small for len)
|
||||
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":129:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 32768
|
||||
mbedtls_asn1_write_int:0x8000:"0203008000"
|
||||
ASN.1 Write Octet String #9 (l = 128, buffer too small for string)
|
||||
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":127:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 65535
|
||||
mbedtls_asn1_write_int:0xffff:"020300ffff"
|
||||
ASN.1 Write IA5 String #0 (Empty string)
|
||||
mbedtls_asn1_write_ia5_string:"":"1600":2:2
|
||||
|
||||
ASN.1 Write int 65536
|
||||
mbedtls_asn1_write_int:0x10000:"0203010000"
|
||||
ASN.1 Write IA5 String #1 (Large buffer)
|
||||
mbedtls_asn1_write_ia5_string:"ABC":"1603414243":10:5
|
||||
|
||||
ASN.1 Write int 8388607
|
||||
mbedtls_asn1_write_int:0x7fffff:"02037fffff"
|
||||
ASN.1 Write IA5 String #2 (Buffer just fits)
|
||||
mbedtls_asn1_write_ia5_string:"ABC":"1603414243":5:5
|
||||
|
||||
ASN.1 Write int 8388608
|
||||
mbedtls_asn1_write_int:0x800000:"020400800000"
|
||||
ASN.1 Write IA5 String #3 (Buffer too small for tag)
|
||||
mbedtls_asn1_write_ia5_string:"ABC":"":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 0x12345678
|
||||
mbedtls_asn1_write_int:0x12345678:"020412345678"
|
||||
ASN.1 Write IA5 String #4 (Buffer too small for len)
|
||||
mbedtls_asn1_write_ia5_string:"ABC":"":3:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write int 2147483647
|
||||
mbedtls_asn1_write_int:0x7fffffff:"02047fffffff"
|
||||
|
||||
ASN.1 Write enum 0
|
||||
mbedtls_asn1_write_enum:0:"0A0100"
|
||||
|
||||
ASN.1 Write enum 1
|
||||
mbedtls_asn1_write_enum:1:"0A0101"
|
||||
|
||||
ASN.1 Write enum 127
|
||||
mbedtls_asn1_write_enum:0x7f:"0A017f"
|
||||
|
||||
ASN.1 Write enum 128
|
||||
mbedtls_asn1_write_enum:0x80:"0A020080"
|
||||
|
||||
ASN.1 Write enum 255
|
||||
mbedtls_asn1_write_enum:0xff:"0A0200ff"
|
||||
|
||||
ASN.1 Write enum 256
|
||||
mbedtls_asn1_write_enum:0x100:"0A020100"
|
||||
|
||||
ASN.1 Write enum 32767
|
||||
mbedtls_asn1_write_enum:0x7fff:"0A027fff"
|
||||
|
||||
ASN.1 Write enum 32768
|
||||
mbedtls_asn1_write_enum:0x8000:"0A03008000"
|
||||
|
||||
ASN.1 Write enum 65535
|
||||
mbedtls_asn1_write_enum:0xffff:"0A0300ffff"
|
||||
|
||||
ASN.1 Write enum 65536
|
||||
mbedtls_asn1_write_enum:0x10000:"0A03010000"
|
||||
|
||||
ASN.1 Write enum 8388607
|
||||
mbedtls_asn1_write_enum:0x7fffff:"0A037fffff"
|
||||
|
||||
ASN.1 Write enum 8388608
|
||||
mbedtls_asn1_write_enum:0x800000:"0A0400800000"
|
||||
|
||||
ASN.1 Write enum 0x12345678
|
||||
mbedtls_asn1_write_enum:0x12345678:"0A0412345678"
|
||||
|
||||
ASN.1 Write enum 2147483647
|
||||
mbedtls_asn1_write_enum:0x7fffffff:"0A047fffffff"
|
||||
|
||||
ASN.1 Write mpi 0 (null)
|
||||
mbedtls_asn1_write_mpi:"":"020100"
|
||||
|
||||
ASN.1 Write mpi 0 (1 limb)
|
||||
mbedtls_asn1_write_mpi:"00":"020100"
|
||||
|
||||
ASN.1 Write mpi 1
|
||||
mbedtls_asn1_write_mpi:"01":"020101"
|
||||
|
||||
ASN.1 Write mpi 0x7f
|
||||
mbedtls_asn1_write_mpi:"7f":"02017f"
|
||||
|
||||
ASN.1 Write mpi 0x7f with leading 0 limb
|
||||
mbedtls_asn1_write_mpi:"00000000000000007f":"02017f"
|
||||
|
||||
ASN.1 Write mpi 0x80
|
||||
mbedtls_asn1_write_mpi:"80":"02020080"
|
||||
|
||||
ASN.1 Write mpi 0x80 with leading 0 limb
|
||||
mbedtls_asn1_write_mpi:"000000000000000080":"02020080"
|
||||
|
||||
ASN.1 Write mpi 0xff
|
||||
mbedtls_asn1_write_mpi:"ff":"020200ff"
|
||||
|
||||
ASN.1 Write mpi 0x100
|
||||
mbedtls_asn1_write_mpi:"0100":"02020100"
|
||||
|
||||
ASN.1 Write mpi, 127*8-1 bits
|
||||
mbedtls_asn1_write_mpi:"7f7b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8":"027f7f7b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8"
|
||||
|
||||
ASN.1 Write mpi, 127*8 bits
|
||||
mbedtls_asn1_write_mpi:"e77b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8":"02818000e77b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8"
|
||||
|
||||
ASN.1 Write mpi, 127*8+1 bits
|
||||
mbedtls_asn1_write_mpi:"018446d68934cc1af23c4cd909884d4bd737a1890e12f5ef8bf3d807d72feffa63c0bf2633345f8b8418d144617c871a7a0277ac0150eed4b3db7f9dff21114cd0d7f282400f03c931cb00c367550e374a1ed3762a1801ca714cfc8d5aac69707ca81e0661400ed0014d97cba48f94d835dd681fc3053c51958afbf7583cf49c":"028180018446d68934cc1af23c4cd909884d4bd737a1890e12f5ef8bf3d807d72feffa63c0bf2633345f8b8418d144617c871a7a0277ac0150eed4b3db7f9dff21114cd0d7f282400f03c931cb00c367550e374a1ed3762a1801ca714cfc8d5aac69707ca81e0661400ed0014d97cba48f94d835dd681fc3053c51958afbf7583cf49c"
|
||||
|
||||
ASN.1 Write mpi, 255*8-1 bits
|
||||
mbedtls_asn1_write_mpi:"7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c":"0281ff7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c"
|
||||
|
||||
ASN.1 Write mpi, 255*8 bits
|
||||
mbedtls_asn1_write_mpi:"fbd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c":"0282010000fbd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c"
|
||||
|
||||
ASN.1 Write mpi, 256*8-1 bits
|
||||
mbedtls_asn1_write_mpi:"7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c89":"028201007bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c89"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"":"0400"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"41":"040141"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=2
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"4142":"04024142"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=127
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"99a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"047f99a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=128
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"0199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"0481800199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=255
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"633ed2cb0a2915dc4438a4c063017eb336cd9571d2a0585522c5073ca22a30ca7b8c9bd167d89ba1827bc6fb5d6ef6dcc52ee6eecc47e84ee0dd18fa3ebbdb6edfc679f037160d48d46a0d7e571335b24a28c8fd29b7f4a93d013b74e522bc1f5f605096bb99d438814b77b54d6dde608417b0a0ce9a8cb507fbeb95e9926b4bb6eec725599493d4b156ef3a5fd701426456029111c20f1d03c5d8999d2c042277ef91c5114a6c06218c1ba28d41ef08e4870d0cef260cba9de16d7d11ed5889b88fb93073746ebb158a4246cdb8a4ce403a5d1d598a0d11548f22070f833c1344d15e7a1445c133d19b8295b7c071bf2227178938031249d22d21c6f8e53d":"0481ff633ed2cb0a2915dc4438a4c063017eb336cd9571d2a0585522c5073ca22a30ca7b8c9bd167d89ba1827bc6fb5d6ef6dcc52ee6eecc47e84ee0dd18fa3ebbdb6edfc679f037160d48d46a0d7e571335b24a28c8fd29b7f4a93d013b74e522bc1f5f605096bb99d438814b77b54d6dde608417b0a0ce9a8cb507fbeb95e9926b4bb6eec725599493d4b156ef3a5fd701426456029111c20f1d03c5d8999d2c042277ef91c5114a6c06218c1ba28d41ef08e4870d0cef260cba9de16d7d11ed5889b88fb93073746ebb158a4246cdb8a4ce403a5d1d598a0d11548f22070f833c1344d15e7a1445c133d19b8295b7c071bf2227178938031249d22d21c6f8e53d"
|
||||
|
||||
ASN.1 Write OCTET STRING: length=256
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OCTET_STRING:"5a633ed2cb0a2915dc4438a4c063017eb336cd9571d2a0585522c5073ca22a30ca7b8c9bd167d89ba1827bc6fb5d6ef6dcc52ee6eecc47e84ee0dd18fa3ebbdb6edfc679f037160d48d46a0d7e571335b24a28c8fd29b7f4a93d013b74e522bc1f5f605096bb99d438814b77b54d6dde608417b0a0ce9a8cb507fbeb95e9926b4bb6eec725599493d4b156ef3a5fd701426456029111c20f1d03c5d8999d2c042277ef91c5114a6c06218c1ba28d41ef08e4870d0cef260cba9de16d7d11ed5889b88fb93073746ebb158a4246cdb8a4ce403a5d1d598a0d11548f22070f833c1344d15e7a1445c133d19b8295b7c071bf2227178938031249d22d21c6f8e53d":"048201005a633ed2cb0a2915dc4438a4c063017eb336cd9571d2a0585522c5073ca22a30ca7b8c9bd167d89ba1827bc6fb5d6ef6dcc52ee6eecc47e84ee0dd18fa3ebbdb6edfc679f037160d48d46a0d7e571335b24a28c8fd29b7f4a93d013b74e522bc1f5f605096bb99d438814b77b54d6dde608417b0a0ce9a8cb507fbeb95e9926b4bb6eec725599493d4b156ef3a5fd701426456029111c20f1d03c5d8999d2c042277ef91c5114a6c06218c1ba28d41ef08e4870d0cef260cba9de16d7d11ed5889b88fb93073746ebb158a4246cdb8a4ce403a5d1d598a0d11548f22070f833c1344d15e7a1445c133d19b8295b7c071bf2227178938031249d22d21c6f8e53d"
|
||||
|
||||
ASN.1 Write UTF8 STRING: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_UTF8_STRING:"":"0c00"
|
||||
|
||||
ASN.1 Write UTF8 STRING: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_UTF8_STRING:"41":"0c0141"
|
||||
|
||||
ASN.1 Write UTF8 STRING: length=128
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_UTF8_STRING:"0199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"0c81800199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write PRINTABLE STRING: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_PRINTABLE_STRING:"":"1300"
|
||||
|
||||
ASN.1 Write PRINTABLE STRING: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_PRINTABLE_STRING:"41":"130141"
|
||||
|
||||
ASN.1 Write PRINTABLE STRING: length=128
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_PRINTABLE_STRING:"0199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"1381800199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write IA5 STRING: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING:"":"1600"
|
||||
|
||||
ASN.1 Write IA5 STRING: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING:"41":"160141"
|
||||
|
||||
ASN.1 Write IA5 STRING: length=128
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING:"0199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"1681800199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write tagged string: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING | MBEDTLS_ASN1_CONTEXT_SPECIFIC:"":"9600"
|
||||
|
||||
ASN.1 Write tagged string: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING | MBEDTLS_ASN1_CONTEXT_SPECIFIC:"41":"960141"
|
||||
|
||||
ASN.1 Write tagged string: length=128
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_IA5_STRING | MBEDTLS_ASN1_CONTEXT_SPECIFIC:"0199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38":"9681800199a66790856f7199641f55cadabb660aaed6aa0d9ef8cef4417118c6e8c6e15becbaa21c63faf48726e92357a38b3079a0b9d60be7457ec6552f900dd032577167c91e829927343c3a769b362db4de0ad2ffb8f13cc2eeca9e52dc557118baa88b857477595622bc301a1ae2150030d652c4a482cf88d0ded85d6731ff2d38"
|
||||
|
||||
ASN.1 Write OID: length=0
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OID:"":"0600"
|
||||
|
||||
ASN.1 Write OID: length=1
|
||||
mbedtls_asn1_write_string:MBEDTLS_ASN1_OID:"41":"060141"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, null parameters
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0:"300706034f49440500"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, parameters (8 bytes)
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":8:"300d06034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0x7f
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0x7a:"307f06034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0x80
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0x7b:"30818006034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0xff
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfa:"3081ff06034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0x100
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfb:"3082010006034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0xffff
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfffa:"3082ffff06034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0x10000
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfffb:"308301000006034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0xffffff
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfffffa:"3083ffffff06034f4944"
|
||||
|
||||
ASN.1 Write AlgorithmIdentifier, total length=0x1000000
|
||||
mbedtls_asn1_write_algorithm_identifier:"4f4944":0xfffffb:"30840100000006034f4944"
|
||||
ASN.1 Write IA5 String #5 (Buffer too small for string)
|
||||
mbedtls_asn1_write_ia5_string:"ABC":"":2:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write / Read Length #0 (Len = 0, short form)
|
||||
mbedtls_asn1_write_len:0:"00":1:1
|
||||
@@ -270,126 +90,3 @@ mbedtls_asn1_write_len:16909060:"8401020304":5:5
|
||||
|
||||
ASN.1 Write / Read Length #12 (Len = 16909060, buffer too small)
|
||||
mbedtls_asn1_write_len:16909060:"8401020304":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #0
|
||||
test_asn1_write_bitstrings:"FF":8:"030200FF":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #1
|
||||
test_asn1_write_bitstrings:"FE":8:"030201FE":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #2
|
||||
test_asn1_write_bitstrings:"FC":7:"030202FC":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #3
|
||||
test_asn1_write_bitstrings:"F8":8:"030203F8":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #4
|
||||
test_asn1_write_bitstrings:"F0":6:"030204F0":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #5
|
||||
test_asn1_write_bitstrings:"E0":6:"030205E0":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #6
|
||||
test_asn1_write_bitstrings:"C0":8:"030206C0":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Unused bits #7
|
||||
test_asn1_write_bitstrings:"80":8:"03020780":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Empty bitstring
|
||||
test_asn1_write_bitstrings:"00":7:"030100":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Empty bitstring (bits = 16)
|
||||
test_asn1_write_bitstrings:"0000":16:"030100":1
|
||||
|
||||
ASN.1 Write Named Bitstring / Empty bitstring (bits = 24)
|
||||
test_asn1_write_bitstrings:"FFFFFF":0:"030100":1
|
||||
|
||||
ASN.1 Write Named Bitstring / 15 trailing bits all unset
|
||||
test_asn1_write_bitstrings:"F88000":24:"030307F880":1
|
||||
|
||||
ASN.1 Write Named Bitstring / 15 trailing bits all set
|
||||
test_asn1_write_bitstrings:"F8FFFF":9:"030307F880":1
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #0
|
||||
test_asn1_write_bitstrings:"FF":8:"030200FF":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #1
|
||||
test_asn1_write_bitstrings:"FF":7:"030201FE":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #2
|
||||
test_asn1_write_bitstrings:"FF":6:"030202FC":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #3
|
||||
test_asn1_write_bitstrings:"FF":5:"030203F8":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #4
|
||||
test_asn1_write_bitstrings:"FF":4:"030204F0":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #5
|
||||
test_asn1_write_bitstrings:"FF":3:"030205E0":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #6
|
||||
test_asn1_write_bitstrings:"FF":2:"030206C0":0
|
||||
|
||||
ASN.1 Write Bitstring / Unused bits #7
|
||||
test_asn1_write_bitstrings:"FF":1:"03020780":0
|
||||
|
||||
ASN.1 Write Bitstring / 1 trailing bit (bits 15)
|
||||
test_asn1_write_bitstrings:"0003":15:"0303010002":0
|
||||
|
||||
ASN.1 Write Bitstring / 0 bits
|
||||
test_asn1_write_bitstrings:"":0:"030100":0
|
||||
|
||||
ASN.1 Write Bitstring / long string all bits unset except trailing bits
|
||||
test_asn1_write_bitstrings:"000000000007":45:"030703000000000000":0
|
||||
|
||||
Store named data: not found
|
||||
store_named_data_find:"414141":"424242":"434343":"444444":"7f7f7f":0:-1
|
||||
|
||||
Store named data: empty haystack
|
||||
store_named_data_find:"414141":"424242":"434343":"444444":"7f7f7f":4:-1
|
||||
|
||||
Store named data: first
|
||||
store_named_data_find:"414141":"424242":"434343":"444444":"414141":0:0
|
||||
|
||||
Store named data: last
|
||||
store_named_data_find:"414141":"424242":"434343":"444444":"444444":0:3
|
||||
|
||||
Store named data: skip suffix
|
||||
store_named_data_find:"41414141":"414141":"434343":"444444":"414141":0:1
|
||||
|
||||
Store named data: skip prefix
|
||||
store_named_data_find:"4141":"414141":"434343":"444444":"414141":0:1
|
||||
|
||||
Store named data: first match
|
||||
store_named_data_find:"414141":"414141":"434343":"444444":"414141":0:0
|
||||
|
||||
Store named data: found, null to zero
|
||||
store_named_data_val_found:0:0
|
||||
|
||||
Store named data: found, null to data
|
||||
store_named_data_val_found:0:9
|
||||
|
||||
Store named data: found, data to zero
|
||||
store_named_data_val_found:9:0
|
||||
|
||||
Store named data: found, smaller data
|
||||
store_named_data_val_found:9:2
|
||||
|
||||
Store named data: found, same-size data
|
||||
store_named_data_val_found:9:9
|
||||
|
||||
Store named data: found, larger data
|
||||
store_named_data_val_found:4:9
|
||||
|
||||
Store named data: new, val_len=0
|
||||
store_named_data_val_new:0:1
|
||||
|
||||
Stored named data: new, val_len=0, val=NULL
|
||||
store_named_data_val_new:0:0
|
||||
|
||||
Store named data: new, val_len=4
|
||||
store_named_data_val_new:4:1
|
||||
|
||||
Store named data: new, val_len=4, val=NULL
|
||||
store_named_data_val_new:4:0
|
||||
|
||||
@@ -3,49 +3,6 @@
|
||||
|
||||
#define GUARD_LEN 4
|
||||
#define GUARD_VAL 0x2a
|
||||
|
||||
typedef struct {
|
||||
unsigned char *output;
|
||||
unsigned char *start;
|
||||
unsigned char *end;
|
||||
unsigned char *p;
|
||||
size_t size;
|
||||
} generic_write_data_t;
|
||||
|
||||
int generic_write_start_step(generic_write_data_t *data)
|
||||
{
|
||||
mbedtls_test_set_step(data->size);
|
||||
mbedtls_free(data->output);
|
||||
data->output = NULL;
|
||||
TEST_CALLOC(data->output, data->size == 0 ? 1 : data->size);
|
||||
data->end = data->output + data->size;
|
||||
data->p = data->end;
|
||||
data->start = data->end - data->size;
|
||||
return 1;
|
||||
exit:
|
||||
return 0;
|
||||
}
|
||||
|
||||
int generic_write_finish_step(generic_write_data_t *data,
|
||||
const data_t *expected, int ret)
|
||||
{
|
||||
int ok = 0;
|
||||
|
||||
if (data->size < expected->len) {
|
||||
TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_BUF_TOO_SMALL);
|
||||
} else {
|
||||
TEST_EQUAL(ret, data->end - data->p);
|
||||
TEST_ASSERT(data->p >= data->start);
|
||||
TEST_ASSERT(data->p <= data->end);
|
||||
TEST_MEMORY_COMPARE(data->p, (size_t) (data->end - data->p),
|
||||
expected->x, expected->len);
|
||||
}
|
||||
ok = 1;
|
||||
|
||||
exit:
|
||||
return ok;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -54,294 +11,76 @@ exit:
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_null(data_t *expected)
|
||||
void mbedtls_asn1_write_octet_string( data_t * str, data_t * asn1,
|
||||
int buf_len, int result )
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
unsigned char buf[150];
|
||||
size_t i;
|
||||
unsigned char *p;
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_null(&data.p, data.start);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
/* There's no parsing function for NULL. */
|
||||
memset( buf, GUARD_VAL, sizeof( buf ) );
|
||||
|
||||
|
||||
p = buf + GUARD_LEN + buf_len;
|
||||
|
||||
ret = mbedtls_asn1_write_octet_string( &p, buf + GUARD_LEN, str->x, str->len );
|
||||
|
||||
/* Check for buffer overwrite on both sides */
|
||||
for( i = 0; i < GUARD_LEN; i++ )
|
||||
{
|
||||
TEST_ASSERT( buf[i] == GUARD_VAL );
|
||||
TEST_ASSERT( buf[GUARD_LEN + buf_len + i] == GUARD_VAL );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
if( result >= 0 )
|
||||
{
|
||||
TEST_ASSERT( (size_t) ret == asn1->len );
|
||||
TEST_ASSERT( p + asn1->len == buf + GUARD_LEN + buf_len );
|
||||
|
||||
TEST_ASSERT( memcmp( p, asn1->x, asn1->len ) == 0 );
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_bool(int val, data_t *expected)
|
||||
void mbedtls_asn1_write_ia5_string( char * str, data_t * asn1,
|
||||
int buf_len, int result )
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
unsigned char buf[150];
|
||||
size_t str_len;
|
||||
size_t i;
|
||||
unsigned char *p;
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_bool(&data.p, data.start, val);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
if (ret >= 0) {
|
||||
int read = 0xdeadbeef;
|
||||
TEST_EQUAL(mbedtls_asn1_get_bool(&data.p, data.end, &read), 0);
|
||||
TEST_EQUAL(val, read);
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
memset( buf, GUARD_VAL, sizeof( buf ) );
|
||||
|
||||
str_len = strlen( str );
|
||||
|
||||
p = buf + GUARD_LEN + buf_len;
|
||||
|
||||
ret = mbedtls_asn1_write_ia5_string( &p, buf + GUARD_LEN, str, str_len );
|
||||
|
||||
/* Check for buffer overwrite on both sides */
|
||||
for( i = 0; i < GUARD_LEN; i++ )
|
||||
{
|
||||
TEST_ASSERT( buf[i] == GUARD_VAL );
|
||||
TEST_ASSERT( buf[GUARD_LEN + buf_len + i] == GUARD_VAL );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
}
|
||||
/* END_CASE */
|
||||
if( result >= 0 )
|
||||
{
|
||||
TEST_ASSERT( (size_t) ret == asn1->len );
|
||||
TEST_ASSERT( p + asn1->len == buf + GUARD_LEN + buf_len );
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_int(int val, data_t *expected)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_int(&data.p, data.start, val);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
if (ret >= 0) {
|
||||
int read = 0xdeadbeef;
|
||||
TEST_EQUAL(mbedtls_asn1_get_int(&data.p, data.end, &read), 0);
|
||||
TEST_EQUAL(val, read);
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
TEST_ASSERT( memcmp( p, asn1->x, asn1->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_enum(int val, data_t *expected)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_enum(&data.p, data.start, val);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
if (ret >= 0) {
|
||||
int read = 0xdeadbeef;
|
||||
TEST_EQUAL(mbedtls_asn1_get_enum(&data.p, data.end, &read), 0);
|
||||
TEST_EQUAL(val, read);
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */
|
||||
void mbedtls_asn1_write_mpi(data_t *val, data_t *expected)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
mbedtls_mpi mpi, read;
|
||||
int ret;
|
||||
|
||||
mbedtls_mpi_init(&mpi);
|
||||
mbedtls_mpi_init(&read);
|
||||
TEST_ASSERT(mbedtls_mpi_read_binary(&mpi, val->x, val->len) == 0);
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_mpi(&data.p, data.start, &mpi);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
if (ret >= 0) {
|
||||
TEST_EQUAL(mbedtls_asn1_get_mpi(&data.p, data.end, &read), 0);
|
||||
TEST_EQUAL(0, mbedtls_mpi_cmp_mpi(&mpi, &read));
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
/* Skip some intermediate lengths, they're boring. */
|
||||
if (expected->len > 10 && data.size == 8) {
|
||||
data.size = expected->len - 2;
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&mpi);
|
||||
mbedtls_mpi_free(&read);
|
||||
mbedtls_free(data.output);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_string(int tag, data_t *content, data_t *expected)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
switch (tag) {
|
||||
case MBEDTLS_ASN1_OCTET_STRING:
|
||||
ret = mbedtls_asn1_write_octet_string(
|
||||
&data.p, data.start, content->x, content->len);
|
||||
break;
|
||||
case MBEDTLS_ASN1_OID:
|
||||
ret = mbedtls_asn1_write_oid(
|
||||
&data.p, data.start,
|
||||
(const char *) content->x, content->len);
|
||||
break;
|
||||
case MBEDTLS_ASN1_UTF8_STRING:
|
||||
ret = mbedtls_asn1_write_utf8_string(
|
||||
&data.p, data.start,
|
||||
(const char *) content->x, content->len);
|
||||
break;
|
||||
case MBEDTLS_ASN1_PRINTABLE_STRING:
|
||||
ret = mbedtls_asn1_write_printable_string(
|
||||
&data.p, data.start,
|
||||
(const char *) content->x, content->len);
|
||||
break;
|
||||
case MBEDTLS_ASN1_IA5_STRING:
|
||||
ret = mbedtls_asn1_write_ia5_string(
|
||||
&data.p, data.start,
|
||||
(const char *) content->x, content->len);
|
||||
break;
|
||||
default:
|
||||
ret = mbedtls_asn1_write_tagged_string(
|
||||
&data.p, data.start, tag,
|
||||
(const char *) content->x, content->len);
|
||||
}
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
/* There's no parsing function for octet or character strings. */
|
||||
/* Skip some intermediate lengths, they're boring. */
|
||||
if (expected->len > 10 && data.size == 8) {
|
||||
data.size = expected->len - 2;
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_asn1_write_algorithm_identifier(data_t *oid,
|
||||
int par_len,
|
||||
data_t *expected)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
unsigned char *buf_complete = NULL;
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = mbedtls_asn1_write_algorithm_identifier(
|
||||
&data.p, data.start,
|
||||
(const char *) oid->x, oid->len, par_len);
|
||||
/* If params_len != 0, mbedtls_asn1_write_algorithm_identifier()
|
||||
* assumes that the parameters are already present in the buffer
|
||||
* and returns a length that accounts for this, but our test
|
||||
* data omits the parameters. */
|
||||
if (ret >= 0) {
|
||||
ret -= par_len;
|
||||
}
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
/* Only do a parse-back test if the parameters aren't too large for
|
||||
* a small-heap environment. The boundary is somewhat arbitrary. */
|
||||
if (ret >= 0 && par_len <= 1234) {
|
||||
mbedtls_asn1_buf alg = { 0, 0, NULL };
|
||||
mbedtls_asn1_buf params = { 0, 0, NULL };
|
||||
/* The writing function doesn't write the parameters unless
|
||||
* they're null: it only takes their length as input. But the
|
||||
* parsing function requires the parameters to be present.
|
||||
* Thus make up parameters. */
|
||||
size_t data_len = data.end - data.p;
|
||||
size_t len_complete = data_len + par_len;
|
||||
unsigned char expected_params_tag;
|
||||
size_t expected_params_len;
|
||||
TEST_CALLOC(buf_complete, len_complete);
|
||||
unsigned char *end_complete = buf_complete + len_complete;
|
||||
memcpy(buf_complete, data.p, data_len);
|
||||
if (par_len == 0) {
|
||||
/* mbedtls_asn1_write_algorithm_identifier() wrote a NULL */
|
||||
expected_params_tag = 0x05;
|
||||
expected_params_len = 0;
|
||||
} else if (par_len >= 2 && par_len < 2 + 128) {
|
||||
/* Write an OCTET STRING with a short length encoding */
|
||||
expected_params_tag = buf_complete[data_len] = 0x04;
|
||||
expected_params_len = par_len - 2;
|
||||
buf_complete[data_len + 1] = (unsigned char) expected_params_len;
|
||||
} else if (par_len >= 4 + 128 && par_len < 3 + 256 * 256) {
|
||||
/* Write an OCTET STRING with a two-byte length encoding */
|
||||
expected_params_tag = buf_complete[data_len] = 0x04;
|
||||
expected_params_len = par_len - 4;
|
||||
buf_complete[data_len + 1] = 0x82;
|
||||
buf_complete[data_len + 2] = (unsigned char) (expected_params_len >> 8);
|
||||
buf_complete[data_len + 3] = (unsigned char) (expected_params_len);
|
||||
} else {
|
||||
TEST_FAIL("Bad test data: invalid length of ASN.1 element");
|
||||
}
|
||||
unsigned char *p = buf_complete;
|
||||
TEST_EQUAL(mbedtls_asn1_get_alg(&p, end_complete,
|
||||
&alg, ¶ms), 0);
|
||||
TEST_EQUAL(alg.tag, MBEDTLS_ASN1_OID);
|
||||
TEST_MEMORY_COMPARE(alg.p, alg.len, oid->x, oid->len);
|
||||
TEST_EQUAL(params.tag, expected_params_tag);
|
||||
TEST_EQUAL(params.len, expected_params_len);
|
||||
mbedtls_free(buf_complete);
|
||||
buf_complete = NULL;
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
mbedtls_free(buf_complete);
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
|
||||
void mbedtls_asn1_write_len(int len, data_t *asn1, int buf_len,
|
||||
int result)
|
||||
void mbedtls_asn1_write_len( int len, data_t * asn1, int buf_len,
|
||||
int result )
|
||||
{
|
||||
int ret;
|
||||
unsigned char buf[150];
|
||||
@@ -349,253 +88,43 @@ void mbedtls_asn1_write_len(int len, data_t *asn1, int buf_len,
|
||||
size_t i;
|
||||
size_t read_len;
|
||||
|
||||
memset(buf, GUARD_VAL, sizeof(buf));
|
||||
memset( buf, GUARD_VAL, sizeof( buf ) );
|
||||
|
||||
p = buf + GUARD_LEN + buf_len;
|
||||
|
||||
ret = mbedtls_asn1_write_len(&p, buf + GUARD_LEN, (size_t) len);
|
||||
ret = mbedtls_asn1_write_len( &p, buf + GUARD_LEN, (size_t) len );
|
||||
|
||||
TEST_ASSERT(ret == result);
|
||||
TEST_ASSERT( ret == result );
|
||||
|
||||
/* Check for buffer overwrite on both sides */
|
||||
for (i = 0; i < GUARD_LEN; i++) {
|
||||
TEST_ASSERT(buf[i] == GUARD_VAL);
|
||||
TEST_ASSERT(buf[GUARD_LEN + buf_len + i] == GUARD_VAL);
|
||||
for( i = 0; i < GUARD_LEN; i++ )
|
||||
{
|
||||
TEST_ASSERT( buf[i] == GUARD_VAL );
|
||||
TEST_ASSERT( buf[GUARD_LEN + buf_len + i] == GUARD_VAL );
|
||||
}
|
||||
|
||||
if (result >= 0) {
|
||||
TEST_ASSERT(p + asn1->len == buf + GUARD_LEN + buf_len);
|
||||
if( result >= 0 )
|
||||
{
|
||||
TEST_ASSERT( p + asn1->len == buf + GUARD_LEN + buf_len );
|
||||
|
||||
TEST_ASSERT(memcmp(p, asn1->x, asn1->len) == 0);
|
||||
TEST_ASSERT( memcmp( p, asn1->x, asn1->len ) == 0 );
|
||||
|
||||
/* Read back with mbedtls_asn1_get_len() to check */
|
||||
ret = mbedtls_asn1_get_len(&p, buf + GUARD_LEN + buf_len, &read_len);
|
||||
ret = mbedtls_asn1_get_len( &p, buf + GUARD_LEN + buf_len, &read_len );
|
||||
|
||||
if (len == 0) {
|
||||
TEST_ASSERT(ret == 0);
|
||||
} else {
|
||||
if( len == 0 )
|
||||
{
|
||||
TEST_ASSERT( ret == 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Return will be MBEDTLS_ERR_ASN1_OUT_OF_DATA because the rest of
|
||||
* the buffer is missing
|
||||
*/
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_ASN1_OUT_OF_DATA);
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_ASN1_OUT_OF_DATA );
|
||||
}
|
||||
TEST_ASSERT(read_len == (size_t) len);
|
||||
TEST_ASSERT(p == buf + GUARD_LEN + buf_len);
|
||||
TEST_ASSERT( read_len == (size_t) len );
|
||||
TEST_ASSERT( p == buf + GUARD_LEN + buf_len );
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_asn1_write_bitstrings(data_t *bitstring, int bits,
|
||||
data_t *expected, int is_named)
|
||||
{
|
||||
generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 };
|
||||
int ret;
|
||||
int (*func)(unsigned char **p, const unsigned char *start,
|
||||
const unsigned char *buf, size_t bits) =
|
||||
(is_named ? mbedtls_asn1_write_named_bitstring :
|
||||
mbedtls_asn1_write_bitstring);
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
unsigned char *masked_bitstring = NULL;
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
|
||||
/* The API expects `bitstring->x` to contain `bits` bits. */
|
||||
size_t byte_length = (bits + 7) / 8;
|
||||
TEST_ASSERT(bitstring->len >= byte_length);
|
||||
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
TEST_CALLOC(masked_bitstring, byte_length);
|
||||
if (byte_length != 0) {
|
||||
memcpy(masked_bitstring, bitstring->x, byte_length);
|
||||
if (bits % 8 != 0) {
|
||||
masked_bitstring[byte_length - 1] &= ~(0xff >> (bits % 8));
|
||||
}
|
||||
}
|
||||
size_t value_bits = bits;
|
||||
if (is_named) {
|
||||
/* In a named bit string, all trailing 0 bits are removed. */
|
||||
while (byte_length > 0 && masked_bitstring[byte_length - 1] == 0) {
|
||||
--byte_length;
|
||||
}
|
||||
value_bits = 8 * byte_length;
|
||||
if (byte_length > 0) {
|
||||
unsigned char last_byte = masked_bitstring[byte_length - 1];
|
||||
for (unsigned b = 1; b < 0xff && (last_byte & b) == 0; b <<= 1) {
|
||||
--value_bits;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
|
||||
for (data.size = 0; data.size <= expected->len + 1; data.size++) {
|
||||
if (!generic_write_start_step(&data)) {
|
||||
goto exit;
|
||||
}
|
||||
ret = (*func)(&data.p, data.start, bitstring->x, bits);
|
||||
if (!generic_write_finish_step(&data, expected, ret)) {
|
||||
goto exit;
|
||||
}
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
if (ret >= 0) {
|
||||
mbedtls_asn1_bitstring read = { 0, 0, NULL };
|
||||
TEST_EQUAL(mbedtls_asn1_get_bitstring(&data.p, data.end,
|
||||
&read), 0);
|
||||
TEST_MEMORY_COMPARE(read.p, read.len,
|
||||
masked_bitstring, byte_length);
|
||||
TEST_EQUAL(read.unused_bits, 8 * byte_length - value_bits);
|
||||
}
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(data.output);
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
mbedtls_free(masked_bitstring);
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void store_named_data_find(data_t *oid0, data_t *oid1,
|
||||
data_t *oid2, data_t *oid3,
|
||||
data_t *needle, int from, int position)
|
||||
{
|
||||
data_t *oid[4] = { oid0, oid1, oid2, oid3 };
|
||||
mbedtls_asn1_named_data nd[] = {
|
||||
{ { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 },
|
||||
{ { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 },
|
||||
};
|
||||
mbedtls_asn1_named_data *pointers[ARRAY_LENGTH(nd) + 1];
|
||||
size_t i;
|
||||
mbedtls_asn1_named_data *head = NULL;
|
||||
mbedtls_asn1_named_data *found = NULL;
|
||||
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
pointers[i] = &nd[i];
|
||||
}
|
||||
pointers[ARRAY_LENGTH(nd)] = NULL;
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
TEST_CALLOC(nd[i].oid.p, oid[i]->len);
|
||||
memcpy(nd[i].oid.p, oid[i]->x, oid[i]->len);
|
||||
nd[i].oid.len = oid[i]->len;
|
||||
nd[i].next = pointers[i+1];
|
||||
}
|
||||
|
||||
head = pointers[from];
|
||||
found = mbedtls_asn1_store_named_data(&head,
|
||||
(const char *) needle->x,
|
||||
needle->len,
|
||||
NULL, 0);
|
||||
|
||||
/* In any case, the existing list structure must be unchanged. */
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
TEST_ASSERT(nd[i].next == pointers[i+1]);
|
||||
}
|
||||
|
||||
if (position >= 0) {
|
||||
/* position should have been found and modified. */
|
||||
TEST_ASSERT(head == pointers[from]);
|
||||
TEST_ASSERT(found == pointers[position]);
|
||||
} else {
|
||||
/* A new entry should have been created. */
|
||||
TEST_ASSERT(found == head);
|
||||
TEST_ASSERT(head->next == pointers[from]);
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
TEST_ASSERT(found != &nd[i]);
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
if (found != NULL && found == head && found != pointers[from]) {
|
||||
mbedtls_free(found->oid.p);
|
||||
mbedtls_free(found);
|
||||
}
|
||||
for (i = 0; i < ARRAY_LENGTH(nd); i++) {
|
||||
mbedtls_free(nd[i].oid.p);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void store_named_data_val_found(int old_len, int new_len)
|
||||
{
|
||||
mbedtls_asn1_named_data nd =
|
||||
{ { 0x06, 3, (unsigned char *) "OID" }, { 0, 0, NULL }, NULL, 0 };
|
||||
mbedtls_asn1_named_data *head = &nd;
|
||||
mbedtls_asn1_named_data *found = NULL;
|
||||
unsigned char *old_val = NULL;
|
||||
unsigned char *new_val = (unsigned char *) "new value";
|
||||
|
||||
if (old_len != 0) {
|
||||
TEST_CALLOC(nd.val.p, (size_t) old_len);
|
||||
old_val = nd.val.p;
|
||||
nd.val.len = old_len;
|
||||
memset(old_val, 'x', old_len);
|
||||
}
|
||||
if (new_len <= 0) {
|
||||
new_len = -new_len;
|
||||
new_val = NULL;
|
||||
}
|
||||
|
||||
found = mbedtls_asn1_store_named_data(&head, "OID", 3,
|
||||
new_val, new_len);
|
||||
TEST_ASSERT(head == &nd);
|
||||
TEST_ASSERT(found == head);
|
||||
|
||||
if (new_val != NULL) {
|
||||
TEST_MEMORY_COMPARE(found->val.p, found->val.len,
|
||||
new_val, (size_t) new_len);
|
||||
}
|
||||
if (new_len == 0) {
|
||||
TEST_ASSERT(found->val.p == NULL);
|
||||
} else if (new_len == old_len) {
|
||||
TEST_ASSERT(found->val.p == old_val);
|
||||
} else {
|
||||
TEST_ASSERT(found->val.p != old_val);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(nd.val.p);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void store_named_data_val_new(int new_len, int set_new_val)
|
||||
{
|
||||
mbedtls_asn1_named_data *head = NULL;
|
||||
mbedtls_asn1_named_data *found = NULL;
|
||||
const unsigned char *oid = (unsigned char *) "OID";
|
||||
size_t oid_len = strlen((const char *) oid);
|
||||
const unsigned char *new_val = (unsigned char *) "new value";
|
||||
|
||||
if (set_new_val == 0) {
|
||||
new_val = NULL;
|
||||
}
|
||||
|
||||
found = mbedtls_asn1_store_named_data(&head,
|
||||
(const char *) oid, oid_len,
|
||||
new_val, (size_t) new_len);
|
||||
TEST_ASSERT(found != NULL);
|
||||
TEST_ASSERT(found == head);
|
||||
TEST_ASSERT(found->oid.p != oid);
|
||||
TEST_MEMORY_COMPARE(found->oid.p, found->oid.len, oid, oid_len);
|
||||
if (new_len == 0) {
|
||||
TEST_ASSERT(found->val.p == NULL);
|
||||
} else if (new_val == NULL) {
|
||||
TEST_ASSERT(found->val.p != NULL);
|
||||
} else {
|
||||
TEST_ASSERT(found->val.p != new_val);
|
||||
TEST_MEMORY_COMPARE(found->val.p, found->val.len,
|
||||
new_val, (size_t) new_len);
|
||||
}
|
||||
|
||||
exit:
|
||||
if (found != NULL) {
|
||||
mbedtls_free(found->oid.p);
|
||||
mbedtls_free(found->val.p);
|
||||
}
|
||||
mbedtls_free(found);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
enc_char (all digits)
|
||||
enc_chars:
|
||||
|
||||
dec_value (all characters)
|
||||
dec_chars:
|
||||
|
||||
Test case mbedtls_base64_encode #1 buffer just right
|
||||
mbedtls_base64_encode:"":"":0:0
|
||||
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/base64.h"
|
||||
#include "base64_internal.h"
|
||||
#include "constant_time_internal.h"
|
||||
#include <test/constant_flow.h>
|
||||
|
||||
#if defined(MBEDTLS_TEST_HOOKS)
|
||||
static const char base64_digits[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
#endif /* MBEDTLS_TEST_HOOKS */
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -16,47 +7,9 @@ static const char base64_digits[] =
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */
|
||||
void enc_chars()
|
||||
{
|
||||
for (unsigned value = 0; value < 64; value++) {
|
||||
mbedtls_test_set_step(value);
|
||||
TEST_CF_SECRET(&value, sizeof(value));
|
||||
unsigned char digit = mbedtls_ct_base64_enc_char(value);
|
||||
TEST_CF_PUBLIC(&value, sizeof(value));
|
||||
TEST_CF_PUBLIC(&digit, sizeof(digit));
|
||||
TEST_EQUAL(digit, base64_digits[value]);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */
|
||||
void dec_chars()
|
||||
{
|
||||
char *p;
|
||||
signed char expected;
|
||||
|
||||
for (unsigned c = 0; c <= 0xff; c++) {
|
||||
mbedtls_test_set_step(c);
|
||||
/* base64_digits is 0-terminated. sizeof()-1 excludes the trailing 0. */
|
||||
p = memchr(base64_digits, c, sizeof(base64_digits) - 1);
|
||||
if (p == NULL) {
|
||||
expected = -1;
|
||||
} else {
|
||||
expected = p - base64_digits;
|
||||
}
|
||||
TEST_CF_SECRET(&c, sizeof(c));
|
||||
signed char actual = mbedtls_ct_base64_dec_value(c);
|
||||
TEST_CF_PUBLIC(&c, sizeof(c));
|
||||
TEST_CF_PUBLIC(&actual, sizeof(actual));
|
||||
TEST_EQUAL(actual, expected);
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_base64_encode(char *src_string, char *dst_string,
|
||||
int dst_buf_size, int result)
|
||||
void mbedtls_base64_encode( char * src_string, char * dst_string,
|
||||
int dst_buf_size, int result )
|
||||
{
|
||||
unsigned char src_str[1000];
|
||||
unsigned char dst_str[1000];
|
||||
@@ -65,25 +18,26 @@ void mbedtls_base64_encode(char *src_string, char *dst_string,
|
||||
memset(src_str, 0x00, 1000);
|
||||
memset(dst_str, 0x00, 1000);
|
||||
|
||||
strncpy((char *) src_str, src_string, sizeof(src_str) - 1);
|
||||
src_len = strlen((char *) src_str);
|
||||
strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 );
|
||||
src_len = strlen( (char *) src_str );
|
||||
|
||||
TEST_CF_SECRET(src_str, sizeof(src_str));
|
||||
TEST_ASSERT(mbedtls_base64_encode(dst_str, dst_buf_size, &len, src_str, src_len) == result);
|
||||
TEST_CF_PUBLIC(src_str, sizeof(src_str));
|
||||
TEST_CF_SECRET( src_str, sizeof( src_str ) );
|
||||
TEST_ASSERT( mbedtls_base64_encode( dst_str, dst_buf_size, &len, src_str, src_len) == result );
|
||||
TEST_CF_PUBLIC( src_str, sizeof( src_str ) );
|
||||
|
||||
/* dest_str will have had tainted data copied to it, prevent the TEST_ASSERT below from triggering
|
||||
CF failures by unmarking it. */
|
||||
TEST_CF_PUBLIC(dst_str, len);
|
||||
TEST_CF_PUBLIC( dst_str, len );
|
||||
|
||||
if (result == 0) {
|
||||
TEST_ASSERT(strcmp((char *) dst_str, dst_string) == 0);
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 );
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_base64_decode(char *src_string, char *dst_string, int result)
|
||||
void mbedtls_base64_decode( char * src_string, char * dst_string, int result )
|
||||
{
|
||||
unsigned char src_str[1000];
|
||||
unsigned char dst_str[1000];
|
||||
@@ -93,73 +47,77 @@ void mbedtls_base64_decode(char *src_string, char *dst_string, int result)
|
||||
memset(src_str, 0x00, 1000);
|
||||
memset(dst_str, 0x00, 1000);
|
||||
|
||||
strncpy((char *) src_str, src_string, sizeof(src_str) - 1);
|
||||
res = mbedtls_base64_decode(dst_str, sizeof(dst_str), &len, src_str, strlen((char *) src_str));
|
||||
TEST_ASSERT(res == result);
|
||||
if (result == 0) {
|
||||
TEST_ASSERT(strcmp((char *) dst_str, dst_string) == 0);
|
||||
strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 );
|
||||
res = mbedtls_base64_decode( dst_str, sizeof( dst_str ), &len, src_str, strlen( (char *) src_str ) );
|
||||
TEST_ASSERT( res == result );
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 );
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void base64_encode_hex(data_t *src, char *dst, int dst_buf_size,
|
||||
int result)
|
||||
void base64_encode_hex( data_t * src, char * dst, int dst_buf_size,
|
||||
int result )
|
||||
{
|
||||
unsigned char *res = NULL;
|
||||
size_t len;
|
||||
|
||||
res = mbedtls_test_zero_alloc(dst_buf_size);
|
||||
res = zero_alloc( dst_buf_size );
|
||||
|
||||
TEST_CF_SECRET(src->x, src->len);
|
||||
TEST_ASSERT(mbedtls_base64_encode(res, dst_buf_size, &len, src->x, src->len) == result);
|
||||
TEST_CF_PUBLIC(src->x, src->len);
|
||||
TEST_CF_SECRET( src->x, src->len );
|
||||
TEST_ASSERT( mbedtls_base64_encode( res, dst_buf_size, &len, src->x, src->len ) == result );
|
||||
TEST_CF_PUBLIC( src->x, src->len );
|
||||
|
||||
/* res will have had tainted data copied to it, prevent the TEST_ASSERT below from triggering
|
||||
CF failures by unmarking it. */
|
||||
TEST_CF_PUBLIC(res, len);
|
||||
TEST_CF_PUBLIC( res, len );
|
||||
|
||||
if (result == 0) {
|
||||
TEST_ASSERT(len == strlen(dst));
|
||||
TEST_ASSERT(memcmp(dst, res, len) == 0);
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( len == strlen( dst ) );
|
||||
TEST_ASSERT( memcmp( dst, res, len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(res);
|
||||
mbedtls_free( res );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void base64_decode_hex(char *src, data_t *dst, int dst_buf_size,
|
||||
int result)
|
||||
void base64_decode_hex( char * src, data_t * dst, int dst_buf_size,
|
||||
int result )
|
||||
{
|
||||
unsigned char *res = NULL;
|
||||
size_t len;
|
||||
|
||||
res = mbedtls_test_zero_alloc(dst_buf_size);
|
||||
res = zero_alloc( dst_buf_size );
|
||||
|
||||
TEST_ASSERT(mbedtls_base64_decode(res, dst_buf_size, &len, (unsigned char *) src,
|
||||
strlen(src)) == result);
|
||||
if (result == 0) {
|
||||
TEST_ASSERT(len == dst->len);
|
||||
TEST_ASSERT(memcmp(dst->x, res, len) == 0);
|
||||
TEST_ASSERT( mbedtls_base64_decode( res, dst_buf_size, &len, (unsigned char *) src,
|
||||
strlen( src ) ) == result );
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( len == dst->len );
|
||||
TEST_ASSERT( memcmp( dst->x, res, len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(res);
|
||||
mbedtls_free( res );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void base64_decode_hex_src(data_t *src, char *dst_ref, int result)
|
||||
void base64_decode_hex_src( data_t * src, char * dst_ref, int result )
|
||||
{
|
||||
unsigned char dst[1000] = { 0 };
|
||||
size_t len;
|
||||
|
||||
TEST_ASSERT(mbedtls_base64_decode(dst, sizeof(dst), &len, src->x, src->len) == result);
|
||||
if (result == 0) {
|
||||
TEST_ASSERT(len == strlen(dst_ref));
|
||||
TEST_ASSERT(memcmp(dst, dst_ref, len) == 0);
|
||||
TEST_ASSERT( mbedtls_base64_decode( dst, sizeof( dst ), &len, src->x, src->len ) == result );
|
||||
if( result == 0 )
|
||||
{
|
||||
TEST_ASSERT( len == strlen( dst_ref ) );
|
||||
TEST_ASSERT( memcmp( dst, dst_ref, len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
@@ -168,8 +126,8 @@ exit:
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void base64_selftest()
|
||||
void base64_selftest( )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_base64_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_base64_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,525 +0,0 @@
|
||||
Test mbedtls_mpi_core_io functions with null pointers
|
||||
mpi_core_io_null
|
||||
|
||||
Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes)
|
||||
mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes)
|
||||
mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes)
|
||||
mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes)
|
||||
mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #11 (Zero)
|
||||
mpi_core_io_be:"00":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #12 (Zero, empty output)
|
||||
mpi_core_io_be:"00":0:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #13 (Zero, empty input)
|
||||
mpi_core_io_be:"":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #14 (One)
|
||||
mpi_core_io_be:"01":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit)
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_core_io_be:"ff000000":4:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit)
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_core_io_be:"ff00000000000000":8:2:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned)
|
||||
mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs)
|
||||
mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes)
|
||||
mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes)
|
||||
mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes)
|
||||
mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes)
|
||||
mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #11 (Zero)
|
||||
mpi_core_io_le:"00":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #12 (Zero, empty output)
|
||||
mpi_core_io_le:"00":0:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #13 (Zero, empty input)
|
||||
mpi_core_io_le:"":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #14 (One)
|
||||
mpi_core_io_le:"01":1:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #15 (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_core_io_le:"000000ff":4:1:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #16 (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_core_io_le:"00000000000000ff":8:2:0:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned)
|
||||
mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs)
|
||||
mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 764-bit
|
||||
mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x18
|
||||
mpi_core_bitlen:"18":5
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s)
|
||||
mpi_core_bitlen:"00000000000000018":5
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x18 << 64
|
||||
mpi_core_bitlen:"180000000000000000":69
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x01
|
||||
mpi_core_bitlen:"1":1
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x0f
|
||||
mpi_core_bitlen:"f":4
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x10
|
||||
mpi_core_bitlen:"10":5
|
||||
|
||||
Test mbedtls_mpi_core_bitlen 0x0a
|
||||
mpi_core_bitlen:"a":4
|
||||
|
||||
Test mbedtls_mpi_core_bitlen: 0 (1 limb)
|
||||
mpi_core_bitlen:"0":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x=y (1 limb)
|
||||
mpi_core_lt_ct:"2B5":"2B5":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (1 limb)
|
||||
mpi_core_lt_ct:"2B5":"2B4":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (1 limb)
|
||||
mpi_core_lt_ct:"2B5":"2B6":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (63 bit x, y first byte greater)
|
||||
mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (63 bit y, x first byte greater)
|
||||
mpi_core_lt_ct:"00000000000000FF":"7FFFFFFFFFFFFFFF":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=x-1)
|
||||
mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (64 bit y, x=y-1)
|
||||
mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"8000000000000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=1)
|
||||
mpi_core_lt_ct:"8000000000000000":"0000000000000001":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (64 bit y, x=1)
|
||||
mpi_core_lt_ct:"0000000000000001":"8000000000000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (64 bit x, y=0)
|
||||
mpi_core_lt_ct:"8000000000000000":"0000000000000000":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (64 bit y, x=0)
|
||||
mpi_core_lt_ct:"0000000000000000":"8000000000000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (64 bit x, first bytes equal)
|
||||
mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (64 bit y, first bytes equal)
|
||||
mpi_core_lt_ct:"00000000000000FF":"FFFFFFFFFFFFFFFF":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (31 bit x, y first byte greater)
|
||||
mpi_core_lt_ct:"7FFFFFFF":"000000FF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (31 bit y, x first byte greater)
|
||||
mpi_core_lt_ct:"000000FF":"7FFFFFFF":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=x-1)
|
||||
mpi_core_lt_ct:"80000000":"7FFFFFFF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (32 bit y, x=y-1)
|
||||
mpi_core_lt_ct:"7FFFFFFF":"80000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=1)
|
||||
mpi_core_lt_ct:"80000000":"00000001":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (32 bit y, x=1)
|
||||
mpi_core_lt_ct:"00000001":"80000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (32 bit x, y=0)
|
||||
mpi_core_lt_ct:"80000000":"00000000":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (32 bit y, x=0)
|
||||
mpi_core_lt_ct:"00000000":"80000000":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (32 bit x, first bytes equal)
|
||||
mpi_core_lt_ct:"FFFFFFFF":"000000FF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (32 bit y, first bytes equal)
|
||||
mpi_core_lt_ct:"000000FF":"FFFFFFFF":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y, zero vs non-zero MS limb
|
||||
mpi_core_lt_ct:"0FFFFFFFFFFFFFFFF":"1FFFFFFFFFFFFFFFF":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y, equal MS limbs
|
||||
mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x=y (multi-limb)
|
||||
mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFFF":0
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x<y (alternating limbs)
|
||||
mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1
|
||||
|
||||
mbedtls_mpi_core_lt_ct: x>y (alternating limbs)
|
||||
mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 0 (1 limb)
|
||||
mpi_core_uint_le_mpi:"00"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 0 (>=2 limbs)
|
||||
mpi_core_uint_le_mpi:"000000000000000000"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 1 (1 limb)
|
||||
mpi_core_uint_le_mpi:"01"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 1 (>=2 limbs)
|
||||
mpi_core_uint_le_mpi:"000000000000000001"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 42 (1 limb)
|
||||
mpi_core_uint_le_mpi:"2a"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 42 (>=2 limbs)
|
||||
mpi_core_uint_le_mpi:"000000000000000042"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^31-1
|
||||
mpi_core_uint_le_mpi:"7fffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^31-1 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"00000000007fffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32-1
|
||||
mpi_core_uint_le_mpi:"ffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32-1 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"0000000000ffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32
|
||||
mpi_core_uint_le_mpi:"10000000"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"000000000010000000"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32+1
|
||||
mpi_core_uint_le_mpi:"10000001"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^32+1 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"000000000010000001"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^63-1
|
||||
mpi_core_uint_le_mpi:"7fffffffffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^63-1 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"007fffffffffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^64-1
|
||||
mpi_core_uint_le_mpi:"ffffffffffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^64-1 with leading zero limb
|
||||
mpi_core_uint_le_mpi:"00ffffffffffffffff"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^64
|
||||
mpi_core_uint_le_mpi:"010000000000000000"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^64+1
|
||||
mpi_core_uint_le_mpi:"010000000000000001"
|
||||
|
||||
Test mbedtls_mpi_core_uint_le_mpi: 2^64+2
|
||||
mpi_core_uint_le_mpi:"010000000000000002"
|
||||
|
||||
mbedtls_mpi_core_cond_assign: 1 limb
|
||||
mpi_core_cond_assign:"FFFFFFFF":"11111111":4
|
||||
|
||||
mbedtls_mpi_core_cond_assign: more limbs #1
|
||||
mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16
|
||||
|
||||
mbedtls_mpi_core_cond_assign: more limbs #2
|
||||
mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16
|
||||
|
||||
mbedtls_mpi_core_cond_assign: more limbs #3
|
||||
mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16
|
||||
|
||||
mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs
|
||||
mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256
|
||||
|
||||
mbedtls_mpi_core_cond_assign: copy half of the limbs
|
||||
mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8
|
||||
|
||||
mbedtls_mpi_core_cond_swap: same value
|
||||
mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4
|
||||
|
||||
mbedtls_mpi_core_cond_swap: 1 limb
|
||||
mpi_core_cond_swap:"FFFFFFFF":"11111111":4
|
||||
|
||||
mbedtls_mpi_core_cond_swap: more limbs #1
|
||||
mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16
|
||||
|
||||
mbedtls_mpi_core_cond_swap: more limbs #2
|
||||
mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16
|
||||
|
||||
mbedtls_mpi_core_cond_swap: more limbs #3
|
||||
mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16
|
||||
|
||||
mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs
|
||||
mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256
|
||||
|
||||
mbedtls_mpi_core_cond_swap: copy half of the limbs
|
||||
mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8
|
||||
|
||||
mbedtls_mpi_montg_init #1
|
||||
mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb"
|
||||
|
||||
mbedtls_mpi_montg_init #2
|
||||
mpi_montg_init:"0000000000000009":"71c71c71c71c71c7"
|
||||
|
||||
mbedtls_mpi_montg_init #3
|
||||
mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1"
|
||||
|
||||
mbedtls_mpi_montg_init #4
|
||||
mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff"
|
||||
|
||||
mbedtls_mpi_montg_init #5
|
||||
mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001"
|
||||
|
||||
mbedtls_mpi_montg_init #6
|
||||
mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001"
|
||||
|
||||
mbedtls_mpi_montg_init #7
|
||||
mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb"
|
||||
|
||||
mbedtls_mpi_montg_init #8
|
||||
mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f"
|
||||
|
||||
mbedtls_mpi_montg_init #9
|
||||
mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975"
|
||||
|
||||
mbedtls_mpi_montg_init #10
|
||||
mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b"
|
||||
|
||||
mbedtls_mpi_montg_init #11
|
||||
mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135"
|
||||
|
||||
mbedtls_mpi_montg_init #12
|
||||
mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b"
|
||||
|
||||
mbedtls_mpi_montg_init #13
|
||||
mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899"
|
||||
|
||||
mbedtls_mpi_montg_init #14
|
||||
mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55"
|
||||
|
||||
mbedtls_mpi_montg_init #15
|
||||
mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe_neg
|
||||
mpi_core_get_mont_r2_unsafe_neg:
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #1
|
||||
mpi_core_get_mont_r2_unsafe:"f":"1":"1"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #2
|
||||
mpi_core_get_mont_r2_unsafe:"fd":"ec":"24"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #3
|
||||
mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #4
|
||||
mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #5
|
||||
mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #6
|
||||
mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #7
|
||||
mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #8
|
||||
mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #9
|
||||
mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #10
|
||||
mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396"
|
||||
|
||||
mbedtls_mpi_core_get_mont_r2_unsafe #11
|
||||
mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e"
|
||||
|
||||
Fill random core: 0 bytes
|
||||
mpi_core_fill_random:0:0:1:0:0
|
||||
|
||||
Fill random core: 1 byte, RNG stops at 0
|
||||
mpi_core_fill_random:1:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Fill random core: 1 byte, RNG just sufficient
|
||||
mpi_core_fill_random:1:0:0:0:0
|
||||
|
||||
Fill random core: 1 byte, RNG not exhausted
|
||||
mpi_core_fill_random:1:1:0:0:0
|
||||
|
||||
Fill random core: 1 byte, prior content nonzero
|
||||
mpi_core_fill_random:1:0:0:0xba:0
|
||||
|
||||
Fill random core: 1 byte, 1 extra limb
|
||||
mpi_core_fill_random:1:0:1:0:0
|
||||
|
||||
Fill random core: 1 byte, 1 extra limb, prior content nonzero
|
||||
mpi_core_fill_random:1:0:1:0xba:0
|
||||
|
||||
Fill random core: 8 bytes, RNG stops before
|
||||
mpi_core_fill_random:8:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Fill random core: 8 bytes, RNG just sufficient
|
||||
mpi_core_fill_random:8:0:0:0:0
|
||||
|
||||
Fill random core: 8 bytes, RNG not exhausted
|
||||
mpi_core_fill_random:8:1:0:0:0
|
||||
|
||||
Fill random core: 8 bytes, prior content nonzero
|
||||
mpi_core_fill_random:8:0:0:0xba:0
|
||||
|
||||
Fill random core: 8 bytes, 1 extra limb
|
||||
mpi_core_fill_random:8:0:1:0:0
|
||||
|
||||
Fill random core: 8 bytes, 1 extra limb, prior content nonzero
|
||||
mpi_core_fill_random:8:0:1:0xba:0
|
||||
|
||||
Fill random core: 9 bytes, 1 missing limb
|
||||
mpi_core_fill_random:9:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Fill random core: 42 bytes, RNG stops before
|
||||
mpi_core_fill_random:42:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Fill random core: 42 bytes, RNG just sufficient
|
||||
mpi_core_fill_random:42:0:0:0:0
|
||||
|
||||
Fill random core: 42 bytes, RNG not exhausted
|
||||
mpi_core_fill_random:42:1:0:0:0
|
||||
|
||||
Fill random core: 42 bytes, prior content nonzero
|
||||
mpi_core_fill_random:42:0:0:0xba:0
|
||||
|
||||
Fill random core: 42 bytes, 1 extra limb
|
||||
mpi_core_fill_random:42:0:1:0:0
|
||||
|
||||
Fill random core: 42 bytes, 1 extra limb, prior content nonzero
|
||||
mpi_core_fill_random:42:0:1:0xba:0
|
||||
|
||||
Fill random core: 42 bytes, 1 missing limb
|
||||
mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Fill random core: 42 bytes, 5 missing limbs
|
||||
mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
CLZ: 0 0: all ones
|
||||
mpi_core_clz:0:0
|
||||
|
||||
CLZ: 1 0
|
||||
mpi_core_clz:1:0
|
||||
|
||||
CLZ: 1 1
|
||||
mpi_core_clz:1:1
|
||||
|
||||
CLZ: 4 5
|
||||
mpi_core_clz:4:5
|
||||
|
||||
CLZ: 8 16
|
||||
mpi_core_clz:8:16
|
||||
|
||||
CLZ: 31 0
|
||||
mpi_core_clz:31:0
|
||||
|
||||
CLZ: 32 0
|
||||
mpi_core_clz:32:0
|
||||
|
||||
CLZ: 33 0
|
||||
mpi_core_clz:33:0
|
||||
|
||||
CLZ: 63 0
|
||||
mpi_core_clz:63:0
|
||||
|
||||
CLZ: 64 0
|
||||
mpi_core_clz:64:0
|
||||
|
||||
CLZ: 100000 0: skip overly long input
|
||||
mpi_core_clz:100000:0
|
||||
@@ -1,742 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/bignum.h"
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "bignum_mod.h"
|
||||
#include "bignum_mod_raw.h"
|
||||
#include "constant_time_internal.h"
|
||||
#include "test/constant_flow.h"
|
||||
|
||||
#define TEST_COMPARE_MPI_RESIDUES(a, b) \
|
||||
TEST_MEMORY_COMPARE((a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \
|
||||
(b).p, (b).limbs * sizeof(mbedtls_mpi_uint))
|
||||
|
||||
static int test_read_residue(mbedtls_mpi_mod_residue *r,
|
||||
const mbedtls_mpi_mod_modulus *m,
|
||||
char *input,
|
||||
int skip_limbs_and_value_checks)
|
||||
{
|
||||
mbedtls_mpi_uint *p = NULL;
|
||||
size_t limbs;
|
||||
|
||||
int ret = mbedtls_test_read_mpi_core(&p, &limbs, input);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (skip_limbs_and_value_checks) {
|
||||
r->p = p;
|
||||
r->limbs = limbs;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* mbedtls_mpi_mod_residue_setup() checks limbs, and that value < m */
|
||||
return mbedtls_mpi_mod_residue_setup(r, m, p, limbs);
|
||||
}
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_BIGNUM_C:MBEDTLS_ECP_WITH_MPI_UINT
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_setup(int int_rep, int iret)
|
||||
{
|
||||
#define MLIMBS 8
|
||||
mbedtls_mpi_uint mp[MLIMBS];
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
int ret;
|
||||
|
||||
memset(mp, 0xFF, sizeof(mp));
|
||||
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
switch (int_rep) {
|
||||
case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
|
||||
ret = mbedtls_mpi_mod_modulus_setup(&m, mp, MLIMBS);
|
||||
break;
|
||||
case MBEDTLS_MPI_MOD_REP_OPT_RED:
|
||||
ret = mbedtls_mpi_mod_optred_modulus_setup(&m, mp, MLIMBS, NULL);
|
||||
break;
|
||||
default:
|
||||
ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
|
||||
break;
|
||||
}
|
||||
|
||||
TEST_EQUAL(ret, iret);
|
||||
|
||||
/* Only test if the constants have been set-up */
|
||||
if (ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) {
|
||||
/* Test that the consts have been calculated */
|
||||
TEST_ASSERT(m.rep.mont.rr != NULL);
|
||||
TEST_ASSERT(m.rep.mont.mm != 0);
|
||||
|
||||
}
|
||||
|
||||
/* Address sanitiser should catch if we try to free mp */
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
|
||||
/* Make sure that the modulus doesn't have reference to mp anymore */
|
||||
TEST_ASSERT(m.p != mp);
|
||||
|
||||
/* Only test if the constants have been set-up */
|
||||
if (ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) {
|
||||
/* Verify the data and pointers allocated have been properly wiped */
|
||||
TEST_ASSERT(m.rep.mont.rr == NULL);
|
||||
TEST_ASSERT(m.rep.mont.mm == 0);
|
||||
}
|
||||
exit:
|
||||
/* It should be safe to call an mbedtls free several times */
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
|
||||
#undef MLIMBS
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_mul(char *input_A,
|
||||
char *input_B,
|
||||
char *input_N,
|
||||
char *result)
|
||||
{
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
|
||||
mbedtls_mpi_mod_residue rA = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rB = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rR = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rX = { NULL, 0 };
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_modulus(&m, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0);
|
||||
|
||||
TEST_EQUAL(test_read_residue(&rA, &m, input_A, 0), 0);
|
||||
TEST_EQUAL(test_read_residue(&rB, &m, input_B, 0), 0);
|
||||
TEST_EQUAL(test_read_residue(&rR, &m, result, 0), 0);
|
||||
|
||||
const size_t limbs = m.limbs;
|
||||
const size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(rA.limbs, limbs);
|
||||
TEST_EQUAL(rB.limbs, limbs);
|
||||
TEST_EQUAL(rR.limbs, limbs);
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rX, &m, X, limbs), 0);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* alias X to A */
|
||||
memcpy(rX.p, rA.p, bytes);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rB, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* alias X to B */
|
||||
memcpy(rX.p, rB.p, bytes);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rX, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* A == B: alias A and B */
|
||||
if (memcmp(rA.p, rB.p, bytes) == 0) {
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rA, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* X, A, B all aliased together */
|
||||
memcpy(rX.p, rA.p, bytes);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rX, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
}
|
||||
/* A != B: test B * A */
|
||||
else {
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rB, &rA, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* B * A: alias X to A */
|
||||
memcpy(rX.p, rA.p, bytes);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rB, &rX, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
|
||||
/* B + A: alias X to B */
|
||||
memcpy(rX.p, rB.p, bytes);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rA, &m), 0);
|
||||
TEST_MEMORY_COMPARE(rX.p, bytes, rR.p, bytes);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(rA.p);
|
||||
mbedtls_free(rB.p);
|
||||
mbedtls_free(rR.p);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free((mbedtls_mpi_uint *) m.p);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_mul_neg(char *input_A,
|
||||
char *input_B,
|
||||
char *input_N,
|
||||
char *result,
|
||||
int exp_ret)
|
||||
{
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
|
||||
mbedtls_mpi_mod_residue rA = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rB = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rR = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue rX = { NULL, 0 };
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
mbedtls_mpi_mod_modulus fake_m;
|
||||
mbedtls_mpi_mod_modulus_init(&fake_m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_modulus(&m, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0);
|
||||
|
||||
TEST_EQUAL(test_read_residue(&rA, &m, input_A, 1), 0);
|
||||
TEST_EQUAL(test_read_residue(&rB, &m, input_B, 1), 0);
|
||||
TEST_EQUAL(test_read_residue(&rR, &m, result, 1), 0);
|
||||
|
||||
const size_t limbs = m.limbs;
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rX, &m, X, limbs), 0);
|
||||
rX.limbs = rR.limbs;
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &m), exp_ret);
|
||||
|
||||
/* Check when m is not initialized */
|
||||
TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &fake_m),
|
||||
MBEDTLS_ERR_MPI_BAD_INPUT_DATA);
|
||||
|
||||
exit:
|
||||
mbedtls_free(rA.p);
|
||||
mbedtls_free(rB.p);
|
||||
mbedtls_free(rR.p);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free((mbedtls_mpi_uint *) m.p);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_mpi_mod_modulus_free(&fake_m);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_sub(char *input_N,
|
||||
char *input_A, char *input_B,
|
||||
char *input_D, int expected_ret)
|
||||
{
|
||||
mbedtls_mpi_mod_residue a = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue b = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue d = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue x = { NULL, 0 };
|
||||
mbedtls_mpi_uint *X_raw = NULL;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(0,
|
||||
mbedtls_test_read_mpi_modulus(&m, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_MONTGOMERY));
|
||||
|
||||
/* test_read_residue() normally checks that inputs have the same number of
|
||||
* limbs as the modulus. For negative testing we can ask it to skip this
|
||||
* with a non-zero final parameter. */
|
||||
TEST_EQUAL(0, test_read_residue(&a, &m, input_A, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&b, &m, input_B, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&d, &m, input_D, expected_ret != 0));
|
||||
|
||||
size_t limbs = m.limbs;
|
||||
size_t bytes = limbs * sizeof(*X_raw);
|
||||
|
||||
if (expected_ret == 0) {
|
||||
/* Negative test with too many limbs in output */
|
||||
TEST_CALLOC(X_raw, limbs + 1);
|
||||
|
||||
x.p = X_raw;
|
||||
x.limbs = limbs + 1;
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_sub(&x, &a, &b, &m));
|
||||
|
||||
mbedtls_free(X_raw);
|
||||
X_raw = NULL;
|
||||
|
||||
/* Negative test with too few limbs in output */
|
||||
if (limbs > 1) {
|
||||
TEST_CALLOC(X_raw, limbs - 1);
|
||||
|
||||
x.p = X_raw;
|
||||
x.limbs = limbs - 1;
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_sub(&x, &a, &b, &m));
|
||||
|
||||
mbedtls_free(X_raw);
|
||||
X_raw = NULL;
|
||||
}
|
||||
|
||||
/* Negative testing with too many/too few limbs in a and b is covered by
|
||||
* manually-written test cases with expected_ret != 0. */
|
||||
}
|
||||
|
||||
TEST_CALLOC(X_raw, limbs);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &m, X_raw, limbs));
|
||||
|
||||
/* a - b => Correct result, or expected error */
|
||||
TEST_EQUAL(expected_ret, mbedtls_mpi_mod_sub(&x, &a, &b, &m));
|
||||
if (expected_ret != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
TEST_COMPARE_MPI_RESIDUES(x, d);
|
||||
|
||||
/* a - b: alias x to a => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &x, &b, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, d);
|
||||
|
||||
/* a - b: alias x to b => Correct result */
|
||||
memcpy(x.p, b.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &a, &x, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, d);
|
||||
|
||||
if (memcmp(a.p, b.p, bytes) == 0) {
|
||||
/* a == b: alias a and b */
|
||||
|
||||
/* a - a => Correct result */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &a, &a, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, d);
|
||||
|
||||
/* a - a: x, a, b all aliased together => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &x, &x, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, d);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free((void *) m.p); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
|
||||
mbedtls_free(a.p);
|
||||
mbedtls_free(b.p);
|
||||
mbedtls_free(d.p);
|
||||
mbedtls_free(X_raw);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_inv_mont(char *input_N,
|
||||
char *input_A, char *input_I,
|
||||
int expected_ret)
|
||||
{
|
||||
mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */
|
||||
mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */
|
||||
mbedtls_mpi_mod_residue x = { NULL, 0 }; /* output */
|
||||
mbedtls_mpi_uint *X_raw = NULL;
|
||||
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
|
||||
TEST_EQUAL(0,
|
||||
mbedtls_test_read_mpi_modulus(&N, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_MONTGOMERY));
|
||||
|
||||
/* test_read_residue() normally checks that inputs have the same number of
|
||||
* limbs as the modulus. For negative testing we can ask it to skip this
|
||||
* with a non-zero final parameter. */
|
||||
TEST_EQUAL(0, test_read_residue(&a, &N, input_A, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&i, &N, input_I, expected_ret != 0));
|
||||
|
||||
size_t limbs = N.limbs;
|
||||
size_t bytes = limbs * sizeof(*X_raw);
|
||||
|
||||
TEST_CALLOC(X_raw, limbs);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &N, X_raw, limbs));
|
||||
|
||||
TEST_EQUAL(expected_ret, mbedtls_mpi_mod_inv(&x, &a, &N));
|
||||
if (expected_ret == 0) {
|
||||
TEST_COMPARE_MPI_RESIDUES(x, i);
|
||||
|
||||
/* a^-1: alias x to a => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_inv(&x, &x, &N));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, i);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free((void *) N.p); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */
|
||||
mbedtls_mpi_mod_modulus_free(&N);
|
||||
|
||||
mbedtls_free(a.p);
|
||||
mbedtls_free(i.p);
|
||||
mbedtls_free(X_raw);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_inv_non_mont(char *input_N,
|
||||
char *input_A, char *input_I,
|
||||
int expected_ret)
|
||||
{
|
||||
mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */
|
||||
mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */
|
||||
mbedtls_mpi_mod_residue x = { NULL, 0 }; /* output */
|
||||
mbedtls_mpi_uint *X_raw = NULL;
|
||||
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
|
||||
TEST_EQUAL(0,
|
||||
mbedtls_test_read_mpi_modulus(&N, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_OPT_RED));
|
||||
|
||||
/* test_read_residue() normally checks that inputs have the same number of
|
||||
* limbs as the modulus. For negative testing we can ask it to skip this
|
||||
* with a non-zero final parameter. */
|
||||
TEST_EQUAL(0, test_read_residue(&a, &N, input_A, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&i, &N, input_I, expected_ret != 0));
|
||||
|
||||
size_t limbs = N.limbs;
|
||||
size_t bytes = limbs * sizeof(*X_raw);
|
||||
|
||||
TEST_CALLOC(X_raw, limbs);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &N, X_raw, limbs));
|
||||
|
||||
TEST_EQUAL(expected_ret, mbedtls_mpi_mod_inv(&x, &a, &N));
|
||||
if (expected_ret == 0) {
|
||||
TEST_COMPARE_MPI_RESIDUES(x, i);
|
||||
|
||||
/* a^-1: alias x to a => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_inv(&x, &x, &N));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, i);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free((void *) N.p); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */
|
||||
mbedtls_mpi_mod_modulus_free(&N);
|
||||
|
||||
mbedtls_free(a.p);
|
||||
mbedtls_free(i.p);
|
||||
mbedtls_free(X_raw);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_add(char *input_N,
|
||||
char *input_A, char *input_B,
|
||||
char *input_S, int expected_ret)
|
||||
{
|
||||
mbedtls_mpi_mod_residue a = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue b = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue s = { NULL, 0 };
|
||||
mbedtls_mpi_mod_residue x = { NULL, 0 };
|
||||
mbedtls_mpi_uint *X_raw = NULL;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(0,
|
||||
mbedtls_test_read_mpi_modulus(&m, input_N,
|
||||
MBEDTLS_MPI_MOD_REP_MONTGOMERY));
|
||||
|
||||
/* test_read_residue() normally checks that inputs have the same number of
|
||||
* limbs as the modulus. For negative testing we can ask it to skip this
|
||||
* with a non-zero final parameter. */
|
||||
TEST_EQUAL(0, test_read_residue(&a, &m, input_A, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&b, &m, input_B, expected_ret != 0));
|
||||
TEST_EQUAL(0, test_read_residue(&s, &m, input_S, expected_ret != 0));
|
||||
|
||||
size_t limbs = m.limbs;
|
||||
size_t bytes = limbs * sizeof(*X_raw);
|
||||
|
||||
if (expected_ret == 0) {
|
||||
/* Negative test with too many limbs in output */
|
||||
TEST_CALLOC(X_raw, limbs + 1);
|
||||
|
||||
x.p = X_raw;
|
||||
x.limbs = limbs + 1;
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_add(&x, &a, &b, &m));
|
||||
|
||||
mbedtls_free(X_raw);
|
||||
X_raw = NULL;
|
||||
|
||||
/* Negative test with too few limbs in output */
|
||||
if (limbs > 1) {
|
||||
TEST_CALLOC(X_raw, limbs - 1);
|
||||
|
||||
x.p = X_raw;
|
||||
x.limbs = limbs - 1;
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_add(&x, &a, &b, &m));
|
||||
|
||||
mbedtls_free(X_raw);
|
||||
X_raw = NULL;
|
||||
}
|
||||
|
||||
/* Negative testing with too many/too few limbs in a and b is covered by
|
||||
* manually-written test cases with oret != 0. */
|
||||
}
|
||||
|
||||
/* Allocate correct number of limbs for X_raw */
|
||||
TEST_CALLOC(X_raw, limbs);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &m, X_raw, limbs));
|
||||
|
||||
/* A + B => Correct result or expected error */
|
||||
TEST_EQUAL(expected_ret, mbedtls_mpi_mod_add(&x, &a, &b, &m));
|
||||
if (expected_ret != 0) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
TEST_COMPARE_MPI_RESIDUES(x, s);
|
||||
|
||||
/* a + b: alias x to a => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &x, &b, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, s);
|
||||
|
||||
/* a + b: alias x to b => Correct result */
|
||||
memcpy(x.p, b.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &a, &x, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, s);
|
||||
|
||||
if (memcmp(a.p, b.p, bytes) == 0) {
|
||||
/* a == b: alias a and b */
|
||||
|
||||
/* a + a => Correct result */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &a, &a, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, s);
|
||||
|
||||
/* a + a: x, a, b all aliased together => Correct result */
|
||||
memcpy(x.p, a.p, bytes);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &x, &x, &m));
|
||||
TEST_COMPARE_MPI_RESIDUES(x, s);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free((void *) m.p); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
|
||||
mbedtls_free(a.p);
|
||||
mbedtls_free(b.p);
|
||||
mbedtls_free(s.p);
|
||||
mbedtls_free(X_raw);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_residue_setup(char *input_N, char *input_R, int ret)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *R = NULL;
|
||||
size_t n_limbs, r_limbs;
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_residue r;
|
||||
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
/* Allocate the memory for intermediate data structures */
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&R, &r_limbs, input_R));
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
TEST_EQUAL(ret, mbedtls_mpi_mod_residue_setup(&r, &m, R, r_limbs));
|
||||
|
||||
if (ret == 0) {
|
||||
TEST_EQUAL(r.limbs, r_limbs);
|
||||
TEST_ASSERT(r.p == R);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(R);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_io_neg(char *input_N, data_t *buf, int ret)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *R = NULL;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_residue r = { NULL, 0 };
|
||||
mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE;
|
||||
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
size_t n_limbs;
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
size_t r_limbs = n_limbs;
|
||||
TEST_CALLOC(R, r_limbs);
|
||||
|
||||
/* modulus->p == NULL || residue->p == NULL ( m has not been set-up ) */
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian));
|
||||
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian));
|
||||
|
||||
/* Set up modulus and test with residue->p == NULL */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian));
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian));
|
||||
|
||||
/* Do the rest of the tests with a residue set up with the input data */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r, &m, R, r_limbs));
|
||||
|
||||
/* Fail for r_limbs < m->limbs */
|
||||
r.limbs--;
|
||||
TEST_ASSERT(r.limbs < m.limbs);
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian));
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian));
|
||||
r.limbs++;
|
||||
|
||||
/* Fail for r_limbs > m->limbs */
|
||||
m.limbs--;
|
||||
TEST_ASSERT(r.limbs > m.limbs);
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian));
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA,
|
||||
mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian));
|
||||
m.limbs++;
|
||||
|
||||
/* Test the read */
|
||||
TEST_EQUAL(ret, mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian));
|
||||
|
||||
/* Test write overflow only when the representation is large and read is successful */
|
||||
if (r.limbs > 1 && ret == 0) {
|
||||
TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL,
|
||||
mbedtls_mpi_mod_write(&r, &m, buf->x, 1, endian));
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_residue_release(&r);
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(R);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_io(char *input_N, data_t *input_A, int endian)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *R = NULL;
|
||||
mbedtls_mpi_uint *R_COPY = NULL;
|
||||
unsigned char *obuf = NULL;
|
||||
unsigned char *ref_buf = NULL;
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_residue r;
|
||||
mbedtls_mpi_mod_residue r_copy;
|
||||
size_t n_limbs, n_bytes, a_bytes;
|
||||
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
/* Read inputs */
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
n_bytes = n_limbs * sizeof(mbedtls_mpi_uint);
|
||||
a_bytes = input_A->len;
|
||||
|
||||
/* Allocate the memory for intermediate data structures */
|
||||
TEST_CALLOC(R, n_bytes);
|
||||
TEST_CALLOC(R_COPY, n_bytes);
|
||||
|
||||
/* Test that input's size is not greater to modulo's */
|
||||
TEST_LE_U(a_bytes, n_bytes);
|
||||
|
||||
/* Init Structures */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
/* Enforcing p_limbs >= m->limbs */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r, &m, R, n_limbs));
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_read(&r, &m, input_A->x, input_A->len,
|
||||
endian));
|
||||
|
||||
/* Read a copy for checking that writing didn't change the value of r */
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r_copy, &m,
|
||||
R_COPY, n_limbs));
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_read(&r_copy, &m, input_A->x, input_A->len,
|
||||
endian));
|
||||
|
||||
/* Get number of bytes without leading zeroes */
|
||||
size_t a_bytes_trimmed = a_bytes;
|
||||
while (a_bytes_trimmed > 0) {
|
||||
unsigned char *r_byte_array = (unsigned char *) r.p;
|
||||
if (r_byte_array[--a_bytes_trimmed] != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
a_bytes_trimmed++;
|
||||
|
||||
/* Test write with three output buffer sizes: tight, same as input and
|
||||
* longer than the input */
|
||||
size_t obuf_sizes[3];
|
||||
const size_t obuf_sizes_len = sizeof(obuf_sizes) / sizeof(obuf_sizes[0]);
|
||||
obuf_sizes[0] = a_bytes_trimmed;
|
||||
obuf_sizes[1] = a_bytes;
|
||||
obuf_sizes[2] = a_bytes + 8;
|
||||
|
||||
for (size_t i = 0; i < obuf_sizes_len; i++) {
|
||||
TEST_CALLOC(obuf, obuf_sizes[i]);
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_write(&r, &m, obuf, obuf_sizes[i], endian));
|
||||
|
||||
/* Make sure that writing didn't corrupt the value of r */
|
||||
TEST_MEMORY_COMPARE(r.p, r.limbs, r_copy.p, r_copy.limbs);
|
||||
|
||||
/* Set up reference output for checking the result */
|
||||
TEST_CALLOC(ref_buf, obuf_sizes[i]);
|
||||
switch (endian) {
|
||||
case MBEDTLS_MPI_MOD_EXT_REP_LE:
|
||||
memcpy(ref_buf, input_A->x, a_bytes_trimmed);
|
||||
break;
|
||||
case MBEDTLS_MPI_MOD_EXT_REP_BE:
|
||||
{
|
||||
size_t a_offset = input_A->len - a_bytes_trimmed;
|
||||
size_t ref_offset = obuf_sizes[i] - a_bytes_trimmed;
|
||||
memcpy(ref_buf + ref_offset, input_A->x + a_offset,
|
||||
a_bytes_trimmed);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
|
||||
/* Check the result */
|
||||
TEST_MEMORY_COMPARE(obuf, obuf_sizes[i], ref_buf, obuf_sizes[i]);
|
||||
|
||||
mbedtls_free(ref_buf);
|
||||
ref_buf = NULL;
|
||||
mbedtls_free(obuf);
|
||||
obuf = NULL;
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(R);
|
||||
mbedtls_free(R_COPY);
|
||||
mbedtls_free(obuf);
|
||||
mbedtls_free(ref_buf);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,370 +0,0 @@
|
||||
Test mbedtls_mpi_mod_setup #1 (Internal representation invalid)
|
||||
mpi_mod_setup:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_mod_setup #6 (Optimised reduction)
|
||||
mpi_mod_setup:MBEDTLS_MPI_MOD_REP_OPT_RED:0
|
||||
|
||||
Test mbedtls_mpi_mod_setup #7 (Montgomery representation)
|
||||
mpi_mod_setup:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0
|
||||
|
||||
Test mpi_mod_mul #1 N->limbs != A->limbs
|
||||
mpi_mod_mul_neg:"1":"00000000000000000000000000000000":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mpi_mod_mul #2 N->limbs != B->limbs
|
||||
mpi_mod_mul_neg:"1234567890abcdef1234567890abcdef":"0":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mpi_mod_mul #3 N->limbs != X->limbs
|
||||
mpi_mod_mul_neg:"1234567890abcdef1234567890abcdef":"00000000000000000000000000000000":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub base case for negative testing (N, a, b all >= 1 limb)
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"013fe57440828b4a0008aa4159":0
|
||||
|
||||
mpi_mod_sub with modulus too long/both inputs too short
|
||||
mpi_mod_sub:"0000000014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub with first input too long
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub with second input too long
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub with both inputs too long
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub with first input too short
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"a99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_sub with second input too short
|
||||
mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv non-Mont. form - base case for negative testing (N, A, A^-1)
|
||||
mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000038":"000000000000097418193b6f2e0b5fc3":0
|
||||
|
||||
mbedtls_mpi_mod_inv non-Mont. form - A == 0
|
||||
mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000000":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv non-Mont. form - A too long
|
||||
mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000000000000000000000000000038":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv non-Mont. form - A too short
|
||||
mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000038":"000000000000097418193b6f2e0b5fc3":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 32-bit Mont. form - base case for negative testing, A = 1 (N, mont(A), mont(A^-1))
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000d71d51539b9c02b7b28":"0000000000000d71d51539b9c02b7b28":0
|
||||
|
||||
mbedtls_mpi_mod_inv 32-bit Mont. form - A == 0
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000000":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 32-bit Mont. form - A too long
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"000000000000000000000d71d51539b9c02b7b28":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 32-bit Mont. form - A too short
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"00000d71d51539b9c02b7b28":"0000000000000d71d51539b9c02b7b28":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 64-bit Mont. form - base case for negative testing, A = 1 (N, mont(A), mont(A^-1))
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"000000000000000000000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":0
|
||||
|
||||
mbedtls_mpi_mod_inv 64-bit Mont. form - A == 0
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"000000000000000000000000000000000000000000000000":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 64-bit Mont. form - A too long
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"0000000000000000000000000000000000000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_inv 64-bit Mont. form - A too short
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"00000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add base case for negative testing (N, a, b all >= 1 limb)
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00033b3096f574ee9a919c815a":0
|
||||
|
||||
mpi_mod_add with modulus too long/both inputs too short
|
||||
mpi_mod_add:"0000000014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add with first input too long
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add with second input too long
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add with both inputs too long
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add with first input too short
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"a99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mpi_mod_add with second input too short
|
||||
mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_residue_setup #1 m > r
|
||||
mpi_residue_setup:"fe":"01":0
|
||||
|
||||
Test mbedtls_mpi_residue_setup #2 r == m - 1
|
||||
mpi_residue_setup:"ff":"fe":0
|
||||
|
||||
Test mbedtls_mpi_residue_setup #3 m->limbs = r-> limbs && m > r
|
||||
mpi_residue_setup:"7dfe5c6":"fe":0
|
||||
|
||||
Test mbedtls_mpi_residue_setup #4 m->limbs = r-> limbs && m > r
|
||||
mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"0000000000000000000000000000000000000000000000fe":0
|
||||
|
||||
Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r
|
||||
mpi_residue_setup:"7ffffffff00000000":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r
|
||||
mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_residue_setup #7 r == m
|
||||
mpi_residue_setup:"fe":"fe":-4
|
||||
|
||||
Test mbedtls_mpi_residue_setup #8 r > m
|
||||
mpi_residue_setup:"fe":"ff":-4
|
||||
|
||||
Test mbedtls_mpi_mod_io_neg #1 input_r < modulo m
|
||||
mpi_mod_io_neg:"fe":"fd":0
|
||||
|
||||
Test mbedtls_mpi_mod_io_neg #2 input_r == modulo m
|
||||
mpi_mod_io_neg:"fe":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_mod_io_neg #3 input_r > modulo m
|
||||
mpi_mod_io_neg:"fe":"ff":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
Test mbedtls_mpi_mod_io_neg #4 input_r too large to fit
|
||||
mpi_mod_io_neg:"fe":"ffffffffffffffffff":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_mod_io_neg #5 Sucesfull read / output buffer too small
|
||||
mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"ffff":0
|
||||
|
||||
Test mbedtls_mpi_mod_io #1 N: "11" A: "119".
|
||||
mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #2 N: "11" A: "136".
|
||||
mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #3 N: "11" A: "119".
|
||||
mpi_mod_io:"000000000000000b":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #4 N: "11" A: "136".
|
||||
mpi_mod_io:"000000000000000b":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #5 N: "140737488355333" A: "119".
|
||||
mpi_mod_io:"0000800000000005":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #6 N: "140737488355333" A: "136".
|
||||
mpi_mod_io:"0000800000000005":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #7 N: "140737488355333" A: "119".
|
||||
mpi_mod_io:"0000800000000005":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #8 N: "140737488355333" A: "136".
|
||||
mpi_mod_io:"0000800000000005":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #9 N: "140737488355333" A: "119".
|
||||
mpi_mod_io:"0000800000000005":"00000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #10 N: "140737488355333" A: "136".
|
||||
mpi_mod_io:"0000800000000005":"ca03000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #11 N: "140737488355333" A: "119".
|
||||
mpi_mod_io:"0000800000000005":"00000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #12 N: "140737488355333" A: "136".
|
||||
mpi_mod_io:"0000800000000005":"28d49e5300000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #13 N: "9223372036854775807" A: "119".
|
||||
mpi_mod_io:"7fffffffffffffff":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #14 N: "9223372036854775807" A: "136".
|
||||
mpi_mod_io:"7fffffffffffffff":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #15 N: "9223372036854775807" A: "119".
|
||||
mpi_mod_io:"7fffffffffffffff":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #16 N: "9223372036854775807" A: "136".
|
||||
mpi_mod_io:"7fffffffffffffff":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #17 N: "9223372036854775807" A: "119".
|
||||
mpi_mod_io:"7fffffffffffffff":"00000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #18 N: "9223372036854775807" A: "136".
|
||||
mpi_mod_io:"7fffffffffffffff":"ca03000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #19 N: "9223372036854775807" A: "119".
|
||||
mpi_mod_io:"7fffffffffffffff":"00000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #20 N: "9223372036854775807" A: "136".
|
||||
mpi_mod_io:"7fffffffffffffff":"28d49e5300000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #21 N: "9223372036854775807" A: "119".
|
||||
mpi_mod_io:"7fffffffffffffff":"7dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #22 N: "9223372036854775807" A: "136".
|
||||
mpi_mod_io:"7fffffffffffffff":"d6a235eb6b5cfe7d":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #23 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #24 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #25 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #26 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #27 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #28 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"ca030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #29 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #30 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"28d49e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #31 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #32 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"d6a235eb6b5cfe7d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #33 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #34 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"8eb4b9af7a6dfcadc2e18dca0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #35 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #36 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"33c96fafc1f96bc1d5f372bec4b6177d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #37 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #38 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"79f563548447f152ed423155f946c5ee7bc9fe020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #39 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #40 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136".
|
||||
mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"4fdcca75f1d4e6dc789591f45a49ba2cb6a7c58b3bc88d3700000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #41 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #42 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #43 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #44 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"010000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #45 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #46 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"ca0300000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #47 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #48 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"28d49e530000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #49 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #50 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"d6a235eb6b5cfe7d00000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #51 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"00000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #52 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"8eb4b9af7a6dfcadc2e18dca0d0000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #53 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #54 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"33c96fafc1f96bc1d5f372bec4b6177d0a00000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #55 N: "201076468338594879614802819276237850336264827391977454179" A: "119".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #56 N: "201076468338594879614802819276237850336264827391977454179" A: "136".
|
||||
mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"79f563548447f152ed423155f946c5ee7bc9fe0200000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #57 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #58 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #59 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #60 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #61 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #62 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"ca030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #63 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #64 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"28d49e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #65 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #66 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"d6a235eb6b5cfe7d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #67 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #68 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"8eb4b9af7a6dfcadc2e18dca0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #69 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #70 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"33c96fafc1f96bc1d5f372bec4b6177d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #71 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #72 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"79f563548447f152ed423155f946c5ee7bc9fe020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #73 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #74 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"4fdcca75f1d4e6dc789591f45a49ba2cb6a7c58b3bc88d3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
|
||||
Test mbedtls_mpi_mod_io #75 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395ab3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab358d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627":MBEDTLS_MPI_MOD_EXT_REP_BE
|
||||
|
||||
Test mbedtls_mpi_mod_io #76 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136".
|
||||
mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"27d6b9ef85b7ecf293f6cb59a3b9ac5d72d1eb19c3fb6b7e8a1332ea2cfe352bb9cdd5f3cf35594a16fbe34fd726d96c372c27e174bda39d4a9e157d6de2fc7976af965c63ecd8c94e852ea3e68dcaf1c2752567a36f9dc5659dc9e2c1476c3a24a3a439b87c6e4c4dafdce56b1712b9e39d685bf21ccf87b2cf796c92e49b8d35aba846a87d2ad7a1dedc13c52a152336d4e9a386a2d275ae41ea5bb375d1a346317a822bdec9d1bcda63cb512a854c4fea437dc5f141732eada619ce2561cfa542524aa897d1a9de7a687f4875a679289cb5c4bfecc6d4deb64ea818eb86aff4be4ceac23aab95a3b45a41c6f2c82938db561fb15d3418a5488e1a2a5f41b6":MBEDTLS_MPI_MOD_EXT_REP_LE
|
||||
@@ -1,181 +0,0 @@
|
||||
Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes)
|
||||
mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes)
|
||||
mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes)
|
||||
mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes)
|
||||
mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes)
|
||||
mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes)
|
||||
mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes)
|
||||
mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes)
|
||||
mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #11 BE (Zero)
|
||||
mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #11 LE (Zero)
|
||||
mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output)
|
||||
mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output)
|
||||
mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input)
|
||||
mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input)
|
||||
mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #14 BE (One)
|
||||
mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #14 LE (One)
|
||||
mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #14 BE (One limb)
|
||||
mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #14 LE (One limb)
|
||||
mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #15 BE (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #15 LE (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT32
|
||||
mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #16 BE (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #16 LE (One limb)
|
||||
depends_on:MBEDTLS_HAVE_INT64
|
||||
mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned)
|
||||
mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input)
|
||||
mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input)
|
||||
mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness)
|
||||
mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0
|
||||
|
||||
Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness)
|
||||
mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: 1 limb
|
||||
mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: more limbs #1
|
||||
mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: more limbs #2
|
||||
mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: more limbs #3
|
||||
mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs
|
||||
mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs
|
||||
mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: same value
|
||||
mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: 1 limb
|
||||
mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: more limbs #1
|
||||
mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: more limbs #2
|
||||
mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: more limbs #3
|
||||
mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs
|
||||
mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs
|
||||
mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8
|
||||
|
||||
@@ -1,865 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/bignum.h"
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "bignum_core.h"
|
||||
#include "bignum_mod_raw.h"
|
||||
#include "constant_time_internal.h"
|
||||
#include "test/constant_flow.h"
|
||||
|
||||
#include "bignum_mod_raw_invasive.h"
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_BIGNUM_C:MBEDTLS_ECP_WITH_MPI_UINT
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_io(data_t *input, int nb_int, int nx_32_int,
|
||||
int iendian, int iret, int oret)
|
||||
{
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
if (iret != 0) {
|
||||
TEST_ASSERT(oret == 0);
|
||||
}
|
||||
|
||||
TEST_LE_S(0, nb_int);
|
||||
size_t nb = nb_int;
|
||||
|
||||
unsigned char buf[1024];
|
||||
TEST_LE_U(nb, sizeof(buf));
|
||||
|
||||
/* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need
|
||||
* to halve the number of limbs to have the same size. */
|
||||
size_t nx;
|
||||
TEST_LE_S(0, nx_32_int);
|
||||
if (sizeof(mbedtls_mpi_uint) == 8) {
|
||||
nx = nx_32_int / 2 + nx_32_int % 2;
|
||||
} else {
|
||||
nx = nx_32_int;
|
||||
}
|
||||
|
||||
mbedtls_mpi_uint X[sizeof(buf) / sizeof(mbedtls_mpi_uint)];
|
||||
TEST_LE_U(nx, sizeof(X) / sizeof(X[0]));
|
||||
|
||||
int endian;
|
||||
if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID) {
|
||||
endian = MBEDTLS_MPI_MOD_EXT_REP_LE;
|
||||
} else {
|
||||
endian = iendian;
|
||||
}
|
||||
|
||||
mbedtls_mpi_uint init[sizeof(X) / sizeof(X[0])];
|
||||
memset(init, 0xFF, sizeof(init));
|
||||
int ret = mbedtls_mpi_mod_modulus_setup(&m, init, nx);
|
||||
TEST_EQUAL(ret, 0);
|
||||
|
||||
if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0) {
|
||||
endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID;
|
||||
}
|
||||
|
||||
ret = mbedtls_mpi_mod_raw_read(X, &m, input->x, input->len, endian);
|
||||
TEST_EQUAL(ret, iret);
|
||||
|
||||
if (iret == 0) {
|
||||
if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0) {
|
||||
endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID;
|
||||
}
|
||||
|
||||
ret = mbedtls_mpi_mod_raw_write(X, &m, buf, nb, endian);
|
||||
TEST_EQUAL(ret, oret);
|
||||
}
|
||||
|
||||
if ((iret == 0) && (oret == 0)) {
|
||||
if (nb > input->len) {
|
||||
if (endian == MBEDTLS_MPI_MOD_EXT_REP_BE) {
|
||||
size_t leading_zeroes = nb - input->len;
|
||||
TEST_ASSERT(memcmp(buf + nb - input->len, input->x, input->len) == 0);
|
||||
for (size_t i = 0; i < leading_zeroes; i++) {
|
||||
TEST_EQUAL(buf[i], 0);
|
||||
}
|
||||
} else {
|
||||
TEST_ASSERT(memcmp(buf, input->x, input->len) == 0);
|
||||
for (size_t i = input->len; i < nb; i++) {
|
||||
TEST_EQUAL(buf[i], 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (endian == MBEDTLS_MPI_MOD_EXT_REP_BE) {
|
||||
size_t leading_zeroes = input->len - nb;
|
||||
TEST_ASSERT(memcmp(input->x + input->len - nb, buf, nb) == 0);
|
||||
for (size_t i = 0; i < leading_zeroes; i++) {
|
||||
TEST_EQUAL(input->x[i], 0);
|
||||
}
|
||||
} else {
|
||||
TEST_ASSERT(memcmp(input->x, buf, nb) == 0);
|
||||
for (size_t i = nb; i < input->len; i++) {
|
||||
TEST_EQUAL(input->x[i], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_cond_assign(char *input_X,
|
||||
char *input_Y,
|
||||
int input_bytes)
|
||||
{
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *Y = NULL;
|
||||
mbedtls_mpi_uint *buff_m = NULL;
|
||||
size_t limbs_X;
|
||||
size_t limbs_Y;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&Y, &limbs_Y, input_Y), 0);
|
||||
|
||||
size_t limbs = limbs_X;
|
||||
size_t copy_limbs = CHARS_TO_LIMBS(input_bytes);
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
size_t copy_bytes = copy_limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(limbs_X, limbs_Y);
|
||||
TEST_ASSERT(copy_limbs <= limbs);
|
||||
|
||||
TEST_CALLOC(buff_m, copy_limbs);
|
||||
memset(buff_m, 0xFF, copy_limbs);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, buff_m, copy_limbs), 0);
|
||||
|
||||
/* condition is false */
|
||||
TEST_CF_SECRET(X, bytes);
|
||||
TEST_CF_SECRET(Y, bytes);
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign(X, Y, &m, 0);
|
||||
|
||||
TEST_CF_PUBLIC(X, bytes);
|
||||
TEST_CF_PUBLIC(Y, bytes);
|
||||
|
||||
TEST_ASSERT(memcmp(X, Y, bytes) != 0);
|
||||
|
||||
/* condition is true */
|
||||
TEST_CF_SECRET(X, bytes);
|
||||
TEST_CF_SECRET(Y, bytes);
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_assign(X, Y, &m, 1);
|
||||
|
||||
TEST_CF_PUBLIC(X, bytes);
|
||||
TEST_CF_PUBLIC(Y, bytes);
|
||||
|
||||
/* Check if the given length is copied even it is smaller
|
||||
than the length of the given MPIs. */
|
||||
if (copy_limbs < limbs) {
|
||||
TEST_MEMORY_COMPARE(X, copy_bytes, Y, copy_bytes);
|
||||
TEST_ASSERT(memcmp(X, Y, bytes) != 0);
|
||||
} else {
|
||||
TEST_MEMORY_COMPARE(X, bytes, Y, bytes);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(Y);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(buff_m);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_cond_swap(char *input_X,
|
||||
char *input_Y,
|
||||
int input_bytes)
|
||||
{
|
||||
mbedtls_mpi_uint *tmp_X = NULL;
|
||||
mbedtls_mpi_uint *tmp_Y = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *Y = NULL;
|
||||
mbedtls_mpi_uint *buff_m = NULL;
|
||||
size_t limbs_X;
|
||||
size_t limbs_Y;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&tmp_X, &limbs_X, input_X), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&tmp_Y, &limbs_Y, input_Y), 0);
|
||||
|
||||
size_t limbs = limbs_X;
|
||||
size_t copy_limbs = CHARS_TO_LIMBS(input_bytes);
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
size_t copy_bytes = copy_limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(limbs_X, limbs_Y);
|
||||
TEST_ASSERT(copy_limbs <= limbs);
|
||||
|
||||
TEST_CALLOC(buff_m, copy_limbs);
|
||||
memset(buff_m, 0xFF, copy_limbs);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, buff_m, copy_limbs), 0);
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
memcpy(X, tmp_X, bytes);
|
||||
|
||||
TEST_CALLOC(Y, bytes);
|
||||
memcpy(Y, tmp_Y, bytes);
|
||||
|
||||
/* condition is false */
|
||||
TEST_CF_SECRET(X, bytes);
|
||||
TEST_CF_SECRET(Y, bytes);
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap(X, Y, &m, 0);
|
||||
|
||||
TEST_CF_PUBLIC(X, bytes);
|
||||
TEST_CF_PUBLIC(Y, bytes);
|
||||
|
||||
TEST_MEMORY_COMPARE(X, bytes, tmp_X, bytes);
|
||||
TEST_MEMORY_COMPARE(Y, bytes, tmp_Y, bytes);
|
||||
|
||||
/* condition is true */
|
||||
TEST_CF_SECRET(X, bytes);
|
||||
TEST_CF_SECRET(Y, bytes);
|
||||
|
||||
mbedtls_mpi_mod_raw_cond_swap(X, Y, &m, 1);
|
||||
|
||||
TEST_CF_PUBLIC(X, bytes);
|
||||
TEST_CF_PUBLIC(Y, bytes);
|
||||
|
||||
/* Check if the given length is copied even it is smaller
|
||||
than the length of the given MPIs. */
|
||||
if (copy_limbs < limbs) {
|
||||
TEST_MEMORY_COMPARE(X, copy_bytes, tmp_Y, copy_bytes);
|
||||
TEST_MEMORY_COMPARE(Y, copy_bytes, tmp_X, copy_bytes);
|
||||
TEST_ASSERT(memcmp(X, tmp_X, bytes) != 0);
|
||||
TEST_ASSERT(memcmp(X, tmp_Y, bytes) != 0);
|
||||
TEST_ASSERT(memcmp(Y, tmp_X, bytes) != 0);
|
||||
TEST_ASSERT(memcmp(Y, tmp_Y, bytes) != 0);
|
||||
} else {
|
||||
TEST_MEMORY_COMPARE(X, bytes, tmp_Y, bytes);
|
||||
TEST_MEMORY_COMPARE(Y, bytes, tmp_X, bytes);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(tmp_X);
|
||||
mbedtls_free(tmp_Y);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(Y);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(buff_m);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_sub(char *input_A,
|
||||
char *input_B,
|
||||
char *input_N,
|
||||
char *result)
|
||||
{
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *B = NULL;
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *res = NULL;
|
||||
size_t limbs_A;
|
||||
size_t limbs_B;
|
||||
size_t limbs_N;
|
||||
size_t limbs_res;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&B, &limbs_B, input_B), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0);
|
||||
|
||||
size_t limbs = limbs_N;
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(limbs_A, limbs);
|
||||
TEST_EQUAL(limbs_B, limbs);
|
||||
TEST_EQUAL(limbs_res, limbs);
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, N, limbs), 0);
|
||||
|
||||
mbedtls_mpi_mod_raw_sub(X, A, B, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
|
||||
/* alias X to A */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_sub(X, X, B, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
|
||||
/* alias X to B */
|
||||
memcpy(X, B, bytes);
|
||||
mbedtls_mpi_mod_raw_sub(X, A, X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
|
||||
/* A == B: alias A and B */
|
||||
if (memcmp(A, B, bytes) == 0) {
|
||||
mbedtls_mpi_mod_raw_sub(X, A, A, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
|
||||
/* X, A, B all aliased together */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_sub(X, X, X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(B);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(res);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */
|
||||
void mpi_mod_raw_fix_quasi_reduction(char *input_N,
|
||||
char *input_X,
|
||||
char *result)
|
||||
{
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *res = NULL;
|
||||
mbedtls_mpi_uint *tmp = NULL;
|
||||
size_t limbs_X;
|
||||
size_t limbs_N;
|
||||
size_t limbs_res;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0);
|
||||
|
||||
size_t limbs = limbs_N;
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(limbs_X, limbs);
|
||||
TEST_EQUAL(limbs_res, limbs);
|
||||
|
||||
TEST_CALLOC(tmp, limbs);
|
||||
memcpy(tmp, X, bytes);
|
||||
|
||||
/* Check that 0 <= X < 2N */
|
||||
mbedtls_mpi_uint c = mbedtls_mpi_core_sub(tmp, X, N, limbs);
|
||||
TEST_ASSERT(c || mbedtls_mpi_core_lt_ct(tmp, N, limbs));
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, N, limbs), 0);
|
||||
|
||||
mbedtls_mpi_mod_raw_fix_quasi_reduction(X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, res, bytes);
|
||||
|
||||
exit:
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(res);
|
||||
mbedtls_free(tmp);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_mul(char *input_A,
|
||||
char *input_B,
|
||||
char *input_N,
|
||||
char *result)
|
||||
{
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *B = NULL;
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *R = NULL;
|
||||
mbedtls_mpi_uint *T = NULL;
|
||||
size_t limbs_A;
|
||||
size_t limbs_B;
|
||||
size_t limbs_N;
|
||||
size_t limbs_R;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&B, &limbs_B, input_B), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_core(&R, &limbs_R, result), 0);
|
||||
|
||||
const size_t limbs = limbs_N;
|
||||
const size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(limbs_A, limbs);
|
||||
TEST_EQUAL(limbs_B, limbs);
|
||||
TEST_EQUAL(limbs_R, limbs);
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, N, limbs), 0);
|
||||
|
||||
const size_t limbs_T = limbs * 2 + 1;
|
||||
TEST_CALLOC(T, limbs_T);
|
||||
|
||||
mbedtls_mpi_mod_raw_mul(X, A, B, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* alias X to A */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_mul(X, X, B, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* alias X to B */
|
||||
memcpy(X, B, bytes);
|
||||
mbedtls_mpi_mod_raw_mul(X, A, X, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* A == B: alias A and B */
|
||||
if (memcmp(A, B, bytes) == 0) {
|
||||
mbedtls_mpi_mod_raw_mul(X, A, A, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* X, A, B all aliased together */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_mul(X, X, X, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
}
|
||||
/* A != B: test B * A */
|
||||
else {
|
||||
mbedtls_mpi_mod_raw_mul(X, B, A, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* B * A: alias X to A */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_mul(X, B, X, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
|
||||
/* B + A: alias X to B */
|
||||
memcpy(X, B, bytes);
|
||||
mbedtls_mpi_mod_raw_mul(X, X, A, &m, T);
|
||||
TEST_MEMORY_COMPARE(X, bytes, R, bytes);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(B);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(R);
|
||||
mbedtls_free(T);
|
||||
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_inv_prime(char *input_N, char *input_A, char *input_X)
|
||||
{
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
size_t A_limbs, N_limbs, X_limbs;
|
||||
mbedtls_mpi_uint *Y = NULL;
|
||||
mbedtls_mpi_uint *T = NULL;
|
||||
const mbedtls_mpi_uint *R2 = NULL;
|
||||
|
||||
/* Legacy MPIs for computing R2 */
|
||||
mbedtls_mpi N_mpi; /* gets set up manually, aliasing N, so no need to free */
|
||||
mbedtls_mpi R2_mpi;
|
||||
mbedtls_mpi_init(&R2_mpi);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &N_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X));
|
||||
TEST_CALLOC(Y, N_limbs);
|
||||
|
||||
TEST_EQUAL(A_limbs, N_limbs);
|
||||
TEST_EQUAL(X_limbs, N_limbs);
|
||||
|
||||
N_mpi.s = 1;
|
||||
N_mpi.p = N;
|
||||
N_mpi.n = N_limbs;
|
||||
TEST_EQUAL(0, mbedtls_mpi_core_get_mont_r2_unsafe(&R2_mpi, &N_mpi));
|
||||
TEST_EQUAL(0, mbedtls_mpi_grow(&R2_mpi, N_limbs));
|
||||
R2 = R2_mpi.p;
|
||||
|
||||
size_t working_limbs = mbedtls_mpi_mod_raw_inv_prime_working_limbs(N_limbs);
|
||||
|
||||
/* No point exactly duplicating the code in mbedtls_mpi_mod_raw_inv_prime_working_limbs()
|
||||
* to see if the output is correct, but we can check that it's in a
|
||||
* reasonable range. The current calculation works out as
|
||||
* `1 + N_limbs * (welem + 4)`, where welem is the number of elements in
|
||||
* the window (1 << 1 up to 1 << 6).
|
||||
*/
|
||||
size_t min_expected_working_limbs = 1 + N_limbs * 5;
|
||||
size_t max_expected_working_limbs = 1 + N_limbs * 68;
|
||||
|
||||
TEST_LE_U(min_expected_working_limbs, working_limbs);
|
||||
TEST_LE_U(working_limbs, max_expected_working_limbs);
|
||||
|
||||
/* Should also be at least mbedtls_mpi_core_montmul_working_limbs() */
|
||||
TEST_LE_U(mbedtls_mpi_core_montmul_working_limbs(N_limbs),
|
||||
working_limbs);
|
||||
|
||||
TEST_CALLOC(T, working_limbs);
|
||||
|
||||
mbedtls_mpi_mod_raw_inv_prime(Y, A, N, N_limbs, R2, T);
|
||||
|
||||
TEST_EQUAL(0, memcmp(X, Y, N_limbs * sizeof(mbedtls_mpi_uint)));
|
||||
|
||||
/* Check when output aliased to input */
|
||||
|
||||
mbedtls_mpi_mod_raw_inv_prime(A, A, N, N_limbs, R2, T);
|
||||
|
||||
TEST_EQUAL(0, memcmp(X, A, N_limbs * sizeof(mbedtls_mpi_uint)));
|
||||
|
||||
exit:
|
||||
mbedtls_free(T);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(Y);
|
||||
mbedtls_mpi_free(&R2_mpi);
|
||||
// R2 doesn't need to be freed as it is only aliasing R2_mpi
|
||||
// N_mpi doesn't need to be freed as it is only aliasing N
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_add(char *input_N,
|
||||
char *input_A, char *input_B,
|
||||
char *input_S)
|
||||
{
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *B = NULL;
|
||||
mbedtls_mpi_uint *S = NULL;
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
size_t A_limbs, B_limbs, N_limbs, S_limbs;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&B, &B_limbs, input_B));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &N_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&S, &S_limbs, input_S));
|
||||
|
||||
/* Modulus gives the number of limbs; all inputs must have the same. */
|
||||
size_t limbs = N_limbs;
|
||||
size_t bytes = limbs * sizeof(*A);
|
||||
|
||||
TEST_EQUAL(A_limbs, limbs);
|
||||
TEST_EQUAL(B_limbs, limbs);
|
||||
TEST_EQUAL(S_limbs, limbs);
|
||||
|
||||
TEST_CALLOC(X, limbs);
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_modulus_setup(
|
||||
&m, N, limbs), 0);
|
||||
|
||||
/* A + B => Correct result */
|
||||
mbedtls_mpi_mod_raw_add(X, A, B, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
/* A + B: alias X to A => Correct result */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_add(X, X, B, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
/* A + B: alias X to B => Correct result */
|
||||
memcpy(X, B, bytes);
|
||||
mbedtls_mpi_mod_raw_add(X, A, X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
if (memcmp(A, B, bytes) == 0) {
|
||||
/* A == B: alias A and B */
|
||||
|
||||
/* A + A => Correct result */
|
||||
mbedtls_mpi_mod_raw_add(X, A, A, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
/* A + A: X, A, B all aliased together => Correct result */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_add(X, X, X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
} else {
|
||||
/* A != B: test B + A */
|
||||
|
||||
/* B + A => Correct result */
|
||||
mbedtls_mpi_mod_raw_add(X, B, A, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
/* B + A: alias X to A => Correct result */
|
||||
memcpy(X, A, bytes);
|
||||
mbedtls_mpi_mod_raw_add(X, B, X, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
|
||||
/* B + A: alias X to B => Correct result */
|
||||
memcpy(X, B, bytes);
|
||||
mbedtls_mpi_mod_raw_add(X, X, A, &m);
|
||||
TEST_MEMORY_COMPARE(X, bytes, S, bytes);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(B);
|
||||
mbedtls_free(S);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(X);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_canonical_to_modulus_rep(const char *input_N, int rep,
|
||||
const char *input_A,
|
||||
const char *input_X)
|
||||
{
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
size_t A_limbs = 0;;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
size_t X_limbs = 0;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_modulus(&N, input_N, rep));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X));
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_raw_canonical_to_modulus_rep(A, &N));
|
||||
TEST_MEMORY_COMPARE(A, A_limbs * sizeof(mbedtls_mpi_uint),
|
||||
X, X_limbs * sizeof(mbedtls_mpi_uint));
|
||||
|
||||
exit:
|
||||
mbedtls_test_mpi_mod_modulus_free_with_limbs(&N);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(X);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_modulus_to_canonical_rep(const char *input_N, int rep,
|
||||
const char *input_A,
|
||||
const char *input_X)
|
||||
{
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
size_t A_limbs = 0;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
size_t X_limbs = 0;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_modulus(&N, input_N, rep));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X));
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_raw_modulus_to_canonical_rep(A, &N));
|
||||
TEST_MEMORY_COMPARE(A, A_limbs * sizeof(mbedtls_mpi_uint),
|
||||
X, X_limbs * sizeof(mbedtls_mpi_uint));
|
||||
|
||||
exit:
|
||||
mbedtls_test_mpi_mod_modulus_free_with_limbs(&N);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(X);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_to_mont_rep(char *input_N, char *input_A, char *input_X)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *R = NULL; /* for result of low-level conversion */
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *T = NULL;
|
||||
size_t n_limbs, a_limbs, x_limbs;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
/* Read inputs */
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X));
|
||||
|
||||
/* Number to convert must have same number of limbs as modulus */
|
||||
TEST_EQUAL(a_limbs, n_limbs);
|
||||
|
||||
/* Higher-level conversion is in-place, so expected result must have the
|
||||
* same number of limbs too */
|
||||
TEST_EQUAL(x_limbs, n_limbs);
|
||||
|
||||
size_t limbs = n_limbs;
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
/* 1. Test low-level function first */
|
||||
|
||||
/* It has separate output, and requires temporary working storage */
|
||||
size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs(limbs);
|
||||
TEST_CALLOC(T, temp_limbs);
|
||||
TEST_CALLOC(R, limbs);
|
||||
mbedtls_mpi_core_to_mont_rep(R, A, N, n_limbs,
|
||||
m.rep.mont.mm, m.rep.mont.rr, T);
|
||||
/* Test that the low-level function gives the required value */
|
||||
TEST_MEMORY_COMPARE(R, bytes, X, bytes);
|
||||
|
||||
/* Test when output is aliased to input */
|
||||
memcpy(R, A, bytes);
|
||||
mbedtls_mpi_core_to_mont_rep(R, R, N, n_limbs,
|
||||
m.rep.mont.mm, m.rep.mont.rr, T);
|
||||
TEST_MEMORY_COMPARE(R, bytes, X, bytes);
|
||||
|
||||
/* 2. Test higher-level cannonical to Montgomery conversion */
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep(A, &m));
|
||||
|
||||
/* The result matches expected value */
|
||||
TEST_MEMORY_COMPARE(A, bytes, X, bytes);
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(T);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(R);
|
||||
mbedtls_free(X);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_from_mont_rep(char *input_N, char *input_A, char *input_X)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *R = NULL; /* for result of low-level conversion */
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *T = NULL;
|
||||
size_t n_limbs, a_limbs, x_limbs;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
/* Read inputs */
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X));
|
||||
|
||||
/* Number to convert must have same number of limbs as modulus */
|
||||
TEST_EQUAL(a_limbs, n_limbs);
|
||||
|
||||
/* Higher-level conversion is in-place, so expected result must have the
|
||||
* same number of limbs too */
|
||||
TEST_EQUAL(x_limbs, n_limbs);
|
||||
|
||||
size_t limbs = n_limbs;
|
||||
size_t bytes = limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
/* 1. Test low-level function first */
|
||||
|
||||
/* It has separate output, and requires temporary working storage */
|
||||
size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs(limbs);
|
||||
TEST_CALLOC(T, temp_limbs);
|
||||
TEST_CALLOC(R, limbs);
|
||||
mbedtls_mpi_core_from_mont_rep(R, A, N, n_limbs,
|
||||
m.rep.mont.mm, T);
|
||||
/* Test that the low-level function gives the required value */
|
||||
TEST_MEMORY_COMPARE(R, bytes, X, bytes);
|
||||
|
||||
/* Test when output is aliased to input */
|
||||
memcpy(R, A, bytes);
|
||||
mbedtls_mpi_core_from_mont_rep(R, R, N, n_limbs,
|
||||
m.rep.mont.mm, T);
|
||||
TEST_MEMORY_COMPARE(R, bytes, X, bytes);
|
||||
|
||||
/* 2. Test higher-level Montgomery to cannonical conversion */
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep(A, &m));
|
||||
|
||||
/* The result matches expected value */
|
||||
TEST_MEMORY_COMPARE(A, bytes, X, bytes);
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(T);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(R);
|
||||
mbedtls_free(X);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_mod_raw_neg(char *input_N, char *input_A, char *input_X)
|
||||
{
|
||||
mbedtls_mpi_uint *N = NULL;
|
||||
mbedtls_mpi_uint *A = NULL;
|
||||
mbedtls_mpi_uint *X = NULL;
|
||||
mbedtls_mpi_uint *R = NULL;
|
||||
mbedtls_mpi_uint *Z = NULL;
|
||||
size_t n_limbs, a_limbs, x_limbs, bytes;
|
||||
|
||||
mbedtls_mpi_mod_modulus m;
|
||||
mbedtls_mpi_mod_modulus_init(&m);
|
||||
|
||||
/* Read inputs */
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A));
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X));
|
||||
|
||||
TEST_EQUAL(a_limbs, n_limbs);
|
||||
TEST_EQUAL(x_limbs, n_limbs);
|
||||
bytes = n_limbs * sizeof(mbedtls_mpi_uint);
|
||||
|
||||
TEST_CALLOC(R, n_limbs);
|
||||
TEST_CALLOC(Z, n_limbs);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs));
|
||||
|
||||
/* Neg( A == 0 ) => Zero result */
|
||||
mbedtls_mpi_mod_raw_neg(R, Z, &m);
|
||||
TEST_MEMORY_COMPARE(R, bytes, Z, bytes);
|
||||
|
||||
/* Neg( A == N ) => Zero result */
|
||||
mbedtls_mpi_mod_raw_neg(R, N, &m);
|
||||
TEST_MEMORY_COMPARE(R, bytes, Z, bytes);
|
||||
|
||||
/* Neg( A ) => Correct result */
|
||||
mbedtls_mpi_mod_raw_neg(R, A, &m);
|
||||
TEST_MEMORY_COMPARE(R, bytes, X, bytes);
|
||||
|
||||
/* Neg( A ): alias A to R => Correct result */
|
||||
mbedtls_mpi_mod_raw_neg(A, A, &m);
|
||||
TEST_MEMORY_COMPARE(A, bytes, X, bytes);
|
||||
exit:
|
||||
mbedtls_mpi_mod_modulus_free(&m);
|
||||
mbedtls_free(N);
|
||||
mbedtls_free(A);
|
||||
mbedtls_free(X);
|
||||
mbedtls_free(R);
|
||||
mbedtls_free(Z);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,340 +0,0 @@
|
||||
MPI core random basic: 0..1
|
||||
mpi_core_random_basic:0:"01":0
|
||||
|
||||
MPI core random basic: 0..2
|
||||
mpi_core_random_basic:0:"02":0
|
||||
|
||||
MPI core random basic: 1..2
|
||||
mpi_core_random_basic:1:"02":0
|
||||
|
||||
MPI core random basic: 2^30..2^31
|
||||
mpi_core_random_basic:0x40000000:"80000000":0
|
||||
|
||||
MPI core random basic: 0..2^128
|
||||
mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0
|
||||
|
||||
MPI core random basic: 2^30..2^129
|
||||
mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0
|
||||
|
||||
# Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE
|
||||
# and for mpi_XXX_random_values where we want to return NOT_ACCEPTABLE
|
||||
# but this isn't checked at runtime.
|
||||
MPI core random basic: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
|
||||
mpi_core_random_basic:0x0fffffff:"10000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
||||
|
||||
MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE)
|
||||
mpi_legacy_random_values:0x0fffffff:"10000001"
|
||||
|
||||
MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (Mont)
|
||||
mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (canon)
|
||||
mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
|
||||
mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
||||
|
||||
MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE)
|
||||
mpi_legacy_random_values:0x1fffffff:"20000001"
|
||||
|
||||
MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (Mont)
|
||||
mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (canon)
|
||||
mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
|
||||
mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
||||
|
||||
MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE)
|
||||
mpi_legacy_random_values:0x3fffffff:"40000001"
|
||||
|
||||
MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (Mont)
|
||||
mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (canon)
|
||||
mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
|
||||
mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
||||
|
||||
MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE)
|
||||
mpi_legacy_random_values:0x7fffffff:"80000001"
|
||||
|
||||
MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (Mont)
|
||||
mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (canon)
|
||||
mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random in range: 1..2
|
||||
mpi_random_many:1:"02":1000
|
||||
|
||||
MPI random in range: 1..3
|
||||
mpi_random_many:1:"03":1000
|
||||
|
||||
MPI random in range: 1..4
|
||||
mpi_random_many:1:"04":1000
|
||||
|
||||
MPI random in range: 1..5
|
||||
mpi_random_many:1:"05":1000
|
||||
|
||||
MPI random in range: 1..6
|
||||
mpi_random_many:1:"06":1000
|
||||
|
||||
MPI random in range: 1..7
|
||||
mpi_random_many:1:"07":1000
|
||||
|
||||
MPI random in range: 1..8
|
||||
mpi_random_many:1:"08":1000
|
||||
|
||||
MPI random in range: 1..9
|
||||
mpi_random_many:1:"09":1000
|
||||
|
||||
MPI random in range: 1..10
|
||||
mpi_random_many:1:"0a":1000
|
||||
|
||||
MPI random in range: 1..11
|
||||
mpi_random_many:1:"0b":1000
|
||||
|
||||
MPI random in range: 1..12
|
||||
mpi_random_many:1:"0c":1000
|
||||
|
||||
MPI random in range: 1..255
|
||||
mpi_random_many:1:"ff":200
|
||||
|
||||
MPI random in range: 1..256
|
||||
mpi_random_many:1:"0100":200
|
||||
|
||||
MPI random in range: 1..257
|
||||
mpi_random_many:1:"0101":200
|
||||
|
||||
MPI random in range: 1..272
|
||||
mpi_random_many:1:"0110":200
|
||||
|
||||
MPI random in range: 1..2^64-1
|
||||
mpi_random_many:1:"ffffffffffffffff":100
|
||||
|
||||
MPI random in range: 1..2^64
|
||||
mpi_random_many:1:"010000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^64+1
|
||||
mpi_random_many:1:"010000000000000001":100
|
||||
|
||||
MPI random in range: 1..2^64+2^63
|
||||
mpi_random_many:1:"018000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^65-1
|
||||
mpi_random_many:1:"01ffffffffffffffff":100
|
||||
|
||||
MPI random in range: 1..2^65
|
||||
mpi_random_many:1:"020000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^65+1
|
||||
mpi_random_many:1:"020000000000000001":100
|
||||
|
||||
MPI random in range: 1..2^65+2^64
|
||||
mpi_random_many:1:"030000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^66+2^65
|
||||
mpi_random_many:1:"060000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^71-1
|
||||
mpi_random_many:1:"7fffffffffffffffff":100
|
||||
|
||||
MPI random in range: 1..2^71
|
||||
mpi_random_many:1:"800000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^71+1
|
||||
mpi_random_many:1:"800000000000000001":100
|
||||
|
||||
MPI random in range: 1..2^71+2^70
|
||||
mpi_random_many:1:"c00000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^72-1
|
||||
mpi_random_many:1:"ffffffffffffffffff":100
|
||||
|
||||
MPI random in range: 1..2^72
|
||||
mpi_random_many:1:"01000000000000000000":100
|
||||
|
||||
MPI random in range: 1..2^72+1
|
||||
mpi_random_many:1:"01000000000000000001":100
|
||||
|
||||
MPI random in range: 1..2^72+2^71
|
||||
mpi_random_many:1:"01800000000000000000":100
|
||||
|
||||
MPI random in range: 0..1
|
||||
mpi_random_many:0:"04":10000
|
||||
|
||||
MPI random in range: 0..4
|
||||
mpi_random_many:0:"04":10000
|
||||
|
||||
MPI random in range: 2..4
|
||||
mpi_random_many:2:"04":10000
|
||||
|
||||
MPI random in range: 3..4
|
||||
mpi_random_many:3:"04":10000
|
||||
|
||||
MPI random in range: smaller result
|
||||
mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0
|
||||
|
||||
MPI random in range: same size result (32-bit limbs)
|
||||
mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0
|
||||
|
||||
MPI random in range: same size result (64-bit limbs)
|
||||
mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0
|
||||
|
||||
MPI random in range: larger result
|
||||
mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0
|
||||
|
||||
## The "0 limb in upper bound" tests rely on the fact that
|
||||
## mbedtls_mpi_read_binary() bases the size of the MPI on the size of
|
||||
## the input, without first checking for leading zeros. If this was
|
||||
## not the case, the tests would still pass, but would not exercise
|
||||
## the advertised behavior.
|
||||
MPI random in range: leading 0 limb in upper bound #0
|
||||
mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0
|
||||
|
||||
MPI random in range: leading 0 limb in upper bound #1
|
||||
mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0
|
||||
|
||||
MPI random in range: leading 0 limb in upper bound #2
|
||||
mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0
|
||||
|
||||
MPI random in range: leading 0 limb in upper bound #3
|
||||
mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0
|
||||
|
||||
MPI random in range: leading 0 limb in upper bound #4
|
||||
mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0
|
||||
|
||||
MPI random in range: previously small >0
|
||||
mpi_random_sizes:1:"1234567890":4:1
|
||||
|
||||
MPI random in range: previously small <0
|
||||
mpi_random_sizes:1:"1234567890":4:-1
|
||||
|
||||
MPI random in range: previously large >0
|
||||
mpi_random_sizes:1:"1234":4:65
|
||||
|
||||
MPI random in range: previously large <0
|
||||
mpi_random_sizes:1:"1234":4:-65
|
||||
|
||||
MPI random bad arguments: min < 0
|
||||
mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random bad arguments: min = N = 0
|
||||
mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random bad arguments: min = N = 1
|
||||
mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random bad arguments: min > N = 0
|
||||
mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random bad arguments: min > N = 1
|
||||
mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random bad arguments: min > N = 1, 0 limb in upper bound
|
||||
mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random legacy=core: 0..1
|
||||
mpi_legacy_random_values:0:"01"
|
||||
|
||||
MPI random legacy=core: 0..2
|
||||
mpi_legacy_random_values:0:"02"
|
||||
|
||||
MPI random legacy=core: 1..2
|
||||
mpi_legacy_random_values:1:"02"
|
||||
|
||||
MPI random legacy=core: 2^30..2^31
|
||||
mpi_legacy_random_values:0x40000000:"80000000"
|
||||
|
||||
MPI random legacy=core: 2^31-1..2^32-1
|
||||
mpi_legacy_random_values:0x7fffffff:"ffffffff"
|
||||
|
||||
MPI random legacy=core: 0..2^256
|
||||
mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000"
|
||||
|
||||
MPI random legacy=core: 0..2^256+1
|
||||
mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001"
|
||||
|
||||
MPI random mod=core: 0..1 (Mont)
|
||||
mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 0..1 (canon)
|
||||
mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod=core: 0..3 (Mont)
|
||||
mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 0..3 (canon)
|
||||
mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod=core: 1..3 (Mont)
|
||||
mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 1..3 (canon)
|
||||
mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod=core: 2^30..2^31-1 (Mont)
|
||||
mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^30..2^31-1 (canon)
|
||||
mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod=core: 2^31-1..2^32-1 (Mont)
|
||||
mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 2^31-1..2^32-1 (canon)
|
||||
mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod=core: 0..2^256+1 (Mont)
|
||||
mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY
|
||||
|
||||
MPI random mod=core: 0..2^256+1 (canon)
|
||||
mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_OPT_RED
|
||||
|
||||
MPI random mod validation: 1 limb, good, 0..1
|
||||
mpi_mod_random_validation:0:"1":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 1..3
|
||||
mpi_mod_random_validation:1:"3":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 2..3
|
||||
mpi_mod_random_validation:2:"3":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 3..5
|
||||
mpi_mod_random_validation:3:"5":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 4..5
|
||||
mpi_mod_random_validation:4:"5":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 5..7
|
||||
mpi_mod_random_validation:5:"7":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 6..7
|
||||
mpi_mod_random_validation:6:"7":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, good, 0..0x123
|
||||
mpi_mod_random_validation:0:"123":0:0
|
||||
|
||||
MPI random mod validation: 2+ limbs, good
|
||||
mpi_mod_random_validation:0:"01234567890123456789":0:0
|
||||
|
||||
MPI random mod validation: 1 limb, output null
|
||||
mpi_mod_random_validation:0:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random mod validation: 1 limb, output too large
|
||||
mpi_mod_random_validation:0:"123":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random mod validation: 2+ limbs, output too small
|
||||
mpi_mod_random_validation:0:"01234567890123456789":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random mod validation: 2+ limbs, output too large
|
||||
mpi_mod_random_validation:0:"01234567890123456789":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random mod validation: min == upper bound
|
||||
mpi_mod_random_validation:0x123:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
MPI random mod validation: min > upper bound
|
||||
mpi_mod_random_validation:0x124:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
@@ -1,479 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
/* Dedicated test suite for mbedtls_mpi_core_random() and the upper-layer
|
||||
* functions. Due to the complexity of how these functions are tested,
|
||||
* we test all the layers in a single test suite, unlike the way other
|
||||
* functions are tested with each layer in its own test suite.
|
||||
*
|
||||
* Test strategy
|
||||
* =============
|
||||
*
|
||||
* There are three main goals for testing random() functions:
|
||||
* - Parameter validation.
|
||||
* - Correctness of outputs (well-formed, in range).
|
||||
* - Distribution of outputs.
|
||||
*
|
||||
* We test parameter validation in a standard way, with unit tests with
|
||||
* positive and negative cases:
|
||||
* - mbedtls_mpi_core_random(): negative cases for mpi_core_random_basic.
|
||||
* - mbedtls_mpi_mod_raw_random(), mbedtls_mpi_mod_random(): negative
|
||||
* cases for mpi_mod_random_validation.
|
||||
* - mbedtls_mpi_random(): mpi_random_fail.
|
||||
*
|
||||
* We test the correctness of outputs in positive tests:
|
||||
* - mbedtls_mpi_core_random(): positive cases for mpi_core_random_basic,
|
||||
* and mpi_random_many.
|
||||
* - mbedtls_mpi_mod_raw_random(), mbedtls_mpi_mod_random(): tested indirectly
|
||||
* via mpi_mod_random_values.
|
||||
* - mbedtls_mpi_random(): mpi_random_sizes, plus indirectly via
|
||||
* mpi_random_values.
|
||||
*
|
||||
* We test the distribution of outputs only for mbedtls_mpi_core_random(),
|
||||
* in mpi_random_many, which runs the function multiple times. This also
|
||||
* helps in validating the output range, through test cases with a small
|
||||
* range where any output out of range would be very likely to lead to a
|
||||
* test failure. For the other functions, we validate the distribution
|
||||
* indirectly by testing that these functions consume the random generator
|
||||
* in the same way as mbedtls_mpi_core_random(). This is done in
|
||||
* mpi_mod_random_values and mpi_legacy_random_values.
|
||||
*/
|
||||
|
||||
#include "mbedtls/bignum.h"
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "bignum_core.h"
|
||||
#include "bignum_mod_raw.h"
|
||||
#include "constant_time_internal.h"
|
||||
|
||||
/* This test suite only manipulates non-negative bignums. */
|
||||
static int sign_is_valid(const mbedtls_mpi *X)
|
||||
{
|
||||
return X->s == 1;
|
||||
}
|
||||
|
||||
/* A common initializer for test functions that should generate the same
|
||||
* sequences for reproducibility and good coverage. */
|
||||
const mbedtls_test_rnd_pseudo_info rnd_pseudo_seed = {
|
||||
/* 16-word key */
|
||||
{ 'T', 'h', 'i', 's', ' ', 'i', 's', ' ',
|
||||
'a', ' ', 's', 'e', 'e', 'd', '!', 0 },
|
||||
/* 2-word initial state, should be zero */
|
||||
0, 0
|
||||
};
|
||||
|
||||
/* Test whether bytes represents (in big-endian base 256) a number b that
|
||||
* is significantly above a power of 2. That is, b must not have a long run
|
||||
* of unset bits after the most significant bit.
|
||||
*
|
||||
* Let n be the bit-size of b, i.e. the integer such that 2^n <= b < 2^{n+1}.
|
||||
* This function returns 1 if, when drawing a number between 0 and b,
|
||||
* the probability that this number is at least 2^n is not negligible.
|
||||
* This probability is (b - 2^n) / b and this function checks that this
|
||||
* number is above some threshold A. The threshold value is heuristic and
|
||||
* based on the needs of mpi_random_many().
|
||||
*/
|
||||
static int is_significantly_above_a_power_of_2(data_t *bytes)
|
||||
{
|
||||
const uint8_t *p = bytes->x;
|
||||
size_t len = bytes->len;
|
||||
unsigned x;
|
||||
|
||||
/* Skip leading null bytes */
|
||||
while (len > 0 && p[0] == 0) {
|
||||
++p;
|
||||
--len;
|
||||
}
|
||||
/* 0 is not significantly above a power of 2 */
|
||||
if (len == 0) {
|
||||
return 0;
|
||||
}
|
||||
/* Extract the (up to) 2 most significant bytes */
|
||||
if (len == 1) {
|
||||
x = p[0];
|
||||
} else {
|
||||
x = (p[0] << 8) | p[1];
|
||||
}
|
||||
|
||||
/* Shift the most significant bit of x to position 8 and mask it out */
|
||||
while ((x & 0xfe00) != 0) {
|
||||
x >>= 1;
|
||||
}
|
||||
x &= 0x00ff;
|
||||
|
||||
/* At this point, x = floor((b - 2^n) / 2^(n-8)). b is significantly above
|
||||
* a power of 2 iff x is significantly above 0 compared to 2^8.
|
||||
* Testing x >= 2^4 amounts to picking A = 1/16 in the function
|
||||
* description above. */
|
||||
return x >= 0x10;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_BIGNUM_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_core_random_basic(int min, char *bound_bytes, int expected_ret)
|
||||
{
|
||||
/* Same RNG as in mpi_random_values */
|
||||
mbedtls_test_rnd_pseudo_info rnd = rnd_pseudo_seed;
|
||||
size_t limbs;
|
||||
mbedtls_mpi_uint *lower_bound = NULL;
|
||||
mbedtls_mpi_uint *upper_bound = NULL;
|
||||
mbedtls_mpi_uint *result = NULL;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&upper_bound, &limbs,
|
||||
bound_bytes));
|
||||
TEST_CALLOC(lower_bound, limbs);
|
||||
lower_bound[0] = min;
|
||||
TEST_CALLOC(result, limbs);
|
||||
|
||||
TEST_EQUAL(expected_ret,
|
||||
mbedtls_mpi_core_random(result, min, upper_bound, limbs,
|
||||
mbedtls_test_rnd_pseudo_rand, &rnd));
|
||||
|
||||
if (expected_ret == 0) {
|
||||
TEST_EQUAL(0, mbedtls_mpi_core_lt_ct(result, lower_bound, limbs));
|
||||
TEST_ASSERT(0 != mbedtls_mpi_core_lt_ct(result, upper_bound, limbs));
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(lower_bound);
|
||||
mbedtls_free(upper_bound);
|
||||
mbedtls_free(result);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_legacy_random_values(int min, char *max_hex)
|
||||
{
|
||||
/* Same RNG as in mpi_core_random_basic */
|
||||
mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed;
|
||||
mbedtls_test_rnd_pseudo_info rnd_legacy;
|
||||
memcpy(&rnd_legacy, &rnd_core, sizeof(rnd_core));
|
||||
mbedtls_mpi max_legacy;
|
||||
mbedtls_mpi_init(&max_legacy);
|
||||
mbedtls_mpi_uint *R_core = NULL;
|
||||
mbedtls_mpi R_legacy;
|
||||
mbedtls_mpi_init(&R_legacy);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi(&max_legacy, max_hex));
|
||||
size_t limbs = max_legacy.n;
|
||||
TEST_CALLOC(R_core, limbs);
|
||||
|
||||
/* Call the legacy function and the core function with the same random
|
||||
* stream. */
|
||||
int core_ret = mbedtls_mpi_core_random(R_core, min, max_legacy.p, limbs,
|
||||
mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_core);
|
||||
int legacy_ret = mbedtls_mpi_random(&R_legacy, min, &max_legacy,
|
||||
mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_legacy);
|
||||
|
||||
/* They must return the same status, and, on success, output the
|
||||
* same number, with the same limb count. */
|
||||
TEST_EQUAL(core_ret, legacy_ret);
|
||||
if (core_ret == 0) {
|
||||
TEST_MEMORY_COMPARE(R_core, limbs * ciL,
|
||||
R_legacy.p, R_legacy.n * ciL);
|
||||
}
|
||||
|
||||
/* Also check that they have consumed the RNG in the same way. */
|
||||
/* This may theoretically fail on rare platforms with padding in
|
||||
* the structure! If this is a problem in practice, change to a
|
||||
* field-by-field comparison. */
|
||||
TEST_MEMORY_COMPARE(&rnd_core, sizeof(rnd_core),
|
||||
&rnd_legacy, sizeof(rnd_legacy));
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&max_legacy);
|
||||
mbedtls_free(R_core);
|
||||
mbedtls_mpi_free(&R_legacy);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_WITH_MPI_UINT */
|
||||
void mpi_mod_random_values(int min, char *max_hex, int rep)
|
||||
{
|
||||
/* Same RNG as in mpi_core_random_basic */
|
||||
mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed;
|
||||
mbedtls_test_rnd_pseudo_info rnd_mod_raw;
|
||||
memcpy(&rnd_mod_raw, &rnd_core, sizeof(rnd_core));
|
||||
mbedtls_test_rnd_pseudo_info rnd_mod;
|
||||
memcpy(&rnd_mod, &rnd_core, sizeof(rnd_core));
|
||||
mbedtls_mpi_uint *R_core = NULL;
|
||||
mbedtls_mpi_uint *R_mod_raw = NULL;
|
||||
mbedtls_mpi_uint *R_mod_digits = NULL;
|
||||
mbedtls_mpi_mod_residue R_mod;
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_modulus(&N, max_hex, rep), 0);
|
||||
TEST_CALLOC(R_core, N.limbs);
|
||||
TEST_CALLOC(R_mod_raw, N.limbs);
|
||||
TEST_CALLOC(R_mod_digits, N.limbs);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&R_mod, &N,
|
||||
R_mod_digits, N.limbs),
|
||||
0);
|
||||
|
||||
/* Call the core and mod random() functions with the same random stream. */
|
||||
int core_ret = mbedtls_mpi_core_random(R_core,
|
||||
min, N.p, N.limbs,
|
||||
mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_core);
|
||||
int mod_raw_ret = mbedtls_mpi_mod_raw_random(R_mod_raw,
|
||||
min, &N,
|
||||
mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_mod_raw);
|
||||
int mod_ret = mbedtls_mpi_mod_random(&R_mod,
|
||||
min, &N,
|
||||
mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_mod);
|
||||
|
||||
/* They must return the same status, and, on success, output the
|
||||
* same number, with the same limb count. */
|
||||
TEST_EQUAL(core_ret, mod_raw_ret);
|
||||
TEST_EQUAL(core_ret, mod_ret);
|
||||
if (core_ret == 0) {
|
||||
TEST_EQUAL(mbedtls_mpi_mod_raw_modulus_to_canonical_rep(R_mod_raw, &N),
|
||||
0);
|
||||
TEST_MEMORY_COMPARE(R_core, N.limbs * ciL,
|
||||
R_mod_raw, N.limbs * ciL);
|
||||
TEST_EQUAL(mbedtls_mpi_mod_raw_modulus_to_canonical_rep(R_mod_digits, &N),
|
||||
0);
|
||||
TEST_MEMORY_COMPARE(R_core, N.limbs * ciL,
|
||||
R_mod_digits, N.limbs * ciL);
|
||||
}
|
||||
|
||||
/* Also check that they have consumed the RNG in the same way. */
|
||||
/* This may theoretically fail on rare platforms with padding in
|
||||
* the structure! If this is a problem in practice, change to a
|
||||
* field-by-field comparison. */
|
||||
TEST_MEMORY_COMPARE(&rnd_core, sizeof(rnd_core),
|
||||
&rnd_mod_raw, sizeof(rnd_mod_raw));
|
||||
TEST_MEMORY_COMPARE(&rnd_core, sizeof(rnd_core),
|
||||
&rnd_mod, sizeof(rnd_mod));
|
||||
|
||||
exit:
|
||||
mbedtls_test_mpi_mod_modulus_free_with_limbs(&N);
|
||||
mbedtls_free(R_core);
|
||||
mbedtls_free(R_mod_raw);
|
||||
mbedtls_free(R_mod_digits);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_random_many(int min, char *bound_hex, int iterations)
|
||||
{
|
||||
/* Generate numbers in the range 1..bound-1. Do it iterations times.
|
||||
* This function assumes that the value of bound is at least 2 and
|
||||
* that iterations is large enough that a one-in-2^iterations chance
|
||||
* effectively never occurs.
|
||||
*/
|
||||
|
||||
data_t bound_bytes = { NULL, 0 };
|
||||
mbedtls_mpi_uint *upper_bound = NULL;
|
||||
size_t limbs;
|
||||
size_t n_bits;
|
||||
mbedtls_mpi_uint *result = NULL;
|
||||
size_t b;
|
||||
/* If upper_bound is small, stats[b] is the number of times the value b
|
||||
* has been generated. Otherwise stats[b] is the number of times a
|
||||
* value with bit b set has been generated. */
|
||||
size_t *stats = NULL;
|
||||
size_t stats_len;
|
||||
int full_stats;
|
||||
size_t i;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_test_read_mpi_core(&upper_bound, &limbs,
|
||||
bound_hex));
|
||||
TEST_CALLOC(result, limbs);
|
||||
|
||||
n_bits = mbedtls_mpi_core_bitlen(upper_bound, limbs);
|
||||
/* Consider a bound "small" if it's less than 2^5. This value is chosen
|
||||
* to be small enough that the probability of missing one value is
|
||||
* negligible given the number of iterations. It must be less than
|
||||
* 256 because some of the code below assumes that "small" values
|
||||
* fit in a byte. */
|
||||
if (n_bits <= 5) {
|
||||
full_stats = 1;
|
||||
stats_len = (uint8_t) upper_bound[0];
|
||||
} else {
|
||||
full_stats = 0;
|
||||
stats_len = n_bits;
|
||||
}
|
||||
TEST_CALLOC(stats, stats_len);
|
||||
|
||||
for (i = 0; i < (size_t) iterations; i++) {
|
||||
mbedtls_test_set_step(i);
|
||||
TEST_EQUAL(0, mbedtls_mpi_core_random(result,
|
||||
min, upper_bound, limbs,
|
||||
mbedtls_test_rnd_std_rand, NULL));
|
||||
|
||||
/* Temporarily use a legacy MPI for analysis, because the
|
||||
* necessary auxiliary functions don't exist yet in core. */
|
||||
mbedtls_mpi B = { .s = 1, .n = limbs, .p = upper_bound };
|
||||
mbedtls_mpi R = { .s = 1, .n = limbs, .p = result };
|
||||
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &B) < 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_int(&R, min) >= 0);
|
||||
if (full_stats) {
|
||||
uint8_t value;
|
||||
TEST_EQUAL(0, mbedtls_mpi_write_binary(&R, &value, 1));
|
||||
TEST_ASSERT(value < stats_len);
|
||||
++stats[value];
|
||||
} else {
|
||||
for (b = 0; b < n_bits; b++) {
|
||||
stats[b] += mbedtls_mpi_get_bit(&R, b);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (full_stats) {
|
||||
for (b = min; b < stats_len; b++) {
|
||||
mbedtls_test_set_step(1000000 + b);
|
||||
/* Assert that each value has been reached at least once.
|
||||
* This is almost guaranteed if the iteration count is large
|
||||
* enough. This is a very crude way of checking the distribution.
|
||||
*/
|
||||
TEST_ASSERT(stats[b] > 0);
|
||||
}
|
||||
} else {
|
||||
bound_bytes.len = limbs * sizeof(mbedtls_mpi_uint);
|
||||
TEST_CALLOC(bound_bytes.x, bound_bytes.len);
|
||||
mbedtls_mpi_core_write_be(upper_bound, limbs,
|
||||
bound_bytes.x, bound_bytes.len);
|
||||
int statistically_safe_all_the_way =
|
||||
is_significantly_above_a_power_of_2(&bound_bytes);
|
||||
for (b = 0; b < n_bits; b++) {
|
||||
mbedtls_test_set_step(1000000 + b);
|
||||
/* Assert that each bit has been set in at least one result and
|
||||
* clear in at least one result. Provided that iterations is not
|
||||
* too small, it would be extremely unlikely for this not to be
|
||||
* the case if the results are uniformly distributed.
|
||||
*
|
||||
* As an exception, the top bit may legitimately never be set
|
||||
* if bound is a power of 2 or only slightly above.
|
||||
*/
|
||||
if (statistically_safe_all_the_way || b != n_bits - 1) {
|
||||
TEST_ASSERT(stats[b] > 0);
|
||||
}
|
||||
TEST_ASSERT(stats[b] < (size_t) iterations);
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(bound_bytes.x);
|
||||
mbedtls_free(upper_bound);
|
||||
mbedtls_free(result);
|
||||
mbedtls_free(stats);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_random_sizes(int min, data_t *bound_bytes, int nlimbs, int before)
|
||||
{
|
||||
mbedtls_mpi upper_bound;
|
||||
mbedtls_mpi result;
|
||||
|
||||
mbedtls_mpi_init(&upper_bound);
|
||||
mbedtls_mpi_init(&result);
|
||||
|
||||
if (before != 0) {
|
||||
/* Set result to sign(before) * 2^(|before|-1) */
|
||||
TEST_ASSERT(mbedtls_mpi_lset(&result, before > 0 ? 1 : -1) == 0);
|
||||
if (before < 0) {
|
||||
before = -before;
|
||||
}
|
||||
TEST_ASSERT(mbedtls_mpi_shift_l(&result, before - 1) == 0);
|
||||
}
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_grow(&result, nlimbs));
|
||||
TEST_EQUAL(0, mbedtls_mpi_read_binary(&upper_bound,
|
||||
bound_bytes->x, bound_bytes->len));
|
||||
TEST_EQUAL(0, mbedtls_mpi_random(&result, min, &upper_bound,
|
||||
mbedtls_test_rnd_std_rand, NULL));
|
||||
TEST_ASSERT(sign_is_valid(&result));
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&result, &upper_bound) < 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_int(&result, min) >= 0);
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&upper_bound);
|
||||
mbedtls_mpi_free(&result);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_WITH_MPI_UINT */
|
||||
void mpi_mod_random_validation(int min, char *bound_hex,
|
||||
int result_limbs_delta,
|
||||
int expected_ret)
|
||||
{
|
||||
mbedtls_mpi_uint *result_digits = NULL;
|
||||
mbedtls_mpi_mod_modulus N;
|
||||
mbedtls_mpi_mod_modulus_init(&N);
|
||||
|
||||
TEST_EQUAL(mbedtls_test_read_mpi_modulus(&N, bound_hex,
|
||||
MBEDTLS_MPI_MOD_REP_OPT_RED),
|
||||
0);
|
||||
size_t result_limbs = N.limbs + result_limbs_delta;
|
||||
TEST_CALLOC(result_digits, result_limbs);
|
||||
/* Build a reside that might not match the modulus, to test that
|
||||
* the library function rejects that as expected. */
|
||||
mbedtls_mpi_mod_residue result = { result_digits, result_limbs };
|
||||
|
||||
TEST_EQUAL(mbedtls_mpi_mod_random(&result, min, &N,
|
||||
mbedtls_test_rnd_std_rand, NULL),
|
||||
expected_ret);
|
||||
if (expected_ret == 0) {
|
||||
/* Success should only be expected when the result has the same
|
||||
* size as the modulus, otherwise it's a mistake in the test data. */
|
||||
TEST_EQUAL(result_limbs, N.limbs);
|
||||
/* Sanity check: check that the result is in range */
|
||||
TEST_ASSERT(0 != mbedtls_mpi_core_lt_ct(result_digits, N.p, N.limbs));
|
||||
/* Check result >= min (changes result) */
|
||||
TEST_EQUAL(mbedtls_mpi_core_sub_int(result_digits, result_digits, min,
|
||||
result_limbs),
|
||||
0);
|
||||
}
|
||||
|
||||
/* When the result has the right number of limbs, also test mod_raw
|
||||
* (for which this is an unchecked precondition). */
|
||||
if (result_limbs_delta == 0) {
|
||||
TEST_EQUAL(mbedtls_mpi_mod_raw_random(result_digits, min, &N,
|
||||
mbedtls_test_rnd_std_rand, NULL),
|
||||
expected_ret);
|
||||
if (expected_ret == 0) {
|
||||
TEST_ASSERT(0 != mbedtls_mpi_core_lt_ct(result_digits, N.p, N.limbs));
|
||||
TEST_EQUAL(mbedtls_mpi_core_sub_int(result_digits, result.p, min,
|
||||
result_limbs),
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_test_mpi_mod_modulus_free_with_limbs(&N);
|
||||
mbedtls_free(result_digits);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mpi_random_fail(int min, data_t *bound_bytes, int expected_ret)
|
||||
{
|
||||
mbedtls_mpi upper_bound;
|
||||
mbedtls_mpi result;
|
||||
int actual_ret;
|
||||
|
||||
mbedtls_mpi_init(&upper_bound);
|
||||
mbedtls_mpi_init(&result);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_mpi_read_binary(&upper_bound,
|
||||
bound_bytes->x, bound_bytes->len));
|
||||
actual_ret = mbedtls_mpi_random(&result, min, &upper_bound,
|
||||
mbedtls_test_rnd_std_rand, NULL);
|
||||
TEST_EQUAL(expected_ret, actual_ret);
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&upper_bound);
|
||||
mbedtls_mpi_free(&result);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,255 +0,0 @@
|
||||
Invalid input
|
||||
invalid:
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"9798c4640bad75c7c3227db910174e72":"a9a1631bf4996954ebc093957b234589"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"96ab5c2ff612d9dfaae8c31f30c42168":"ff4f8391a6a40ca5b25d23bedd44a597"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"e0000000000000000000000000000000":"00000000000000000000000000000000":"72a1da770f5d7ac4c9ef94d822affd97"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"f0000000000000000000000000000000":"00000000000000000000000000000000":"970014d634e2b7650777e8e84d03ccd8"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"f8000000000000000000000000000000":"00000000000000000000000000000000":"f17e79aed0db7e279e955b5f493875a7"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffff0000000000000000000":"00000000000000000000000000000000":"7b90785125505fad59b13c186dd66ce3"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffff8000000000000000000":"00000000000000000000000000000000":"8b527a6aebdaec9eaef8eda2cb7783e5"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffffc000000000000000000":"00000000000000000000000000000000":"43fdaf53ebbc9880c228617d6a9b548b"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"ffffffffffffffffffffffffffffc000":"00000000000000000000000000000000":"70c46bb30692be657f7eaa93ebad9897"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"ffffffffffffffffffffffffffffe000":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffffffffffffffffffff000":"00000000000000000000000000000000":"1dbf57877b7b17385c85d0b54851e371"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #13
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"ffffffffffffffc00000000000000000":"3a4d354f02bb5a5e47d39666867f246a"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #14
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"ffffffffffffffe00000000000000000":"d451b8d6e1e1a0ebb155fbbf6e7b7dc3"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #15
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"fffffffffffffff00000000000000000":"6898d4f42fa7ba6a10ac05e87b9f2080"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #16
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"ffffffffffffffffffffffffe0000000":"082eb8be35f442fb52668e16a591d1d6"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #17
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"fffffffffffffffffffffffff0000000":"e656f9ecf5fe27ec3e4a73d00c282fb3"
|
||||
|
||||
AES-128-ECB Encrypt NIST KAT #18
|
||||
depends_on:MBEDTLS_AES_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"00000000000000000000000000000000":"fffffffffffffffffffffffff8000000":"2ca8209d63274cd9a29bb74bcd77683a"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffff80000000000":"156f07767a85a4312321f63968338a01"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffffc0000000000":"15eec9ebf42b9ca76897d2cd6c5a12e2"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"fffffffffffffffffffffe0000000000":"db0d3a6fdcc13f915e2b302ceeb70fd8"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"51719783d3185a535bd75adc65071ce1":"4f354592ff7c8847d2d0870ca9481b7c"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"26aa49dcfe7629a8901a69a9914e6dfd":"d5e08bf9a182e857cf40b3a36ee248cc"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"000000000000000000000000000000000000000000000000":"941a4773058224e1ef66d10e0a6ee782":"067cd9d3749207791841562507fa9626"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"d2926527e0aa9f37b45e2ec2ade5853ef807576104c7ace3":"00000000000000000000000000000000":"dd619e1cf204446112e0af2b9afa8f8c"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"982215f4e173dfa0fcffe5d3da41c4812c7bcc8ed3540f93":"00000000000000000000000000000000":"d4f0aae13c8fe9339fbf9e69ed0ad74d"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"98c6b8e01e379fbd14e61af6af891596583565f2a27d59e9":"00000000000000000000000000000000":"19c80ec4a6deb7e5ed1033dda933498f"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffffffffffffffffff800000000000000000000":"00000000000000000000000000000000":"8dd274bd0f1b58ae345d9e7233f9b8f3"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffffffffffffffffffc00000000000000000000":"00000000000000000000000000000000":"9d6bdc8f4ce5feb0f3bed2e4b9a9bb0b"
|
||||
|
||||
AES-192-ECB Encrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"fffffffffffffffffffffffffffe00000000000000000000":"00000000000000000000000000000000":"fd5548bcf3f42565f7efa94562528d46"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #1
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"c1cc358b449909a19436cfbb3f852ef8bcb5ed12ac7058325f56e6099aab1a1c":"00000000000000000000000000000000":"352065272169abf9856843927d0674fd"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #2
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"984ca75f4ee8d706f46c2d98c0bf4a45f5b00d791c2dfeb191b5ed8e420fd627":"00000000000000000000000000000000":"4307456a9e67813b452e15fa8fffe398"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #3
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"b43d08a447ac8609baadae4ff12918b9f68fc1653f1269222f123981ded7a92f":"00000000000000000000000000000000":"4663446607354989477a5c6f0f007ef4"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #4
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"0b24af36193ce4665f2825d7b4749c98":"a9ff75bd7cf6613d3731c77c3b6d0c04"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #5
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"761c1fe41a18acf20d241650611d90f1":"623a52fcea5d443e48d9181ab32c7421"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #6
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"8a560769d605868ad80d819bdba03771":"38f2c7ae10612415d27ca190d27da8b4"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #7
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"ffffff80000000000000000000000000":"36aff0ef7bf3280772cf4cac80a0d2b2"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #8
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"ffffffc0000000000000000000000000":"1f8eedea0f62a1406d58cfc3ecea72cf"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #9
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"0000000000000000000000000000000000000000000000000000000000000000":"ffffffe0000000000000000000000000":"abf4154a3375a1d3e6b1d454438f95a6"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #10
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"ffffffffffffffffffffffffffffffffffff8000000000000000000000000000":"00000000000000000000000000000000":"45d089c36d5c5a4efc689e3b0de10dd5"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #11
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"ffffffffffffffffffffffffffffffffffffc000000000000000000000000000":"00000000000000000000000000000000":"b4da5df4becb5462e03a0ed00d295629"
|
||||
|
||||
AES-256-ECB Encrypt NIST KAT #12
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
test_vec:MBEDTLS_CIPHER_ID_AES:"ffffffffffffffffffffffffffffffffffffe000000000000000000000000000":"00000000000000000000000000000000":"dcf4e129136c1a4b7a0f38935cc34b2b"
|
||||
|
||||
ARIA-128-ECB Encrypt - RFC 5794
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_ARIA:"000102030405060708090a0b0c0d0e0f":"00112233445566778899aabbccddeeff":"d718fbd6ab644c739da95f3be6451778"
|
||||
|
||||
ARIA-192-ECB Encrypt - RFC 5794
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_ARIA:"000102030405060708090a0b0c0d0e0f1011121314151617":"00112233445566778899aabbccddeeff":"26449c1805dbe7aa25a468ce263a9e79"
|
||||
|
||||
ARIA-256-ECB Encrypt - RFC 5794
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_ARIA:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"00112233445566778899aabbccddeeff":"f92bd7c79fb72e2f2b8f80c1972d24fc"
|
||||
|
||||
Camellia-128-ECB Encrypt RFC3713 #1
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"0123456789abcdeffedcba9876543210":"0123456789abcdeffedcba9876543210":"67673138549669730857065648eabe43"
|
||||
|
||||
Camellia-192-ECB Encrypt RFC3713 #1
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"0123456789abcdeffedcba98765432100011223344556677":"0123456789abcdeffedcba9876543210":"b4993401b3e996f84ee5cee7d79b09b9"
|
||||
|
||||
Camellia-256-ECB Encrypt RFC3713 #1
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff":"0123456789abcdeffedcba9876543210":"9acc237dff16d76c20ef7c919e3a7509"
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #1 [#1]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"000102030405060708090A0B0C0D0E0F":"00112233445566778899AABBCCDDEEFF":"77CF412067AF8270613529149919546F"
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #1 [#1]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"000102030405060708090A0B0C0D0E0F1011121314151617":"00112233445566778899AABBCCDDEEFF":"B22F3C36B72D31329EEE8ADDC2906C68"
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #1 [#1]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F":"00112233445566778899AABBCCDDEEFF":"2EDF1F3418D53B88841FC8985FB1ECF2"
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #1 [#2]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"2B7E151628AED2A6ABF7158809CF4F3C":"6BC1BEE22E409F96E93D7E117393172A":"432FC5DCD628115B7C388D770B270C96"
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #2
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"2B7E151628AED2A6ABF7158809CF4F3C":"AE2D8A571E03AC9C9EB76FAC45AF8E51":"0BE1F14023782A22E8384C5ABB7FAB2B"
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #3
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"2B7E151628AED2A6ABF7158809CF4F3C":"30C81C46A35CE411E5FBC1191A0A52EF":"A0A1ABCD1893AB6FE0FE5B65DF5F8636"
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #4
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"2B7E151628AED2A6ABF7158809CF4F3C":"F69F2445DF4F9B17AD2B417BE66C3710":"E61925E0D5DFAA9BB29F815B3076E51A"
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #1 [#2]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"6BC1BEE22E409F96E93D7E117393172A":"CCCC6C4E138B45848514D48D0D3439D3"
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #2
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"AE2D8A571E03AC9C9EB76FAC45AF8E51":"5713C62C14B2EC0F8393B6AFD6F5785A"
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #3
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"30C81C46A35CE411E5FBC1191A0A52EF":"B40ED2B60EB54D09D030CF511FEEF366"
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #4
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"F69F2445DF4F9B17AD2B417BE66C3710":"909DBD95799096748CB27357E73E1D26"
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #1 [#2]
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4":"6BC1BEE22E409F96E93D7E117393172A":"BEFD219B112FA00098919CD101C9CCFA"
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #2
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4":"AE2D8A571E03AC9C9EB76FAC45AF8E51":"C91D3A8F1AEA08A9386CF4B66C0169EA"
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #3
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4":"30C81C46A35CE411E5FBC1191A0A52EF":"A623D711DC5F25A51BB8A80D56397D28"
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #4
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
test_vec:MBEDTLS_CIPHER_ID_CAMELLIA:"603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4":"F69F2445DF4F9B17AD2B417BE66C3710":"7960109FB6DC42947FCFE59EA3C5EB6B"
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "block_cipher_internal.h"
|
||||
|
||||
#define BLOCK_SIZE 16
|
||||
|
||||
#if defined(MBEDTLS_AES_C)
|
||||
#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_AES
|
||||
#define BADKEY_ERROR MBEDTLS_ERR_AES_INVALID_KEY_LENGTH
|
||||
#elif defined(MBEDTLS_ARIA_C)
|
||||
#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_ARIA
|
||||
#define BADKEY_ERROR MBEDTLS_ERR_ARIA_BAD_INPUT_DATA
|
||||
#elif defined(MBEDTLS_CAMELLIA_C)
|
||||
#define VALID_CIPHER_ID MBEDTLS_CIPHER_ID_CAMELLIA
|
||||
#define BADKEY_ERROR MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA
|
||||
#else
|
||||
#undef VALID_CIPHER_ID
|
||||
#endif
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_BLOCK_CIPHER_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE depends_on:VALID_CIPHER_ID */
|
||||
void invalid()
|
||||
{
|
||||
/* That size is valid for a key or an input/output block. */
|
||||
unsigned char buf[16] = { 0 };
|
||||
|
||||
mbedtls_block_cipher_context_t ctx;
|
||||
|
||||
mbedtls_block_cipher_init(&ctx);
|
||||
|
||||
/* Bad parameters to setup */
|
||||
TEST_EQUAL(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA,
|
||||
mbedtls_block_cipher_setup(&ctx, MBEDTLS_CIPHER_ID_NONE));
|
||||
TEST_EQUAL(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA,
|
||||
mbedtls_block_cipher_setup(&ctx, MBEDTLS_CIPHER_ID_DES));
|
||||
|
||||
/* setkey() before successful setup() */
|
||||
TEST_EQUAL(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT,
|
||||
mbedtls_block_cipher_setkey(&ctx, buf, 128));
|
||||
|
||||
/* encrypt() before successful setup() */
|
||||
TEST_EQUAL(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT,
|
||||
mbedtls_block_cipher_encrypt(&ctx, buf, buf));
|
||||
|
||||
/* free() before successful setup()
|
||||
* No return value to check, but shouldn't cause memory errors. */
|
||||
mbedtls_block_cipher_free(&ctx);
|
||||
|
||||
/* Now properly setup the context */
|
||||
mbedtls_block_cipher_init(&ctx);
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_setup(&ctx, VALID_CIPHER_ID));
|
||||
|
||||
/* Bad parameters to setkey() */
|
||||
TEST_EQUAL(BADKEY_ERROR,
|
||||
mbedtls_block_cipher_setkey(&ctx, buf, 42));
|
||||
|
||||
exit:
|
||||
mbedtls_block_cipher_free(&ctx);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_vec(int cipher_id_arg, data_t *key, data_t *input, data_t *outref)
|
||||
{
|
||||
mbedtls_block_cipher_context_t ctx;
|
||||
mbedtls_cipher_id_t cipher_id = cipher_id_arg;
|
||||
unsigned char output[BLOCK_SIZE];
|
||||
|
||||
mbedtls_block_cipher_init(&ctx);
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_setup(&ctx, cipher_id));
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_setkey(&ctx, key->x, 8 * key->len));
|
||||
|
||||
/* Encrypt with input != output */
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_encrypt(&ctx, input->x, output));
|
||||
ASSERT_COMPARE(output, BLOCK_SIZE, outref->x, outref->len);
|
||||
|
||||
/* Encrypt with input == output.
|
||||
* (Also, encrypting again ensures the previous call to encrypt()
|
||||
* did not change the state of the context.) */
|
||||
memcpy(output, input->x, BLOCK_SIZE);
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_encrypt(&ctx, output, output));
|
||||
ASSERT_COMPARE(output, BLOCK_SIZE, outref->x, outref->len);
|
||||
|
||||
exit:
|
||||
mbedtls_block_cipher_free(&ctx);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void block_cipher_psa_dynamic_dispatch(int cipher_type, int pre_psa_ret, int post_psa_engine)
|
||||
{
|
||||
mbedtls_block_cipher_context_t ctx;
|
||||
(void) post_psa_engine;
|
||||
|
||||
/* Intentionally no PSA init here! (Will be done later.) */
|
||||
|
||||
mbedtls_block_cipher_init(&ctx);
|
||||
|
||||
/* Before PSA crypto init */
|
||||
TEST_EQUAL(pre_psa_ret, mbedtls_block_cipher_setup(&ctx, cipher_type));
|
||||
|
||||
#if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
|
||||
TEST_EQUAL(ctx.engine, MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY);
|
||||
#endif
|
||||
|
||||
mbedtls_block_cipher_free(&ctx);
|
||||
|
||||
/* Now initilize PSA Crypto */
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
|
||||
mbedtls_block_cipher_init(&ctx);
|
||||
/* After PSA Crypto init */
|
||||
TEST_EQUAL(0, mbedtls_block_cipher_setup(&ctx, cipher_type));
|
||||
#if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
|
||||
TEST_EQUAL(ctx.engine, post_psa_engine);
|
||||
#endif
|
||||
|
||||
exit:
|
||||
mbedtls_block_cipher_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,35 +0,0 @@
|
||||
AES - legacy only
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_AES_VIA_LEGACY:!MBEDTLS_BLOCK_CIPHER_AES_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_AES:0:MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY
|
||||
|
||||
AES - driver only
|
||||
depends_on:!MBEDTLS_BLOCK_CIPHER_AES_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_AES_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_AES:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
|
||||
AES - legacy + driver
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_AES_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_AES_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_AES:0:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
|
||||
ARIA - legacy only
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_ARIA_VIA_LEGACY:!MBEDTLS_BLOCK_CIPHER_ARIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_ARIA:0:MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY
|
||||
|
||||
ARIA - driver only
|
||||
depends_on:!MBEDTLS_BLOCK_CIPHER_ARIA_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_ARIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_ARIA:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
|
||||
ARIA - legacy + driver
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_ARIA_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_ARIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_ARIA:0:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
|
||||
Camellia - legacy only
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_LEGACY:!MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_CAMELLIA:0:MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY
|
||||
|
||||
Camellia - driver only
|
||||
depends_on:!MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_CAMELLIA:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
|
||||
Camellia - legacy + driver
|
||||
depends_on:MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_LEGACY:MBEDTLS_BLOCK_CIPHER_CAMELLIA_VIA_PSA
|
||||
block_cipher_psa_dynamic_dispatch:MBEDTLS_CIPHER_ID_CAMELLIA:0:MBEDTLS_BLOCK_CIPHER_ENGINE_PSA
|
||||
314
externals/mbedtls/tests/suites/test_suite_blowfish.data
vendored
Normal file
314
externals/mbedtls/tests/suites/test_suite_blowfish.data
vendored
Normal file
@@ -0,0 +1,314 @@
|
||||
BLOWFISH - Valid parameters
|
||||
blowfish_valid_param:
|
||||
|
||||
BLOWFISH - Invalid parameters
|
||||
blowfish_invalid_param:
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #1
|
||||
blowfish_encrypt_ecb:"0000000000000000":"0000000000000000":"4ef997456198dd78":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #2
|
||||
blowfish_encrypt_ecb:"ffffffffffffffff":"ffffffffffffffff":"51866fd5b85ecb8a":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #3
|
||||
blowfish_encrypt_ecb:"3000000000000000":"1000000000000001":"7d856f9a613063f2":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #4
|
||||
blowfish_encrypt_ecb:"1111111111111111":"1111111111111111":"2466dd878b963c9d":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #5
|
||||
blowfish_encrypt_ecb:"0123456789abcdef":"1111111111111111":"61f9c3802281b096":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #6
|
||||
blowfish_encrypt_ecb:"1111111111111111":"0123456789abcdef":"7d0cc630afda1ec7":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #7
|
||||
blowfish_encrypt_ecb:"0000000000000000":"0000000000000000":"4ef997456198dd78":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #8
|
||||
blowfish_encrypt_ecb:"fedcba9876543210":"0123456789abcdef":"0aceab0fc6a0a28d":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #9
|
||||
blowfish_encrypt_ecb:"7ca110454a1a6e57":"01a1d6d039776742":"59c68245eb05282b":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #10
|
||||
blowfish_encrypt_ecb:"0131d9619dc1376e":"5cd54ca83def57da":"b1b8cc0b250f09a0":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #11
|
||||
blowfish_encrypt_ecb:"07a1133e4a0b2686":"0248d43806f67172":"1730e5778bea1da4":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #12
|
||||
blowfish_encrypt_ecb:"3849674c2602319e":"51454b582ddf440a":"a25e7856cf2651eb":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #13
|
||||
blowfish_encrypt_ecb:"04b915ba43feb5b6":"42fd443059577fa2":"353882b109ce8f1a":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #14
|
||||
blowfish_encrypt_ecb:"0113b970fd34f2ce":"059b5e0851cf143a":"48f4d0884c379918":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #15
|
||||
blowfish_encrypt_ecb:"0170f175468fb5e6":"0756d8e0774761d2":"432193b78951fc98":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #16
|
||||
blowfish_encrypt_ecb:"43297fad38e373fe":"762514b829bf486a":"13f04154d69d1ae5":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #17
|
||||
blowfish_encrypt_ecb:"07a7137045da2a16":"3bdd119049372802":"2eedda93ffd39c79":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #18
|
||||
blowfish_encrypt_ecb:"04689104c2fd3b2f":"26955f6835af609a":"d887e0393c2da6e3":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #19
|
||||
blowfish_encrypt_ecb:"37d06bb516cb7546":"164d5e404f275232":"5f99d04f5b163969":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #20
|
||||
blowfish_encrypt_ecb:"1f08260d1ac2465e":"6b056e18759f5cca":"4a057a3b24d3977b":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #21
|
||||
blowfish_encrypt_ecb:"584023641aba6176":"004bd6ef09176062":"452031c1e4fada8e":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #22
|
||||
blowfish_encrypt_ecb:"025816164629b007":"480d39006ee762f2":"7555ae39f59b87bd":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #23
|
||||
blowfish_encrypt_ecb:"49793ebc79b3258f":"437540c8698f3cfa":"53c55f9cb49fc019":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #24
|
||||
blowfish_encrypt_ecb:"4fb05e1515ab73a7":"072d43a077075292":"7a8e7bfa937e89a3":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #25
|
||||
blowfish_encrypt_ecb:"49e95d6d4ca229bf":"02fe55778117f12a":"cf9c5d7a4986adb5":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #26
|
||||
blowfish_encrypt_ecb:"018310dc409b26d6":"1d9d5c5018f728c2":"d1abb290658bc778":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #27
|
||||
blowfish_encrypt_ecb:"1c587f1c13924fef":"305532286d6f295a":"55cb3774d13ef201":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #28
|
||||
blowfish_encrypt_ecb:"0101010101010101":"0123456789abcdef":"fa34ec4847b268b2":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #29
|
||||
blowfish_encrypt_ecb:"1f1f1f1f0e0e0e0e":"0123456789abcdef":"a790795108ea3cae":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #30
|
||||
blowfish_encrypt_ecb:"e0fee0fef1fef1fe":"0123456789abcdef":"c39e072d9fac631d":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #31
|
||||
blowfish_encrypt_ecb:"0000000000000000":"ffffffffffffffff":"014933e0cdaff6e4":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #32
|
||||
blowfish_encrypt_ecb:"ffffffffffffffff":"0000000000000000":"f21e9a77b71c49bc":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #33
|
||||
blowfish_encrypt_ecb:"0123456789abcdef":"0000000000000000":"245946885754369a":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #34
|
||||
blowfish_encrypt_ecb:"fedcba9876543210":"ffffffffffffffff":"6b5c5a9c5d9e0a5a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #1
|
||||
blowfish_decrypt_ecb:"0000000000000000":"4ef997456198dd78":"0000000000000000":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #2
|
||||
blowfish_decrypt_ecb:"ffffffffffffffff":"51866fd5b85ecb8a":"ffffffffffffffff":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #3
|
||||
blowfish_decrypt_ecb:"3000000000000000":"7d856f9a613063f2":"1000000000000001":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #4
|
||||
blowfish_decrypt_ecb:"1111111111111111":"2466dd878b963c9d":"1111111111111111":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #5
|
||||
blowfish_decrypt_ecb:"0123456789abcdef":"61f9c3802281b096":"1111111111111111":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #6
|
||||
blowfish_decrypt_ecb:"1111111111111111":"7d0cc630afda1ec7":"0123456789abcdef":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #7
|
||||
blowfish_decrypt_ecb:"0000000000000000":"4ef997456198dd78":"0000000000000000":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #8
|
||||
blowfish_decrypt_ecb:"fedcba9876543210":"0aceab0fc6a0a28d":"0123456789abcdef":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #9
|
||||
blowfish_decrypt_ecb:"7ca110454a1a6e57":"59c68245eb05282b":"01a1d6d039776742":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #10
|
||||
blowfish_decrypt_ecb:"0131d9619dc1376e":"b1b8cc0b250f09a0":"5cd54ca83def57da":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #11
|
||||
blowfish_decrypt_ecb:"07a1133e4a0b2686":"1730e5778bea1da4":"0248d43806f67172":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #12
|
||||
blowfish_decrypt_ecb:"3849674c2602319e":"a25e7856cf2651eb":"51454b582ddf440a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #13
|
||||
blowfish_decrypt_ecb:"04b915ba43feb5b6":"353882b109ce8f1a":"42fd443059577fa2":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #14
|
||||
blowfish_decrypt_ecb:"0113b970fd34f2ce":"48f4d0884c379918":"059b5e0851cf143a":0
|
||||
|
||||
BLOWFISH-ECB Encrypt SSLeay reference #15
|
||||
blowfish_encrypt_ecb:"0170f175468fb5e6":"0756d8e0774761d2":"432193b78951fc98":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #16
|
||||
blowfish_decrypt_ecb:"43297fad38e373fe":"13f04154d69d1ae5":"762514b829bf486a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #17
|
||||
blowfish_decrypt_ecb:"07a7137045da2a16":"2eedda93ffd39c79":"3bdd119049372802":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #18
|
||||
blowfish_decrypt_ecb:"04689104c2fd3b2f":"d887e0393c2da6e3":"26955f6835af609a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #19
|
||||
blowfish_decrypt_ecb:"37d06bb516cb7546":"5f99d04f5b163969":"164d5e404f275232":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #20
|
||||
blowfish_decrypt_ecb:"1f08260d1ac2465e":"4a057a3b24d3977b":"6b056e18759f5cca":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #21
|
||||
blowfish_decrypt_ecb:"584023641aba6176":"452031c1e4fada8e":"004bd6ef09176062":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #22
|
||||
blowfish_decrypt_ecb:"025816164629b007":"7555ae39f59b87bd":"480d39006ee762f2":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #23
|
||||
blowfish_decrypt_ecb:"49793ebc79b3258f":"53c55f9cb49fc019":"437540c8698f3cfa":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #24
|
||||
blowfish_decrypt_ecb:"4fb05e1515ab73a7":"7a8e7bfa937e89a3":"072d43a077075292":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #25
|
||||
blowfish_decrypt_ecb:"49e95d6d4ca229bf":"cf9c5d7a4986adb5":"02fe55778117f12a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #26
|
||||
blowfish_decrypt_ecb:"018310dc409b26d6":"d1abb290658bc778":"1d9d5c5018f728c2":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #27
|
||||
blowfish_decrypt_ecb:"1c587f1c13924fef":"55cb3774d13ef201":"305532286d6f295a":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #28
|
||||
blowfish_decrypt_ecb:"0101010101010101":"fa34ec4847b268b2":"0123456789abcdef":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #29
|
||||
blowfish_decrypt_ecb:"1f1f1f1f0e0e0e0e":"a790795108ea3cae":"0123456789abcdef":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #30
|
||||
blowfish_decrypt_ecb:"e0fee0fef1fef1fe":"c39e072d9fac631d":"0123456789abcdef":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #31
|
||||
blowfish_decrypt_ecb:"0000000000000000":"014933e0cdaff6e4":"ffffffffffffffff":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #32
|
||||
blowfish_decrypt_ecb:"ffffffffffffffff":"f21e9a77b71c49bc":"0000000000000000":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #33
|
||||
blowfish_decrypt_ecb:"0123456789abcdef":"245946885754369a":"0000000000000000":0
|
||||
|
||||
BLOWFISH-ECB Decrypt SSLeay reference #34
|
||||
blowfish_decrypt_ecb:"fedcba9876543210":"6b5c5a9c5d9e0a5a":"ffffffffffffffff":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #1
|
||||
blowfish_encrypt_ecb:"f0":"fedcba9876543210":"":MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #2
|
||||
blowfish_encrypt_ecb:"f0e1":"fedcba9876543210":"":MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #3
|
||||
blowfish_encrypt_ecb:"f0e1d2":"fedcba9876543210":"":MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #4
|
||||
blowfish_encrypt_ecb:"f0e1d2c3":"fedcba9876543210":"be1e639408640f05":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #5
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4":"fedcba9876543210":"b39e44481bdb1e6e":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #6
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5":"fedcba9876543210":"9457aa83b1928c0d":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #7
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a596":"fedcba9876543210":"8bb77032f960629d":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #8
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a59687":"fedcba9876543210":"e87a244e2cc85e82":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #9
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778":"fedcba9876543210":"15750e7a4f4ec577":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #10
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a596877869":"fedcba9876543210":"122ba70b3ab64ae0":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #11
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a":"fedcba9876543210":"3a833c9affc537f6":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #12
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b":"fedcba9876543210":"9409da87a90f6bf2":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #13
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c":"fedcba9876543210":"884f80625060b8b4":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #14
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d":"fedcba9876543210":"1f85031c19e11968":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #15
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e":"fedcba9876543210":"79d9373a714ca34f":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #16
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f":"fedcba9876543210":"93142887ee3be15c":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #17
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00":"fedcba9876543210":"03429e838ce2d14b":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #18
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f0011":"fedcba9876543210":"a4299e27469ff67b":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #19
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f001122":"fedcba9876543210":"afd5aed1c1bc96a8":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #20
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00112233":"fedcba9876543210":"10851c0e3858da9f":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #21
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344":"fedcba9876543210":"e6f51ed79b9db21f":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #22
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455":"fedcba9876543210":"64a6e14afd36b46f":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #23
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566":"fedcba9876543210":"80c7d7d45a5479ad":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey SSLeay reference #24
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344556677":"fedcba9876543210":"05044b62fa52d080":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey 440 bits
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566778899aabbccddeeff0123456789abcdef0102030405060708090a0b0c0d0e0f":"fedcba9876543210":"9a2ab8f1b00c73d2":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey 448 bits
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566778899aabbccddeeff0123456789abcdef0102030405060708090a0b0c0d0e0fff":"fedcba9876543210":"2fb3ab7f0ee91b69":0
|
||||
|
||||
BLOWFISH-SETKEY Setkey 456 bits
|
||||
blowfish_encrypt_ecb:"f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566778899aabbccddeeff0123456789abcdef0102030405060708090a0b0c0d0e0fffff":"fedcba9876543210":"":MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA
|
||||
|
||||
BLOWFISH-CBC Encrypt
|
||||
blowfish_encrypt_cbc:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"37363534333231204E6F77206973207468652074696D6520666F722000000000":"6b77b4d63006dee605b156e27403979358deb9e7154616d959f1652bd5ff92cc":0
|
||||
|
||||
BLOWFISH-CBC Decrypt
|
||||
blowfish_decrypt_cbc:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC":"37363534333231204e6f77206973207468652074696d6520666f722000000000":0
|
||||
|
||||
BLOWFISH-CBC Encrypt
|
||||
blowfish_encrypt_cbc:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"37363534333231204E6F77206973207468652074696D6520666F7220000000":"":MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH
|
||||
|
||||
BLOWFISH-CBC Decrypt
|
||||
blowfish_decrypt_cbc:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC00":"":MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH
|
||||
|
||||
BLOWFISH-CFB Encrypt
|
||||
blowfish_encrypt_cfb64:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"37363534333231204E6F77206973207468652074696D6520666F722000":"e73214a2822139caf26ecf6d2eb9e76e3da3de04d1517200519d57a6c3"
|
||||
|
||||
BLOWFISH-CFB Decrypt
|
||||
blowfish_decrypt_cfb64:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"E73214A2822139CAF26ECF6D2EB9E76E3DA3DE04D1517200519D57A6C3":"37363534333231204e6f77206973207468652074696d6520666f722000"
|
||||
|
||||
BLOWFISH-CTR Encrypt
|
||||
blowfish_encrypt_ctr:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"37363534333231204E6F77206973207468652074696D6520666F722000":"e73214a2822139ca60254740dd8c5b8acf5e9569c4affeb944b8fc020e"
|
||||
|
||||
BLOWFISH-CTR Decrypt
|
||||
blowfish_encrypt_ctr:"0123456789ABCDEFF0E1D2C3B4A59687":"FEDCBA9876543210":"e73214a2822139ca60254740dd8c5b8acf5e9569c4affeb944b8fc020e":"37363534333231204e6f77206973207468652074696d6520666f722000"
|
||||
338
externals/mbedtls/tests/suites/test_suite_blowfish.function
vendored
Normal file
338
externals/mbedtls/tests/suites/test_suite_blowfish.function
vendored
Normal file
@@ -0,0 +1,338 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/blowfish.h"
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_BLOWFISH_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
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 )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT( mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ) == setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_blowfish_crypt_ecb( &ctx, MBEDTLS_BLOWFISH_ENCRYPT, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void blowfish_decrypt_ecb( data_t * key_str, data_t * src_str,
|
||||
data_t * dst, int setkey_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT( mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 ) == setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_blowfish_crypt_ecb( &ctx, MBEDTLS_BLOWFISH_DECRYPT, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void blowfish_encrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_blowfish_setkey( &ctx, key_str->x, key_str->len * 8 );
|
||||
|
||||
TEST_ASSERT( mbedtls_blowfish_crypt_cbc( &ctx, MBEDTLS_BLOWFISH_ENCRYPT, src_str->len , iv_str->x, src_str->x, output ) == cbc_result );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x,
|
||||
src_str->len, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void blowfish_decrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
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 );
|
||||
if( cbc_result == 0)
|
||||
{
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void blowfish_encrypt_cfb64( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
size_t iv_offset = 0;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
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 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void blowfish_decrypt_cfb64( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_blowfish_context ctx;
|
||||
size_t iv_offset = 0;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_blowfish_init( &ctx );
|
||||
|
||||
|
||||
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 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */
|
||||
void blowfish_encrypt_ctr( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
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 );
|
||||
|
||||
|
||||
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 );
|
||||
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_blowfish_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,3 +1,6 @@
|
||||
Camellia - Valid parameters
|
||||
camellia_valid_param:
|
||||
|
||||
Camellia - Invalid parameters
|
||||
camellia_invalid_param:
|
||||
|
||||
@@ -10,16 +13,16 @@ camellia_encrypt_ecb:"0123456789abcdeffedcba98765432100011223344556677":"0123456
|
||||
Camellia-256-ECB Encrypt RFC3713 #1
|
||||
camellia_encrypt_ecb:"0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff":"0123456789abcdeffedcba9876543210":"9acc237dff16d76c20ef7c919e3a7509":0
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #1 [#1]
|
||||
Camellia-128-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"000102030405060708090A0B0C0D0E0F":"00112233445566778899AABBCCDDEEFF":"77CF412067AF8270613529149919546F":0
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #1 [#1]
|
||||
Camellia-192-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"000102030405060708090A0B0C0D0E0F1011121314151617":"00112233445566778899AABBCCDDEEFF":"B22F3C36B72D31329EEE8ADDC2906C68":0
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #1 [#1]
|
||||
Camellia-256-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F":"00112233445566778899AABBCCDDEEFF":"2EDF1F3418D53B88841FC8985FB1ECF2":0
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #1 [#2]
|
||||
Camellia-128-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"2B7E151628AED2A6ABF7158809CF4F3C":"6BC1BEE22E409F96E93D7E117393172A":"432FC5DCD628115B7C388D770B270C96":0
|
||||
|
||||
Camellia-128-ECB Encrypt Perl EVP #2
|
||||
@@ -31,7 +34,7 @@ camellia_encrypt_ecb:"2B7E151628AED2A6ABF7158809CF4F3C":"30C81C46A35CE411E5FBC11
|
||||
Camellia-128-ECB Encrypt Perl EVP #4
|
||||
camellia_encrypt_ecb:"2B7E151628AED2A6ABF7158809CF4F3C":"F69F2445DF4F9B17AD2B417BE66C3710":"E61925E0D5DFAA9BB29F815B3076E51A":0
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #1 [#2]
|
||||
Camellia-192-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"6BC1BEE22E409F96E93D7E117393172A":"CCCC6C4E138B45848514D48D0D3439D3":0
|
||||
|
||||
Camellia-192-ECB Encrypt Perl EVP #2
|
||||
@@ -43,7 +46,7 @@ camellia_encrypt_ecb:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"30C81C4
|
||||
Camellia-192-ECB Encrypt Perl EVP #4
|
||||
camellia_encrypt_ecb:"8E73B0F7DA0E6452C810F32B809079E562F8EAD2522C6B7B":"F69F2445DF4F9B17AD2B417BE66C3710":"909DBD95799096748CB27357E73E1D26":0
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #1 [#2]
|
||||
Camellia-256-ECB Encrypt Perl EVP #1
|
||||
camellia_encrypt_ecb:"603DEB1015CA71BE2B73AEF0857D77811F352C073B6108D72D9810A30914DFF4":"6BC1BEE22E409F96E93D7E117393172A":"BEFD219B112FA00098919CD101C9CCFA":0
|
||||
|
||||
Camellia-256-ECB Encrypt Perl EVP #2
|
||||
|
||||
@@ -8,190 +8,318 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void camellia_invalid_param()
|
||||
void camellia_valid_param( )
|
||||
{
|
||||
TEST_VALID_PARAM( mbedtls_camellia_free( NULL ) );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void camellia_invalid_param( )
|
||||
{
|
||||
mbedtls_camellia_context ctx;
|
||||
unsigned char buf[16] = { 0 };
|
||||
const size_t valid_keybits = 128;
|
||||
const int invalid_mode = 42;
|
||||
const int valid_mode = MBEDTLS_CAMELLIA_ENCRYPT;
|
||||
size_t off;
|
||||
((void) off);
|
||||
|
||||
TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ecb(&ctx,
|
||||
invalid_mode,
|
||||
buf, buf));
|
||||
TEST_INVALID_PARAM( mbedtls_camellia_init( NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_setkey_enc( NULL,
|
||||
buf,
|
||||
valid_keybits ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_setkey_enc( &ctx,
|
||||
NULL,
|
||||
valid_keybits ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_setkey_dec( NULL,
|
||||
buf,
|
||||
valid_keybits ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_setkey_dec( &ctx,
|
||||
NULL,
|
||||
valid_keybits ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ecb( NULL,
|
||||
valid_mode,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ecb( &ctx,
|
||||
invalid_mode,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ecb( &ctx,
|
||||
valid_mode,
|
||||
NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ecb( &ctx,
|
||||
valid_mode,
|
||||
buf, NULL ) );
|
||||
|
||||
#if defined(MBEDTLS_CIPHER_MODE_CBC)
|
||||
TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc(&ctx,
|
||||
invalid_mode,
|
||||
sizeof(buf),
|
||||
buf, buf, buf));
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc( NULL,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
buf, buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc( &ctx,
|
||||
invalid_mode,
|
||||
sizeof( buf ),
|
||||
buf, buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
NULL, buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
buf, NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cbc( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
buf, buf, NULL ) );
|
||||
#endif /* MBEDTLS_CIPHER_MODE_CBC */
|
||||
|
||||
#if defined(MBEDTLS_CIPHER_MODE_CFB)
|
||||
TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128(&ctx,
|
||||
invalid_mode,
|
||||
sizeof(buf),
|
||||
&off, buf,
|
||||
buf, buf));
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( NULL,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
&off, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( &ctx,
|
||||
invalid_mode,
|
||||
sizeof( buf ),
|
||||
&off, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
NULL, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
&off, NULL,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( &ctx,
|
||||
valid_mode,
|
||||
sizeof( buf ),
|
||||
&off, buf,
|
||||
NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_cfb128( &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_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( NULL,
|
||||
sizeof( buf ),
|
||||
&off,
|
||||
buf, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( &ctx,
|
||||
sizeof( buf ),
|
||||
NULL,
|
||||
buf, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( &ctx,
|
||||
sizeof( buf ),
|
||||
&off,
|
||||
NULL, buf,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( &ctx,
|
||||
sizeof( buf ),
|
||||
&off,
|
||||
buf, NULL,
|
||||
buf, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( &ctx,
|
||||
sizeof( buf ),
|
||||
&off,
|
||||
buf, buf,
|
||||
NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA,
|
||||
mbedtls_camellia_crypt_ctr( &ctx,
|
||||
sizeof( buf ),
|
||||
&off,
|
||||
buf, buf,
|
||||
buf, NULL ) );
|
||||
#endif /* MBEDTLS_CIPHER_MODE_CTR */
|
||||
|
||||
exit:
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void camellia_encrypt_ecb(data_t *key_str, data_t *src_str,
|
||||
data_t *dst, int setkey_result)
|
||||
void camellia_encrypt_ecb( data_t * key_str, data_t * src_str,
|
||||
data_t * dst, int setkey_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8) == setkey_result);
|
||||
if (setkey_result == 0) {
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_ecb(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->x,
|
||||
output) == 0);
|
||||
TEST_ASSERT( mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_ecb( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:!MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
|
||||
void camellia_decrypt_ecb(data_t *key_str, data_t *src_str,
|
||||
data_t *dst, int setkey_result)
|
||||
/* BEGIN_CASE */
|
||||
void camellia_decrypt_ecb( data_t * key_str, data_t * src_str,
|
||||
data_t * dst, int setkey_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_camellia_setkey_dec(&ctx, key_str->x, key_str->len * 8) == setkey_result);
|
||||
if (setkey_result == 0) {
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_ecb(&ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->x,
|
||||
output) == 0);
|
||||
TEST_ASSERT( mbedtls_camellia_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) == setkey_result );
|
||||
if( setkey_result == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_ecb( &ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void camellia_encrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *dst, int cbc_result)
|
||||
void camellia_encrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst, int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_cbc(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
if (cbc_result == 0) {
|
||||
mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_cbc( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->len, iv_str->x, src_str->x, output) == cbc_result );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len,
|
||||
dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void camellia_decrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *dst,
|
||||
int cbc_result)
|
||||
void camellia_decrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_camellia_setkey_dec(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_cbc(&ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
if (cbc_result == 0) {
|
||||
mbedtls_camellia_setkey_dec( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_cbc( &ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len,
|
||||
dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void camellia_encrypt_cfb128(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *dst)
|
||||
void camellia_encrypt_cfb128( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
size_t iv_offset = 0;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_cfb128(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, 16, &iv_offset,
|
||||
iv_str->x, src_str->x, output) == 0);
|
||||
mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_cfb128( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */
|
||||
void camellia_decrypt_cfb128(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str,
|
||||
data_t *dst)
|
||||
void camellia_decrypt_cfb128( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str,
|
||||
data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_camellia_context ctx;
|
||||
size_t iv_offset = 0;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_camellia_init(&ctx);
|
||||
mbedtls_camellia_init( &ctx );
|
||||
|
||||
|
||||
mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8);
|
||||
TEST_ASSERT(mbedtls_camellia_crypt_cfb128(&ctx, MBEDTLS_CAMELLIA_DECRYPT, 16, &iv_offset,
|
||||
iv_str->x, src_str->x, output) == 0);
|
||||
mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 );
|
||||
TEST_ASSERT( mbedtls_camellia_crypt_cfb128( &ctx, MBEDTLS_CAMELLIA_DECRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_camellia_free(&ctx);
|
||||
mbedtls_camellia_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void camellia_selftest()
|
||||
void camellia_selftest( )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_camellia_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_camellia_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
1001
externals/mbedtls/tests/suites/test_suite_ccm.data
vendored
1001
externals/mbedtls/tests/suites/test_suite_ccm.data
vendored
File diff suppressed because it is too large
Load Diff
1133
externals/mbedtls/tests/suites/test_suite_ccm.function
vendored
1133
externals/mbedtls/tests/suites/test_suite_ccm.function
vendored
File diff suppressed because it is too large
Load Diff
@@ -22,5 +22,8 @@ chacha20_crypt:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0
|
||||
ChaCha20 RFC 7539 Test Vector #3 (Decrypt)
|
||||
chacha20_crypt:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000000000000000002":42:"62e6347f95ed87a45ffae7426f27a1df5fb69110044c0d73118effa95b01e5cf166d3df2d721caf9b21e5fb14c616871fd84c54f9d65b283196c7fe4f60553ebf39c6402c42234e32a356b3e764312a61a5532055716ead6962568f87d3f3f7704c6a8d1bcd1bf4d50d6154b6da731b187b58dfd728afa36757a797ac188d1":"2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e"
|
||||
|
||||
ChaCha20 Paremeter Validation
|
||||
chacha20_bad_params:
|
||||
|
||||
ChaCha20 Selftest
|
||||
chacha20_self_test:
|
||||
|
||||
@@ -8,44 +8,43 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void chacha20_crypt(data_t *key_str,
|
||||
data_t *nonce_str,
|
||||
int counter,
|
||||
data_t *src_str,
|
||||
data_t *expected_output_str)
|
||||
void chacha20_crypt( data_t *key_str,
|
||||
data_t *nonce_str,
|
||||
int counter,
|
||||
data_t *src_str,
|
||||
data_t *expected_output_str )
|
||||
{
|
||||
unsigned char output[375];
|
||||
mbedtls_chacha20_context ctx;
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
|
||||
TEST_ASSERT(src_str->len == expected_output_str->len);
|
||||
TEST_ASSERT(key_str->len == 32U);
|
||||
TEST_ASSERT(nonce_str->len == 12U);
|
||||
TEST_ASSERT( src_str->len == expected_output_str->len );
|
||||
TEST_ASSERT( key_str->len == 32U );
|
||||
TEST_ASSERT( nonce_str->len == 12U );
|
||||
|
||||
/*
|
||||
* Test the integrated API
|
||||
*/
|
||||
TEST_ASSERT(mbedtls_chacha20_crypt(key_str->x, nonce_str->x, counter, src_str->len, src_str->x,
|
||||
output) == 0);
|
||||
TEST_ASSERT( mbedtls_chacha20_crypt( key_str->x, nonce_str->x, counter, src_str->len, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len);
|
||||
ASSERT_COMPARE( output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len );
|
||||
|
||||
/*
|
||||
* Test the streaming API
|
||||
*/
|
||||
mbedtls_chacha20_init(&ctx);
|
||||
mbedtls_chacha20_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_chacha20_setkey(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT( mbedtls_chacha20_setkey( &ctx, key_str->x ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_chacha20_starts(&ctx, nonce_str->x, counter) == 0);
|
||||
TEST_ASSERT( mbedtls_chacha20_starts( &ctx, nonce_str->x, counter ) == 0 );
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
TEST_ASSERT(mbedtls_chacha20_update(&ctx, src_str->len, src_str->x, output) == 0);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
TEST_ASSERT( mbedtls_chacha20_update( &ctx, src_str->len, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len);
|
||||
ASSERT_COMPARE( output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len );
|
||||
|
||||
/*
|
||||
* Test the streaming API again, piecewise
|
||||
@@ -53,23 +52,69 @@ void chacha20_crypt(data_t *key_str,
|
||||
|
||||
/* Don't free/init the context nor set the key again,
|
||||
* in order to test that starts() does the right thing. */
|
||||
TEST_ASSERT(mbedtls_chacha20_starts(&ctx, nonce_str->x, counter) == 0);
|
||||
TEST_ASSERT( mbedtls_chacha20_starts( &ctx, nonce_str->x, counter ) == 0 );
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
TEST_ASSERT(mbedtls_chacha20_update(&ctx, 1, src_str->x, output) == 0);
|
||||
TEST_ASSERT(mbedtls_chacha20_update(&ctx, src_str->len - 1,
|
||||
src_str->x + 1, output + 1) == 0);
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
TEST_ASSERT( mbedtls_chacha20_update( &ctx, 1, src_str->x, output ) == 0 );
|
||||
TEST_ASSERT( mbedtls_chacha20_update( &ctx, src_str->len - 1,
|
||||
src_str->x + 1, output + 1 ) == 0 );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len);
|
||||
ASSERT_COMPARE( output, expected_output_str->len,
|
||||
expected_output_str->x, expected_output_str->len );
|
||||
|
||||
mbedtls_chacha20_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void chacha20_bad_params()
|
||||
{
|
||||
unsigned char key[32];
|
||||
unsigned char nonce[12];
|
||||
unsigned char src[1];
|
||||
unsigned char dst[1];
|
||||
uint32_t counter = 0;
|
||||
size_t len = sizeof( src );
|
||||
mbedtls_chacha20_context ctx;
|
||||
|
||||
TEST_INVALID_PARAM( mbedtls_chacha20_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_chacha20_free( NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_setkey( NULL, key ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_setkey( &ctx, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_starts( NULL, nonce, counter ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_starts( &ctx, NULL, counter ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_update( NULL, 0, src, dst ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_update( &ctx, len, NULL, dst ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_update( &ctx, len, src, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_crypt( NULL, nonce, counter, 0, src, dst ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_crypt( key, NULL, counter, 0, src, dst ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_crypt( key, nonce, counter, len, NULL, dst ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA,
|
||||
mbedtls_chacha20_crypt( key, nonce, counter, len, src, NULL ) );
|
||||
|
||||
exit:
|
||||
return;
|
||||
|
||||
mbedtls_chacha20_free(&ctx);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void chacha20_self_test()
|
||||
{
|
||||
TEST_ASSERT(mbedtls_chacha20_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_chacha20_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -19,6 +19,9 @@ mbedtls_chachapoly_dec:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc
|
||||
ChaCha20-Poly1305 State Flow
|
||||
chachapoly_state:
|
||||
|
||||
ChaCha20-Poly1305 Parameter Validation
|
||||
chachapoly_bad_params:
|
||||
|
||||
ChaCha20-Poly1305 Selftest
|
||||
depends_on:MBEDTLS_SELF_TEST
|
||||
chachapoly_selftest:
|
||||
|
||||
@@ -8,71 +8,192 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_chachapoly_enc(data_t *key_str,
|
||||
data_t *nonce_str,
|
||||
data_t *aad_str,
|
||||
data_t *input_str,
|
||||
data_t *output_str,
|
||||
data_t *mac_str)
|
||||
void mbedtls_chachapoly_enc( data_t *key_str, data_t *nonce_str, data_t *aad_str, data_t *input_str, data_t *output_str, data_t *mac_str )
|
||||
{
|
||||
unsigned char output[265];
|
||||
unsigned char mac[16]; /* size set by the standard */
|
||||
mbedtls_chachapoly_context ctx;
|
||||
|
||||
TEST_ASSERT(key_str->len == 32);
|
||||
TEST_ASSERT(nonce_str->len == 12);
|
||||
TEST_ASSERT(mac_str->len == 16);
|
||||
TEST_ASSERT( key_str->len == 32 );
|
||||
TEST_ASSERT( nonce_str->len == 12 );
|
||||
TEST_ASSERT( mac_str->len == 16 );
|
||||
|
||||
mbedtls_chachapoly_init(&ctx);
|
||||
mbedtls_chachapoly_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key_str->x ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_chachapoly_encrypt_and_tag(&ctx,
|
||||
input_str->len, nonce_str->x,
|
||||
aad_str->x, aad_str->len,
|
||||
input_str->x, output, mac) == 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
input_str->len, nonce_str->x,
|
||||
aad_str->x, aad_str->len,
|
||||
input_str->x, output, mac ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(output_str->x, output, output_str->len) == 0);
|
||||
TEST_ASSERT(memcmp(mac_str->x, mac, 16U) == 0);
|
||||
TEST_ASSERT( memcmp( output_str->x, output, output_str->len ) == 0 );
|
||||
TEST_ASSERT( memcmp( mac_str->x, mac, 16U ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_chachapoly_free(&ctx);
|
||||
mbedtls_chachapoly_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_chachapoly_dec(data_t *key_str,
|
||||
data_t *nonce_str,
|
||||
data_t *aad_str,
|
||||
data_t *input_str,
|
||||
data_t *output_str,
|
||||
data_t *mac_str,
|
||||
int ret_exp)
|
||||
void mbedtls_chachapoly_dec( data_t *key_str, data_t *nonce_str, data_t *aad_str, data_t *input_str, data_t *output_str, data_t *mac_str, int ret_exp )
|
||||
{
|
||||
unsigned char output[265];
|
||||
int ret;
|
||||
mbedtls_chachapoly_context ctx;
|
||||
|
||||
TEST_ASSERT(key_str->len == 32);
|
||||
TEST_ASSERT(nonce_str->len == 12);
|
||||
TEST_ASSERT(mac_str->len == 16);
|
||||
TEST_ASSERT( key_str->len == 32 );
|
||||
TEST_ASSERT( nonce_str->len == 12 );
|
||||
TEST_ASSERT( mac_str->len == 16 );
|
||||
|
||||
mbedtls_chachapoly_init(&ctx);
|
||||
mbedtls_chachapoly_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key_str->x ) == 0 );
|
||||
|
||||
ret = mbedtls_chachapoly_auth_decrypt(&ctx,
|
||||
input_str->len, nonce_str->x,
|
||||
aad_str->x, aad_str->len,
|
||||
mac_str->x, input_str->x, output);
|
||||
ret = mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
input_str->len, nonce_str->x,
|
||||
aad_str->x, aad_str->len,
|
||||
mac_str->x, input_str->x, output );
|
||||
|
||||
TEST_ASSERT(ret == ret_exp);
|
||||
if (ret_exp == 0) {
|
||||
TEST_ASSERT(memcmp(output_str->x, output, output_str->len) == 0);
|
||||
TEST_ASSERT( ret == ret_exp );
|
||||
if( ret_exp == 0 )
|
||||
{
|
||||
TEST_ASSERT( memcmp( output_str->x, output, output_str->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_chachapoly_free(&ctx);
|
||||
mbedtls_chachapoly_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void chachapoly_bad_params()
|
||||
{
|
||||
unsigned char key[32];
|
||||
unsigned char nonce[12];
|
||||
unsigned char aad[1];
|
||||
unsigned char input[1];
|
||||
unsigned char output[1];
|
||||
unsigned char mac[16];
|
||||
size_t input_len = sizeof( input );
|
||||
size_t aad_len = sizeof( aad );
|
||||
mbedtls_chachapoly_context ctx;
|
||||
|
||||
memset( key, 0x00, sizeof( key ) );
|
||||
memset( nonce, 0x00, sizeof( nonce ) );
|
||||
memset( aad, 0x00, sizeof( aad ) );
|
||||
memset( input, 0x00, sizeof( input ) );
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
memset( mac, 0x00, sizeof( mac ) );
|
||||
|
||||
TEST_INVALID_PARAM( mbedtls_chachapoly_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_chachapoly_free( NULL ) );
|
||||
|
||||
/* setkey */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_setkey( NULL, key ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_setkey( &ctx, NULL ) );
|
||||
|
||||
/* encrypt_and_tag */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( NULL,
|
||||
0, nonce,
|
||||
aad, 0,
|
||||
input, output, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
0, NULL,
|
||||
aad, 0,
|
||||
input, output, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
0, nonce,
|
||||
NULL, aad_len,
|
||||
input, output, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
input_len, nonce,
|
||||
aad, 0,
|
||||
NULL, output, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
input_len, nonce,
|
||||
aad, 0,
|
||||
input, NULL, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_encrypt_and_tag( &ctx,
|
||||
0, nonce,
|
||||
aad, 0,
|
||||
input, output, NULL ) );
|
||||
|
||||
/* auth_decrypt */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( NULL,
|
||||
0, nonce,
|
||||
aad, 0,
|
||||
mac, input, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
0, NULL,
|
||||
aad, 0,
|
||||
mac, input, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
0, nonce,
|
||||
NULL, aad_len,
|
||||
mac, input, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
0, nonce,
|
||||
aad, 0,
|
||||
NULL, input, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
input_len, nonce,
|
||||
aad, 0,
|
||||
mac, NULL, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_auth_decrypt( &ctx,
|
||||
input_len, nonce,
|
||||
aad, 0,
|
||||
mac, input, NULL ) );
|
||||
|
||||
/* starts */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_starts( NULL, nonce,
|
||||
MBEDTLS_CHACHAPOLY_ENCRYPT ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_starts( &ctx, NULL,
|
||||
MBEDTLS_CHACHAPOLY_ENCRYPT ) );
|
||||
|
||||
/* update_aad */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_update_aad( NULL, aad,
|
||||
aad_len ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_update_aad( &ctx, NULL,
|
||||
aad_len ) );
|
||||
|
||||
/* update */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_update( NULL, input_len,
|
||||
input, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_update( &ctx, input_len,
|
||||
NULL, output ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_update( &ctx, input_len,
|
||||
input, NULL ) );
|
||||
|
||||
/* finish */
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_finish( NULL, mac ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA,
|
||||
mbedtls_chachapoly_finish( &ctx, NULL ) );
|
||||
|
||||
exit:
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -85,80 +206,80 @@ void chachapoly_state()
|
||||
unsigned char input[1];
|
||||
unsigned char output[1];
|
||||
unsigned char mac[16];
|
||||
size_t input_len = sizeof(input);
|
||||
size_t aad_len = sizeof(aad);
|
||||
size_t input_len = sizeof( input );
|
||||
size_t aad_len = sizeof( aad );
|
||||
mbedtls_chachapoly_context ctx;
|
||||
|
||||
memset(key, 0x00, sizeof(key));
|
||||
memset(nonce, 0x00, sizeof(nonce));
|
||||
memset(aad, 0x00, sizeof(aad));
|
||||
memset(input, 0x00, sizeof(input));
|
||||
memset(output, 0x00, sizeof(output));
|
||||
memset(mac, 0x00, sizeof(mac));
|
||||
memset( key, 0x00, sizeof( key ) );
|
||||
memset( nonce, 0x00, sizeof( nonce ) );
|
||||
memset( aad, 0x00, sizeof( aad ) );
|
||||
memset( input, 0x00, sizeof( input ) );
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
memset( mac, 0x00, sizeof( mac ) );
|
||||
|
||||
/* Initial state: finish, update, update_aad forbidden */
|
||||
mbedtls_chachapoly_init(&ctx);
|
||||
mbedtls_chachapoly_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
|
||||
/* Still initial state: finish, update, update_aad forbidden */
|
||||
TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key)
|
||||
== 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
|
||||
/* Starts -> finish OK */
|
||||
TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac)
|
||||
== 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac )
|
||||
== 0 );
|
||||
|
||||
/* After finish: update, update_aad forbidden */
|
||||
TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
|
||||
/* Starts -> update* OK */
|
||||
TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output)
|
||||
== 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output )
|
||||
== 0 );
|
||||
|
||||
/* After update: update_aad forbidden */
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE);
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== MBEDTLS_ERR_CHACHAPOLY_BAD_STATE );
|
||||
|
||||
/* Starts -> update_aad* -> finish OK */
|
||||
TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len)
|
||||
== 0);
|
||||
TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac)
|
||||
== 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac )
|
||||
== 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_chachapoly_free(&ctx);
|
||||
mbedtls_chachapoly_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void chachapoly_selftest()
|
||||
{
|
||||
TEST_ASSERT(mbedtls_chachapoly_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_chachapoly_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
103
externals/mbedtls/tests/suites/test_suite_cipher.arc4.data
vendored
Normal file
103
externals/mbedtls/tests/suites/test_suite_cipher.arc4.data
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
ARC4 Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:0:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:1:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:2:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:7:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:8:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:9:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:15:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:16:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:17:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:31:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:32:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:33:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:47:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:48:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARC4_128:"ARC4-128":128:49:-1
|
||||
|
||||
ARC4 Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:0:0:-1:0:0:0:0
|
||||
|
||||
ARC4 Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:1:0:-1:1:0:1:0
|
||||
|
||||
ARC4 Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:0:1:-1:0:1:0:1
|
||||
|
||||
ARC4 Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:16:0:-1:16:0:16:0
|
||||
|
||||
ARC4 Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:0:16:-1:0:16:0:16
|
||||
|
||||
ARC4 Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:1:15:-1:1:15:1:15
|
||||
|
||||
ARC4 Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:15:1:-1:15:1:15:1
|
||||
|
||||
ARC4 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:15:7:-1:15:7:15:7
|
||||
|
||||
ARC4 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:16:6:-1:16:6:16:6
|
||||
|
||||
ARC4 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:17:6:-1:17:6:17:6
|
||||
|
||||
ARC4 Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARC4_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARC4_128:128:16:16:-1:16:16:16:16
|
||||
@@ -1,351 +0,0 @@
|
||||
Aria CBC Decrypt empty buffer
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
dec_empty_buf:MBEDTLS_CIPHER_ARIA_128_CBC:0:0
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:0:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:1:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:2:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:7:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:8:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:9:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:15:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:16:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:17:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:31:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:32:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 33 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:33:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:47:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:48:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:"ARIA-128-CCM*-NO-TAG":128:49:-1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:0:0:-1:0:0:0:0
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:1:0:-1:1:0:1:0
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:0:1:-1:0:1:0:1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:16:0:-1:16:0:16:0
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:0:16:-1:0:16:0:16
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:1:15:-1:1:15:1:15
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:15:1:-1:15:1:15:1
|
||||
|
||||
ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:15:7:-1:15:7:15:7
|
||||
|
||||
ARIA-128-CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:16:6:-1:16:6:16:6
|
||||
|
||||
ARIA-128-CCM*-NO-TAG - Encrypt and decrypt 23 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:17:6:-1:17:6:17:6
|
||||
|
||||
ARIA-128-CCM*-NO-TAG - Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:128:16:16:-1:16:16:16:16
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:0:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:1:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:2:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:7:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:8:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:9:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:15:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:16:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:17:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:31:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:32:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 33 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:33:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:47:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:48:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:"ARIA-192-CCM*-NO-TAG":192:49:-1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:0:0:-1:0:0:0:0
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:1:0:-1:1:0:1:0
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:0:1:-1:0:1:0:1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:16:0:-1:16:0:16:0
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:0:16:-1:0:16:0:16
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:1:15:-1:1:15:1:15
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:15:1:-1:15:1:15:1
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:15:7:-1:15:7:15:7
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:16:6:-1:16:6:16:6
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 23 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:17:6:-1:17:6:17:6
|
||||
|
||||
ARIA-192-CCM*-NO-TAG - Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:192:16:16:-1:16:16:16:16
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:0:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:1:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:2:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:7:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:8:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:9:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:15:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:16:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:17:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:31:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:32:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 33 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:33:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:47:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:48:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:"ARIA-256-CCM*-NO-TAG":256:49:-1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:0:0:-1:0:0:0:0
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:1:0:-1:1:0:1:0
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:0:1:-1:0:1:0:1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:16:0:-1:16:0:16:0
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:0:16:-1:0:16:0:16
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:1:15:-1:1:15:1:15
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:15:1:-1:15:1:15:1
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:15:7:-1:15:7:15:7
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 22 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:16:6:-1:16:6:16:6
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 23 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:17:6:-1:17:6:17:6
|
||||
|
||||
ARIA-256-CCM*-NO-TAG - Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:256:16:16:-1:16:16:16:16
|
||||
|
||||
ARIA-128-CCM*-NO-TAG crypt Encrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"6781f39fdf8d1c44165fc40ee2fb11f1d6e2ddc8c6512b":0:0
|
||||
|
||||
ARIA-128-CCM*-NO-TAG crypt Decrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"6781f39fdf8d1c44165fc40ee2fb11f1d6e2ddc8c6512b":0:0
|
||||
|
||||
ARIA-192-CCM*-NO-TAG crypt Encrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFC0C1C2C3C4C5C6C7":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"993df86214d98ae70582c784903702e349dd64ece488c2":0:0
|
||||
|
||||
ARIA-192-CCM*-NO-TAG crypt Decrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFC0C1C2C3C4C5C6C7":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"993df86214d98ae70582c784903702e349dd64ece488c2":0:0
|
||||
|
||||
ARIA-256-CCM*-NO-TAG crypt Encrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"5fdd984a6aa77c1d9a204c08f28172c4b4528bee27c41f":0:0
|
||||
|
||||
ARIA-256-CCM*-NO-TAG crypt Decrypt
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CCM_C
|
||||
test_vec_crypt:MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"C0C1C2C3C4C5C6C7C8C9CACBCCCDCECFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECF":"00000003020100A0A1A2A3A4A5":"08090A0B0C0D0E0F101112131415161718191A1B1C1D1E":"5fdd984a6aa77c1d9a204c08f28172c4b4528bee27c41f":0:0
|
||||
|
||||
Check set padding - 128 bit key
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
check_set_padding:MBEDTLS_CIPHER_ARIA_128_CBC
|
||||
|
||||
Check set padding - 192 bit key
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
check_set_padding:MBEDTLS_CIPHER_ARIA_192_CBC
|
||||
|
||||
Check set padding - 256 bit key
|
||||
depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
check_set_padding:MBEDTLS_CIPHER_ARIA_256_CBC
|
||||
603
externals/mbedtls/tests/suites/test_suite_cipher.blowfish.data
vendored
Normal file
603
externals/mbedtls/tests/suites/test_suite_cipher.blowfish.data
vendored
Normal file
@@ -0,0 +1,603 @@
|
||||
BLOWFISH Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:0:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:1:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:2:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:7:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:8:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:9:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:15:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:16:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:17:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:31:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:32:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:33:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:47:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:48:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:49:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:0:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:1:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:2:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:7:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:8:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:9:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:15:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:16:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:17:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:31:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:32:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:33:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:47:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:48:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:49:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:0:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:1:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:2:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:7:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:8:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:9:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:15:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:16:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:17:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:31:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:32:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:33:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:47:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:48:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:49:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:0:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:1:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:2:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:7:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:8:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:9:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:15:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:16:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:17:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:31:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:32:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:33:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:47:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:48:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes with zeros padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:49:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:0:MBEDTLS_PADDING_NONE
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:8:MBEDTLS_PADDING_NONE
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:16:MBEDTLS_PADDING_NONE
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:32:MBEDTLS_PADDING_NONE
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":128:48:MBEDTLS_PADDING_NONE
|
||||
|
||||
BLOWFISH Try encrypting 1 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:1:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 2 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:2:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 7 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:7:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 9 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:9:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 15 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:15:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 17 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:17:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 31 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:31:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 33 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:33:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 47 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:47:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Try encrypting 49 bytes with no padding
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_NONE:128:49:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:0:0:-1:0:0:0:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:1:0:-1:0:0:0:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:0:1:-1:0:0:0:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:16:0:-1:16:0:8:8
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:0:16:-1:0:16:0:16
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:1:15:-1:0:16:0:16
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:15:1:-1:8:8:8:8
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:15:7:-1:8:8:8:8
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:16:6:-1:16:0:8:8
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:17:6:-1:16:0:16:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CBC:128:16:16:-1:16:16:8:24
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:0:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:1:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:2:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:7:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:8:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:9:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:15:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:16:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:17:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:31:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:32:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:33:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:47:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:48:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":128:49:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:0:0:-1:0:0:0:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:1:0:-1:1:0:1:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:0:1:-1:0:1:0:1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:16:0:-1:16:0:16:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:0:16:-1:0:16:0:16
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:1:15:-1:1:15:1:15
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:15:1:-1:15:1:15:1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:15:7:-1:15:7:15:7
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:16:6:-1:16:6:16:6
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:17:6:-1:17:6:17:6
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CFB64:128:16:16:-1:16:16:16:16
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:0:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:1:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:2:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:7:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:8:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:9:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:15:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:16:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:17:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:31:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:32:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:33:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:47:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:48:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":128:49:-1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:0:0:-1:0:0:0:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:1:0:-1:1:0:1:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:0:1:-1:0:1:0:1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:16:0:-1:16:0:16:0
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:0:16:-1:0:16:0:16
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:1:15:-1:1:15:1:15
|
||||
|
||||
BLOWFISH Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:15:1:-1:15:1:15:1
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:15:7:-1:15:7:15:7
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:16:6:-1:16:6:16:6
|
||||
|
||||
BLOWFISH Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:17:6:-1:17:6:17:6
|
||||
|
||||
BLOWFISH Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_BLOWFISH_CTR:128:16:16:-1:16:16:16:16
|
||||
|
||||
BLOWFISH CBC Encrypt and decrypt 7 bytes, 192-bits key
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CBC:"BLOWFISH-CBC":192:7:-1
|
||||
|
||||
BLOWFISH CTR Encrypt and decrypt 7 bytes, 192-bits key
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CTR:"BLOWFISH-CTR":192:7:-1
|
||||
|
||||
BLOWFISH CFB64 Encrypt and decrypt 7 bytes, 192-bits key
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
enc_dec_buf:MBEDTLS_CIPHER_BLOWFISH_CFB64:"BLOWFISH-CFB64":192:7:-1
|
||||
|
||||
BLOWFISH ECB Encrypt test vector (SSLeay) #1
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"0000000000000000":"4ef997456198dd78":0
|
||||
|
||||
BLOWFISH ECB Encrypt test vector (SSLeay) #2
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"51866fd5b85ecb8a":0
|
||||
|
||||
BLOWFISH ECB Encrypt test vector (SSLeay) #3
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_ENCRYPT:"fedcba9876543210fedcba9876543210":"0123456789abcdef":"0aceab0fc6a0a28d":0
|
||||
|
||||
BLOWFISH ECB Encrypt test vector (SSLeay) #3, 64-bit key
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_ENCRYPT:"fedcba9876543210":"0123456789abcdef":"0aceab0fc6a0a28d":0
|
||||
|
||||
BLOWFISH ECB Encrypt test vector (SSLeay) #3, 192-bit key
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_ENCRYPT:"fedcba9876543210fedcba9876543210fedcba9876543210":"0123456789abcdef":"0aceab0fc6a0a28d":0
|
||||
|
||||
BLOWFISH ECB Decrypt test vector (SSLeay) #1
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"4ef997456198dd78":"0000000000000000":0
|
||||
|
||||
BLOWFISH ECB Decrypt test vector (SSLeay) #2
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_DECRYPT:"ffffffffffffffffffffffffffffffff":"51866fd5b85ecb8a":"ffffffffffffffff":0
|
||||
|
||||
BLOWFISH ECB Decrypt test vector (SSLeay) #3
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_DECRYPT:"3849674c2602319e3849674c2602319e":"a25e7856cf2651eb":"51454b582ddf440a":0
|
||||
|
||||
BLOWFISH ECB Decrypt test vector (SSLeay) #3, 64-bit key
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_DECRYPT:"3849674c2602319e":"a25e7856cf2651eb":"51454b582ddf440a":0
|
||||
|
||||
BLOWFISH ECB Decrypt test vector (SSLeay) #3, 192-bit key
|
||||
depends_on:MBEDTLS_BLOWFISH_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_BLOWFISH_ECB:MBEDTLS_DECRYPT:"3849674c2602319e3849674c2602319e3849674c2602319e":"a25e7856cf2651eb":"51454b582ddf440a":0
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,3 @@
|
||||
Decrypt empty buffer
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
dec_empty_buf:MBEDTLS_CIPHER_CHACHA20:0:0
|
||||
|
||||
Chacha20 RFC 7539 Test Vector #1
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
decrypt_test_vec:MBEDTLS_CIPHER_CHACHA20:-1:"0000000000000000000000000000000000000000000000000000000000000000":"000000000000000000000000":"76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"":"":0:0
|
||||
@@ -113,23 +109,3 @@ enc_dec_buf_multipart:MBEDTLS_CIPHER_CHACHA20:256:6:16:-1:6:16:6:16
|
||||
ChaCha20 Encrypt and decrypt 32 bytes in multiple parts
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_CHACHA20:256:16:16:-1:16:16:16:16
|
||||
|
||||
ChaCha20 IV Length 0
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20:"CHACHA20":0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20 IV Length 11
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20:"CHACHA20":11:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20 IV Length 12
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20:"CHACHA20":12:0
|
||||
|
||||
ChaCha20 IV Length 13
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20:"CHACHA20":13:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20 IV Length 16
|
||||
depends_on:MBEDTLS_CHACHA20_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20:"CHACHA20":16:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Decrypt empty buffer
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
dec_empty_buf:MBEDTLS_CIPHER_CHACHA20_POLY1305:0:0
|
||||
dec_empty_buf:MBEDTLS_CIPHER_CHACHA20_POLY1305
|
||||
|
||||
ChaCha20+Poly1305 Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
@@ -112,32 +112,12 @@ enc_dec_buf_multipart:MBEDTLS_CIPHER_CHACHA20_POLY1305:256:16:16:-1:16:16:16:16
|
||||
|
||||
ChaCha20+Poly1305 RFC 7539 Test Vector #1
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_CHACHA20_POLY1305:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000102030405060708":"f33388860000000000004e91":"64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b":"eead9d67890cbb22392336fea1851f38":"":"496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67726573732e2fe2809d":0
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_CHACHA20_POLY1305:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000102030405060708":"f33388860000000000004e91":"64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b":"eead9d67890cbb22392336fea1851f38":"":"496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67726573732e2fe2809d"
|
||||
|
||||
ChaCha20+Poly1305 RFC 7539 Test Vector #1 Unauthentic (1st bit flipped)
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_CHACHA20_POLY1305:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000102030405060708":"f33388860000000000004e91":"64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b":"6ead9d67890cbb22392336fea1851f38":"FAIL":"":0
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_CHACHA20_POLY1305:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000102030405060708":"f33388860000000000004e91":"64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b":"6ead9d67890cbb22392336fea1851f38":"FAIL":""
|
||||
|
||||
Chacha20+Poly1305 RFC 7539 Test Vector #1 (streaming)
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
decrypt_test_vec:MBEDTLS_CIPHER_CHACHA20_POLY1305:-1:"1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0":"000000000102030405060708":"64a0861575861af460f062c79be643bd5e805cfd345cf389f108670ac76c8cb24c6cfc18755d43eea09ee94e382d26b0bdb7b73c321b0100d4f03b7f355894cf332f830e710b97ce98c8a84abd0b948114ad176e008d33bd60f982b1ff37c8559797a06ef4f0ef61c186324e2b3506383606907b6a7c02b0f9f6157b53c867e4b9166c767b804d46a59b5216cde7a4e99040c5a40433225ee282a1b0a06c523eaf4534d7f83fa1155b0047718cbc546a0d072b04b3564eea1b422273f548271a0bb2316053fa76991955ebd63159434ecebb4e466dae5a1073a6727627097a1049e617d91d361094fa68f0ff77987130305beaba2eda04df997b714d6c6f2c29a6ad5cb4022b02709b":"496e7465726e65742d4472616674732061726520647261667420646f63756d656e74732076616c696420666f722061206d6178696d756d206f6620736978206d6f6e74687320616e64206d617920626520757064617465642c207265706c616365642c206f72206f62736f6c65746564206279206f7468657220646f63756d656e747320617420616e792074696d652e20497420697320696e617070726f70726961746520746f2075736520496e7465726e65742d447261667473206173207265666572656e6365206d6174657269616c206f7220746f2063697465207468656d206f74686572207468616e206173202fe2809c776f726b20696e2070726f67726573732e2fe2809d":"f33388860000000000004e91":"eead9d67890cbb22392336fea1851f38":0:0
|
||||
|
||||
ChaCha20+Poly1305 IV Length 0
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20_POLY1305:"CHACHA20-POLY1305":0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20+Poly1305 IV Length 11
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20_POLY1305:"CHACHA20-POLY1305":11:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20+Poly1305 IV Length 12
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20_POLY1305:"CHACHA20-POLY1305":12:0
|
||||
|
||||
ChaCha20+Poly1305 IV Length 13
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20_POLY1305:"CHACHA20-POLY1305":13:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
ChaCha20+Poly1305 IV Length 16
|
||||
depends_on:MBEDTLS_CHACHAPOLY_C
|
||||
iv_len_validity:MBEDTLS_CIPHER_CHACHA20_POLY1305:"CHACHA20-POLY1305":16:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
@@ -1,578 +1,554 @@
|
||||
DES CBC Decrypt empty buffer
|
||||
DES Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
dec_empty_buf:MBEDTLS_CIPHER_DES_CBC:0:0
|
||||
|
||||
DES EDE CBC Decrypt empty buffer
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
dec_empty_buf:MBEDTLS_CIPHER_DES_EDE_CBC:0:0
|
||||
|
||||
DES EDE3 CBC Decrypt empty buffer
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
dec_empty_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:0:0
|
||||
|
||||
DES Encrypt and decrypt 0 bytes [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:-1
|
||||
|
||||
DES Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:-1
|
||||
|
||||
DES Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:-1
|
||||
|
||||
DES Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:-1
|
||||
|
||||
DES Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:-1
|
||||
|
||||
DES Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:-1
|
||||
|
||||
DES Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:-1
|
||||
|
||||
DES Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:-1
|
||||
|
||||
DES Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:-1
|
||||
|
||||
DES Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:-1
|
||||
|
||||
DES Encrypt and decrypt 32 bytes [#1]
|
||||
DES Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:-1
|
||||
|
||||
DES Encrypt and decrypt 33 bytes [#2]
|
||||
DES Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:-1
|
||||
|
||||
DES Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:-1
|
||||
|
||||
DES Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:-1
|
||||
|
||||
DES Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:-1
|
||||
|
||||
DES Encrypt and decrypt 0 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 1 byte with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 2 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 7 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 8 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 9 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 15 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 16 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 17 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 31 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with one and zeros padding [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
DES Encrypt and decrypt 32 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with one and zeros padding [#2]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
DES Encrypt and decrypt 32 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 47 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 48 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 49 bytes with one and zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ONE_AND_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 0 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 1 byte with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 2 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 7 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 8 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 9 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 15 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 16 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 17 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 31 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with zeros and len padding [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
DES Encrypt and decrypt 32 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with zeros and len padding [#2]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
DES Encrypt and decrypt 32 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 47 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 48 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 49 bytes with zeros and len padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS_AND_LEN
|
||||
|
||||
DES Encrypt and decrypt 0 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 1 byte with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 2 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 7 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 8 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 9 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 15 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 16 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 17 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 31 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with zeros padding [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
DES Encrypt and decrypt 32 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with zeros padding [#2]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
DES Encrypt and decrypt 32 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 47 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 48 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 49 bytes with zeros padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS
|
||||
|
||||
DES Encrypt and decrypt 0 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES Encrypt and decrypt 8 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES Encrypt and decrypt 16 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES Encrypt and decrypt 32 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES Encrypt and decrypt 48 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES Try encrypting 1 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:1:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 2 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:2:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 7 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:7:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 9 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:9:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 15 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:15:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 17 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:17:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 31 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:31:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 33 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:33:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 47 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:47:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Try encrypting 49 bytes with no padding
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:49:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED
|
||||
|
||||
DES Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:0:-1:0:0:0:0
|
||||
|
||||
DES Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:1:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:1:0:-1:0:0:0:0
|
||||
|
||||
DES Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:1:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:1:-1:0:0:0:0
|
||||
|
||||
DES Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:0:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:0:-1:16:0:8:8
|
||||
|
||||
DES Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:16:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:0:16:-1:0:16:0:16
|
||||
|
||||
DES Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:1:15:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:1:15:-1:0:16:0:16
|
||||
|
||||
DES Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:15:1:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:15:1:-1:8:8:8:8
|
||||
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1 [#1]
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:15:7:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:15:7:-1:8:8:8:8
|
||||
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1 [#2]
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:6:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:6:-1:16:0:8:8
|
||||
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1 [#3]
|
||||
DES Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:17:6:MBEDTLS_PADDING_PKCS7:16:0:16:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:17:6:-1:16:0:16:0
|
||||
|
||||
DES Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:16:MBEDTLS_PADDING_PKCS7:16:16:8:24
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_CBC:64:16:16:-1:16:16:8:24
|
||||
|
||||
DES Encrypt and decrypt 0 bytes [#2]
|
||||
DES Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:0:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:0:-1
|
||||
|
||||
DES3 Encrypt and decrypt 1 byte [#1]
|
||||
DES3 Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:1:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:1:-1
|
||||
|
||||
DES3 Encrypt and decrypt 2 bytes [#1]
|
||||
DES3 Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:2:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:2:-1
|
||||
|
||||
DES3 Encrypt and decrypt 7 bytes [#1]
|
||||
DES3 Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:7:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:7:-1
|
||||
|
||||
DES3 Encrypt and decrypt 8 bytes [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:8:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 9 bytes [#1]
|
||||
DES3 Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:9:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:8:-1
|
||||
|
||||
DES3 Encrypt and decrypt 15 bytes [#1]
|
||||
DES3 Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:15:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:9:-1
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:16:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 17 bytes [#1]
|
||||
DES3 Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:17:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:15:-1
|
||||
|
||||
DES3 Encrypt and decrypt 31 bytes [#1]
|
||||
DES3 Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:31:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:16:-1
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes [#1]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:32:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 33 bytes [#2]
|
||||
DES3 Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:33:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:17:-1
|
||||
|
||||
DES3 Encrypt and decrypt 47 bytes [#1]
|
||||
DES3 Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:47:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:31:-1
|
||||
|
||||
DES3 Encrypt and decrypt 48 bytes [#1]
|
||||
DES3 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:48:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:32:-1
|
||||
|
||||
DES3 Encrypt and decrypt 49 bytes [#1]
|
||||
DES3 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:49:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:33:-1
|
||||
|
||||
DES3 Encrypt and decrypt 0 bytes in multiple parts [#1]
|
||||
DES3 Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:47:-1
|
||||
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 1 [#1]
|
||||
DES3 Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:1:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:48:-1
|
||||
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 2 [#1]
|
||||
DES3 Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:1:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE_CBC:"DES-EDE-CBC":128:49:-1
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 1 [#1]
|
||||
DES3 Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:0:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:0:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 2 [#1]
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:16:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:1:0:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 3 [#1]
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:1:15:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:1:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 4 [#1]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:15:1:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:0:-1:16:0:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#1]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:15:7:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:0:16:-1:0:16:0:16
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:6:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:1:15:-1:0:16:0:16
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#3]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:17:6:MBEDTLS_PADDING_PKCS7:16:0:16:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:15:1:-1:8:8:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes in multiple parts 1 [#1]
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:16:MBEDTLS_PADDING_PKCS7:16:16:8:24
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:15:7:-1:8:8:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:6:-1:16:0:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:17:6:-1:16:0:16:0
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE_CBC:128:16:16:-1:16:16:8:24
|
||||
|
||||
DES3 Encrypt and decrypt 0 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:0:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:0:-1
|
||||
|
||||
DES3 Encrypt and decrypt 1 byte [#2]
|
||||
DES3 Encrypt and decrypt 1 byte
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:1:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:1:-1
|
||||
|
||||
DES3 Encrypt and decrypt 2 bytes [#2]
|
||||
DES3 Encrypt and decrypt 2 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:2:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:2:-1
|
||||
|
||||
DES3 Encrypt and decrypt 7 bytes [#2]
|
||||
DES3 Encrypt and decrypt 7 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:7:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:7:-1
|
||||
|
||||
DES3 Encrypt and decrypt 8 bytes [#2]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:8:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 8 bytes (PKCS7 padding) [#2]
|
||||
DES3 Encrypt and decrypt 8 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:8:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:8:-1
|
||||
|
||||
DES3 Encrypt and decrypt 9 bytes [#2]
|
||||
DES3 Encrypt and decrypt 9 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:9:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:9:-1
|
||||
|
||||
DES3 Encrypt and decrypt 15 bytes [#2]
|
||||
DES3 Encrypt and decrypt 15 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:15:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:15:-1
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes [#2]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:16:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes (PKCS7 padding) [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:16:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:16:-1
|
||||
|
||||
DES3 Encrypt and decrypt 17 bytes [#2]
|
||||
DES3 Encrypt and decrypt 17 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:17:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:17:-1
|
||||
|
||||
DES3 Encrypt and decrypt 31 bytes [#2]
|
||||
DES3 Encrypt and decrypt 31 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:31:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:31:-1
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes [#3]
|
||||
DES3 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:32:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:32:-1
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes (PKCS7 padding) [#3]
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:32:MBEDTLS_PADDING_NONE
|
||||
|
||||
DES3 Encrypt and decrypt 33 bytes [#4]
|
||||
DES3 Encrypt and decrypt 32 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:33:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:33:-1
|
||||
|
||||
DES3 Encrypt and decrypt 47 bytes [#2]
|
||||
DES3 Encrypt and decrypt 47 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:47:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:47:-1
|
||||
|
||||
DES3 Encrypt and decrypt 48 bytes [#2]
|
||||
DES3 Encrypt and decrypt 48 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:48:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:48:-1
|
||||
|
||||
DES3 Encrypt and decrypt 49 bytes [#2]
|
||||
DES3 Encrypt and decrypt 49 bytes
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:49:MBEDTLS_PADDING_PKCS7
|
||||
enc_dec_buf:MBEDTLS_CIPHER_DES_EDE3_CBC:"DES-EDE3-CBC":192:49:-1
|
||||
|
||||
DES3 Encrypt and decrypt 0 bytes in multiple parts [#2]
|
||||
DES3 Encrypt and decrypt 0 bytes in multiple parts
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:0:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 1 [#2]
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:1:0:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:1:0:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 2 [#2]
|
||||
DES3 Encrypt and decrypt 1 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:1:MBEDTLS_PADDING_PKCS7:0:0:0:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:1:-1:0:0:0:0
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 1 [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:0:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:0:-1:16:0:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 2 [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 2
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:16:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:0:16:-1:0:16:0:16
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 3 [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 3
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:1:15:MBEDTLS_PADDING_PKCS7:0:16:0:16
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:1:15:-1:0:16:0:16
|
||||
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 4 [#2]
|
||||
DES3 Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:15:1:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:15:1:-1:8:8:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#4]
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:15:7:MBEDTLS_PADDING_PKCS7:8:8:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:15:7:-1:8:8:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#5]
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:6:MBEDTLS_PADDING_PKCS7:16:0:8:8
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:6:-1:16:0:8:8
|
||||
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1 [#6]
|
||||
DES3 Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:17:6:MBEDTLS_PADDING_PKCS7:16:0:16:0
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:17:6:-1:16:0:16:0
|
||||
|
||||
DES3 Encrypt and decrypt 32 bytes in multiple parts 1 [#2]
|
||||
DES3 Encrypt and decrypt 32 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:16:MBEDTLS_PADDING_PKCS7:16:16:8:24
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_DES_EDE3_CBC:192:16:16:-1:16:16:8:24
|
||||
|
||||
DES ECB Encrypt test vector (OpenSSL) #1
|
||||
depends_on:MBEDTLS_DES_C
|
||||
@@ -613,11 +589,3 @@ test_vec_ecb:MBEDTLS_CIPHER_DES_EDE_ECB:MBEDTLS_DECRYPT:"0000000000000000FFFFFFF
|
||||
DES3-EDE ECB Decrypt test vector (OpenSSL) #2
|
||||
depends_on:MBEDTLS_DES_C
|
||||
test_vec_ecb:MBEDTLS_CIPHER_DES_EDE_ECB:MBEDTLS_DECRYPT:"FFFFFFFFFFFFFFFF3000000000000000":"199E9D6DF39AA816":"FFFFFFFFFFFFFFFF":0
|
||||
|
||||
Check set padding - DES
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
check_set_padding:MBEDTLS_CIPHER_DES_EDE_CBC
|
||||
|
||||
Check set padding - Triple DES
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
check_set_padding:MBEDTLS_CIPHER_DES_EDE3_CBC
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,278 +0,0 @@
|
||||
KW AES-128 wrap - Decrypt empty buffer
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
dec_empty_buf:MBEDTLS_CIPHER_AES_128_KW:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE
|
||||
|
||||
KWP AES-128 wrap - Decrypt empty buffer
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
dec_empty_buf:MBEDTLS_CIPHER_AES_128_KWP:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE
|
||||
|
||||
KW AES-128 wrap rfc 3394
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"000102030405060708090A0B0C0D0E0F":"":"":"1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5":"":"":"00112233445566778899AABBCCDDEEFF":0
|
||||
|
||||
KW AES-192 wrap rfc 3394
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"000102030405060708090A0B0C0D0E0F1011121314151617":"":"":"96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D":"":"":"00112233445566778899AABBCCDDEEFF":0
|
||||
|
||||
KW AES-256 wrap rfc 3394 [#1]
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F":"":"":"A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1":"":"":"00112233445566778899AABBCCDDEEFF0001020304050607":0
|
||||
|
||||
KW AES-256 wrap rfc 3394 [#2]
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F":"":"":"64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7":"":"":"00112233445566778899AABBCCDDEEFF":0
|
||||
|
||||
KWP AES-192 RFC 5649 #1
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8":"":"":"138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a":"":"":"c37b7e6492584340bed12207808941155068f738":0
|
||||
|
||||
KWP AES-192 RFC 5649 #2
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8":"":"":"afbeb0f07dfbf5419200f2ccb50bb24f":"":"":"466f7250617369":0
|
||||
|
||||
KWP AES-128 1 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"A9D2D4394815D53F2799ABD7E51D2C8B":"":"":"00":0
|
||||
|
||||
KWP AES-128 2 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"36D0CA197F638BF478D022C7E543B699":"":"":"0001":0
|
||||
|
||||
KWP AES-128 3 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"DAB4EE2853E1C44C5E553E644143902B":"":"":"000102":0
|
||||
|
||||
KWP AES-128 4 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"446C037F831092B147C372616357BF7D":"":"":"00010203":0
|
||||
|
||||
KWP AES-128 5 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"9ED0AF6457B82E0DDADBD2240A303D74":"":"":"0001020304":0
|
||||
|
||||
KWP AES-128 6 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"D863A8CE0DF301A564945259B4F74E7D":"":"":"000102030405":0
|
||||
|
||||
KWP AES-128 7 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"E8387E5456242B0C30BE77FC1FF0C1FD":"":"":"00010203040506":0
|
||||
|
||||
KWP AES-128 8 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"01FF4C430CDF3D2D815B0972B23D7C35":"":"":"0001020304050607":0
|
||||
|
||||
KWP AES-128 9 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"C06E2163E0CC845B348E012AC9413DEEE40C8C3B030A3681":"":"":"000102030405060708":0
|
||||
|
||||
KWP AES-128 10 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"3DFD2F643C38B07E121C77C2CA0EF82DA742B0989B6D848E":"":"":"00010203040506070809":0
|
||||
|
||||
KWP AES-128 11 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"AFAEF390634E21E754FD09F55A4EDD918A1D23ECA9B76F2B":"":"":"000102030405060708090A":0
|
||||
|
||||
KWP AES-128 12 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"A42D14C830F64F0A73570BFA7FDF8DDDD5E3AD3065A09FB0":"":"":"000102030405060708090A0B":0
|
||||
|
||||
KWP AES-128 13 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"83F23527625FC643942279D090C1B61D10FC978B54D778CD":"":"":"000102030405060708090A0B0C":0
|
||||
|
||||
KWP AES-128 14 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"E073C30E0DAC595F9FD28A0CB9E53945B26D1E1DE4E66D04":"":"":"000102030405060708090A0B0C0D":0
|
||||
|
||||
KWP AES-128 15 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"64E3C2F7E0F7CB297C6B8C4CAF665F9F0A3F7082D2522635":"":"":"000102030405060708090A0B0C0D0E":0
|
||||
|
||||
KWP AES-128 16 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"8F5982C7D265A0A40FC81D2326429A0A65BCD1368F0E16CB":"":"":"000102030405060708090A0B0C0D0E0F":0
|
||||
|
||||
KWP AES-128 17 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"E29EC6664BCBA00986DD9845F8C4B26472BFDDF98522E537B5D23D5D2A8D02C5":"":"":"000102030405060708090A0B0C0D0E0F10":0
|
||||
|
||||
KWP AES-128 18 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"9451ABCA0B9756A183F8C9ADA834E1AD2400B693C33624E59F26C35AC1586E2B":"":"":"000102030405060708090A0B0C0D0E0F1011":0
|
||||
|
||||
KWP AES-128 19 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"F03CB49A65FD3EF8FC83C52F029A3D73667D5B84DB429C38436619ED8320D12E":"":"":"000102030405060708090A0B0C0D0E0F101112":0
|
||||
|
||||
KWP AES-128 20 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"759524B855037849812D62979A18F24D3E672C2663DEA9204BA5A639FB7DB292":"":"":"000102030405060708090A0B0C0D0E0F10111213":0
|
||||
|
||||
KWP AES-128 21 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"F352B8228FBFA0769C2E3858D7451FA603E9B751CFE780ED0F93C850C7870259":"":"":"000102030405060708090A0B0C0D0E0F1011121314":0
|
||||
|
||||
KWP AES-128 22 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"3491F4C8D916A1BC3824D1478EC746BE8C837415017ED52A1ABC30FB14DDE825":"":"":"000102030405060708090A0B0C0D0E0F101112131415":0
|
||||
|
||||
KWP AES-128 23 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"0E6E35C5B9D706C2FF2C4C6CFCF254849879D6C1CB577E0A73BB12CBC7AC9740":"":"":"000102030405060708090A0B0C0D0E0F10111213141516":0
|
||||
|
||||
KWP AES-128 24 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"E7DB580663B113B57489E1107F2DCAF7CF80629E7CE1839E1ED044ECD0299E79":"":"":"000102030405060708090A0B0C0D0E0F1011121314151617":0
|
||||
|
||||
KWP AES-128 25 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"883500DB91747BAD8C5E122ED2338F3BCB6B43064F5DA9D1303E165815EC8CC4C5BFD31AEAE1B6A3":"":"":"000102030405060708090A0B0C0D0E0F101112131415161718":0
|
||||
|
||||
KWP AES-128 26 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"24099AAAD4F19BF614ECC35DA9E3646F73AAFAA9C46975D4B56D72A332AF7EC4850B8294D94B7E1A":"":"":"000102030405060708090A0B0C0D0E0F10111213141516171819":0
|
||||
|
||||
KWP AES-128 27 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"C24F8CCE3425AC9638145A0DAC28B59368583FF3A7AAD85FBE1AEAAB5D23C0B128A1F9BC575B785A":"":"":"000102030405060708090A0B0C0D0E0F101112131415161718191A":0
|
||||
|
||||
KWP AES-128 28 byte input
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"00000000000000000000000000000000":"":"":"EFD0BC7612331A98F2D68F86E606717197BF57E35114234C675D40E9462ACF00DE7860C0F38677F7":"":"":"000102030405060708090A0B0C0D0E0F101112131415161718191A1B":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 COUNT 0 PLEN 16 [#1]
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"7575da3a93607cc2bfd8cec7aadfd9a6":"":"":"031f6bd7e61e643df68594816f64caa3f56fabea2548f5fb":"":"":"42136d3c384a3eeac95a066fd28fed3f":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 COUNT 0 PLEN 16 [#2]
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"7575da3a93607cc2bfd8cec7aadfd9a7":"":"":"031f6bd7e61e643df68594816f64cbb3f56fabea2548f5fb":"":"FAIL":"":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 COUNT 0 PLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"e5d058e7f1c22c016c4e1cc9b26b9f8f":"":"":"60b9f8ac797c56e01e9b5f84d65816a980777869f67991a0e6dc19b8cd75c9b54db4a38456bbd6f3":"":"":"7f604e9b8d39d3c91e193fe6f196c1e3da6211a7c9a33b8873b64b138d1803e4":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 COUNT 0 PLEN 24
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"67ae4270bcdd31e8326b7e7f94c80276":"":"":"96cec0e3272a21faa550a857957aa38ce3c1cf06f0dd9f5b5c5c422cef6c69a1":"":"":"57e748b62fbc37ba25e904ee973d01b136cf7c1d0c8c5c87":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 COUNT 0 PLEN 16
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"a6a3f6d509811859238fc569b5664605f7a73c475a691a8f":"":"":"57d7a4b4e85ffdcb7788b9b666cb63303dd2c5d0f11b1bbb":"":"":"8484e414b091f8a9f72cfd13087ddec1":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 COUNT 0 PLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"3686e50dd602f84024570f545bbf618362bef80d45472436":"":"":"c7d5a1a5dfeb7327acbb94767d74cc2afc622ffd01f854d7d3e2b6f75ca7e8f441a0c0bad3d26ee2":"":"":"d780d69b45483b682d311ccaaadcfa3a1cecf1f05dbe2ebc71e6d3fa979f3de8":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 COUNT 0 PLEN 24
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"0a833412e7aa1384ff26866dc9c551bf60413c17e847d317":"":"":"3a7efd629305bf1d61360ed6ff8ec7d059e8af3e5104c29729adb55d1bb94f7e":"":"":"f734760cc0fa3bbfb271277d4f29a48ddecda733d610fa42":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 COUNT 0 PLEN 16
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"f59782f1dceb0544a8da06b34969b9212b55ce6dcbdd0975a33f4b3f88b538da":"":"":"2e63946ea3c090902fa1558375fdb2907742ac74e39403fc":"":"":"73d33060b5f9f2eb5785c0703ddfa704":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 COUNT 0 PLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"8b54e6bc3d20e823d96343dc776c0db10c51708ceecc9a38a14beb4ca5b8b221":"":"":"b13eeb7619fab818f1519266516ceb82abc0e699a7153cf26edcb8aeb879f4c011da906841fc5956":"":"":"d6192635c620dee3054e0963396b260af5c6f02695a5205f159541b4bc584bac":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 COUNT 0 PLEN 24
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"112ad41b4856c7254a9848d30fdd78335b039a48a8962c4d1cb78eabd5dad788":"":"":"ba8a259a471b787dd5d540ec25d43d87200fdadc6d1f05d916584fa9f6cbf512":"":"":"1b20bf1990b065d798e1b32264ad50a8747492ba09a04dd1":0
|
||||
|
||||
KWP AES-128 wrap CAVS 17.4 COUNT 0 PLEN 1
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"6decf10a1caf8e3b80c7a4be8c9c84e8":"":"":"01a7d657fc4a5b216f261cca4d052c2b":"":"":"49":0
|
||||
|
||||
KWP AES-128 wrap CAVS 17.4 COUNT 0 PLEN 8
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"a8e06da625a65b25cf5030826830b661":"":"":"b6f967616dd8d772e9fea295a456dba7":"":"":"43acff293120dd5d":0
|
||||
|
||||
KWP AES-128 wrap CAVS 17.4 COUNT 0 PLEN 9
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"7865e20f3c21659ab4690b629cdf3cc4":"":"":"41eca956d4aa047eb5cf4efe659661e74db6f8c564e23500":"":"":"bd6843d420378dc896":0
|
||||
|
||||
KWP AES-128 wrap CAVS 17.4 COUNT 0 PLEN 31
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"be96dc195ec034d616486ed70e97fe83":"":"":"974769b3a7b4d5d32985f87fddf9990631e5610fbfb278387b58b1f48e05c77d2fb7575c5169eb0e":"":"":"85b5437b6335ebba7635903a4493d12a77d9357a9e0dbc013456d85f1d3201":0
|
||||
|
||||
KWP AES-192 wrap CAVS 17.4 COUNT 0 PLEN 1
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"9ca11078baebc1597a68ce2fe3fc79a201626575252b8860":"":"":"866bc0ae30e290bb20a0dab31a6e7165":"":"":"76":0
|
||||
|
||||
KWP AES-192 wrap CAVS 17.4 COUNT 0 PLEN 8
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"c5029804d28341ca267c9e73afc5f963b14bb604708b43f2":"":"":"15b98046b2a3a49b9c0831c476fc34fb":"":"":"e6eb18a3e969ab5c":0
|
||||
|
||||
KWP AES-192 wrap CAVS 17.4 COUNT 0 PLEN 9
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"9464f1af6aabad076661328bcfd15777da16a288a2660009":"":"":"d9b257b400d808a0b0386af3be9154fc7f2fb2d7edc06201":"":"":"431527c3a644c106bb":0
|
||||
|
||||
KWP AES-192 wrap CAVS 17.4 COUNT 0 PLEN 31
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"a354ccd6dd97cf40bed840f8137e0cf2e91c00e592104765":"":"":"f018e7c8d6dcdbd20606502b2667439d9049a9a2d5c960af8e9251466d6ff8923fb82432b299f1a4":"":"":"22ccc034c5345550f5bc0114f2951f0fe439ec3ecd8ac1fea8889dd12bfb8e":0
|
||||
|
||||
KWP AES-256 wrap CAVS 17.4 COUNT 0 PLEN 1
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KWP:"95da2700ca6fd9a52554ee2a8df1386f5b94a1a60ed8a4aef60a8d61ab5f225a":"":"":"06ba7ae6f3248cfdcf267507fa001bc4":"":"":"d1":0
|
||||
|
||||
KWP AES-256 wrap CAVS 17.4 COUNT 0 PLEN 8
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KWP:"3517f0efa7f0c4d74f91af83ece5e7503bcc5ab82907a6e4b7ed34d87b69ab1d":"":"":"0b06a9b635d50cda9d4210cb3a71f990":"":"":"897e0456b289ad31":0
|
||||
|
||||
KWP AES-256 wrap CAVS 17.4 COUNT 0 PLEN 9
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KWP:"70da43aac823c6dd37d1109f5b18feb4503c973288989745e2cc1cc21d9570c6":"":"":"d67b5b2ad15c645450e23b5e7b6d682f8ae20e716d470db7":"":"":"edf17d966ed896aee3":0
|
||||
|
||||
KWP AES-256 wrap CAVS 17.4 COUNT 0 PLEN 31
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KWP:"e9bb7f44c7baafbf392ab912589a2f8db53268106eafb74689bb1833136e6113":"":"":"15b9f06fbc765e5e3d55d6b824616f21921d2a6918ee7bf1406b524274e170b4a78333ca5ee92af5":"":"":"ffe952604834bff899e63658f34246815c91597eb40a21729e0a8a959b61f2":0
|
||||
KW AES-128 wrap CAVS 17.4 FAIL COUNT 1 CLEN 48
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"5d4899ee66beff1bda1fc717a1ad4c50":"":"":"bb7fd0bce778bd775e4e88d904d26a7134364c53a6c493a0":"":"FAIL":"":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 FAIL COUNT 1 CLEN 80
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"84bc6ce7ee4fd9db512536669d0686da":"":"":"c383db930ffd02c0073ac2cc79ec289e6866bdcc6a135a3b776aa42f14ee04f9cca06ed6c0b22901":"":"FAIL":"":0
|
||||
|
||||
KW AES-128 wrap CAVS 17.4 FAIL COUNT 3 CLEN 64
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KW:"266b009e911bb55f9aa0661539a6fdd5":"":"":"db9c94e7236ec56982d7ddeb9427c24580bc1fb96db98ab19340e03670045b7a":"":"FAIL":"":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 FAIL COUNT 3 CLEN 48
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"9200a0f688d86c0b6bfd9abeff66341684a373fe3f9a3057":"":"":"5c685c8596e374710fe327bafc45cd09190215fdcc03d010":"":"FAIL":"":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 FAIL COUNT 1 CLEN 80
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"95c9e644559919cace6f93f545dbfe48b130808ed66d0964":"":"":"7b8d1307e992221f6ffdcc7909d972d5f02e92187139cfd77f79345cb998bbdbabedb3ac00a6cdc4":"":"FAIL":"":0
|
||||
|
||||
KW AES-192 wrap CAVS 17.4 FAIL COUNT 2 CLEN 64
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KW:"e218e9643d5db01b412fcaefafe5eb237d03acfad0a3abaa":"":"":"5eee8fbf6a8ab6ba371f4581982ec61839bf28c0eb913d1f417a284dccd72580":"":"FAIL":"":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 FAIL COUNT 4 CLEN 48
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"08c936b25b567a0aa679c29f201bf8b190327df0c2563e39cee061f149f4d91b":"":"":"e227eb8ae9d239ccd8928adec39c28810ca9b3dc1f366444":"":"FAIL":"":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 FAIL COUNT 3 CLEN 80
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"605b22935f1eee56ba884bc7a869febc159ac306b66fb9767a7cc6ab7068dffa":"":"":"6607f5a64c8f9fd96dc6f9f735b06a193762cdbacfc367e410926c1bfe6dd715490adbad5b9697a6":"":"FAIL":"":0
|
||||
|
||||
KW AES-256 wrap CAVS 17.4 FAIL COUNT 3 CLEN 64
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KW:"81c93da5baa5157bf700fd38d7d67662670778b690cfbca9fe11e06268b35605":"":"":"875e1ca385586f83d1e23e44ca201006df04e1854e41b933fd607a7383ae1a39":"":"FAIL":"":0
|
||||
|
||||
KWP AES-128 wrap CAVS 17.4 FAIL COUNT 1 CLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_128_KWP:"30be7ff51227f0eef786cb7be2482510":"":"":"7f61a0a8b2fe7803f2947d233ec3a255":"":"FAIL":"":0
|
||||
|
||||
KWP AES-192 wrap CAVS 17.4 FAIL COUNT 3 CLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_192_KWP:"21fb6600c1d34a74adee67612672593a86cf235421735350":"":"":"56b45c49c3e379b18d9c38b6423db133":"":"FAIL":"":0
|
||||
|
||||
KWP AES-256 wrap CAVS 17.4 FAIL COUNT 4 CLEN 32
|
||||
depends_on:MBEDTLS_AES_C:MBEDTLS_NIST_KW_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
auth_crypt_tv:MBEDTLS_CIPHER_AES_256_KWP:"c32cb3e1e41a4b9f4de79989957866f5dd48dba38c22a6ebb80e14c84bdd9534":"":"":"c29b05c2619a58ecc1d239e7a34273cd":"":"FAIL":"":0
|
||||
@@ -78,15 +78,15 @@ NULL Encrypt and decrypt 16 bytes in multiple parts 4
|
||||
depends_on:MBEDTLS_CIPHER_NULL_CIPHER
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_NULL:0:15:1:-1:15:1:15:1
|
||||
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1 [#1]
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_CIPHER_NULL_CIPHER
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_NULL:0:15:7:-1:15:7:15:7
|
||||
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1 [#2]
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_CIPHER_NULL_CIPHER
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_NULL:0:16:6:-1:16:6:16:6
|
||||
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1 [#3]
|
||||
NULL Encrypt and decrypt 22 bytes in multiple parts 1
|
||||
depends_on:MBEDTLS_CIPHER_NULL_CIPHER
|
||||
enc_dec_buf_multipart:MBEDTLS_CIPHER_NULL:0:17:6:-1:17:6:17:6
|
||||
|
||||
|
||||
@@ -29,6 +29,18 @@ Set padding with DES-CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
set_padding:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_PKCS7:0
|
||||
|
||||
Set padding with BLOWFISH-CBC
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
set_padding:MBEDTLS_CIPHER_BLOWFISH_CBC:MBEDTLS_PADDING_PKCS7:0
|
||||
|
||||
Set padding with BLOWFISH-CFB
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CFB
|
||||
set_padding:MBEDTLS_CIPHER_BLOWFISH_CFB64:MBEDTLS_PADDING_PKCS7:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
Set padding with BLOWFISH-CTR
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CTR
|
||||
set_padding:MBEDTLS_CIPHER_BLOWFISH_CTR:MBEDTLS_PADDING_PKCS7:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
Set padding with NULL
|
||||
depends_on:MBEDTLS_CIPHER_NULL_CIPHER
|
||||
set_padding:MBEDTLS_CIPHER_NULL:MBEDTLS_PADDING_PKCS7:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
@@ -45,6 +57,10 @@ Set non-existent padding with DES-CBC
|
||||
depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
set_padding:MBEDTLS_CIPHER_DES_CBC:-1:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE
|
||||
|
||||
Set non-existent padding with BLOWFISH-CBC
|
||||
depends_on:MBEDTLS_BLOWFISH_C:MBEDTLS_CIPHER_MODE_CBC
|
||||
set_padding:MBEDTLS_CIPHER_BLOWFISH_CBC:-1:MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE
|
||||
|
||||
Check PKCS padding #1 (correct)
|
||||
depends_on:MBEDTLS_CIPHER_PADDING_PKCS7
|
||||
check_padding:MBEDTLS_PADDING_PKCS7:"DABBAD0004040404":0:4
|
||||
|
||||
@@ -2,7 +2,6 @@ CMAC self test
|
||||
mbedtls_cmac_self_test:
|
||||
|
||||
CMAC null arguments
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_null_args:
|
||||
|
||||
CMAC init #1 AES-128: OK
|
||||
@@ -10,86 +9,56 @@ depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_128_ECB:128:0
|
||||
|
||||
CMAC init #2 AES-192: OK
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_192_ECB:192:0
|
||||
|
||||
CMAC init #3 AES-256: OK
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_256_ECB:256:0
|
||||
|
||||
CMAC init #4 3DES: OK
|
||||
CMAC init #4 3DES : OK
|
||||
depends_on:MBEDTLS_DES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_DES_EDE3_ECB:192:0
|
||||
|
||||
CMAC init #5 AES-224: bad key size
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_128_ECB:224:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_AES:224:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init #6 AES-0: bad key size
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_128_ECB:0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_AES:0:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init Camellia-128: wrong cipher
|
||||
CMAC init #7 Camellia: wrong cipher
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_128_ECB:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ID_CAMELLIA:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init Camellia-192: wrong cipher
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_192_ECB:192:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init Camellia-256: wrong cipher
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_256_ECB:256:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init #8 ARIA-128: wrong cipher
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ARIA_128_ECB:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init #8 ARIA-192: wrong cipher
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ARIA_192_ECB:192:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC init #8 ARIA-256: wrong cipher
|
||||
depends_on:MBEDTLS_ARIA_C
|
||||
mbedtls_cmac_setkey:MBEDTLS_CIPHER_ARIA_256_ECB:256:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA
|
||||
|
||||
CMAC Single Blocks #1 AES-128 - Empty block, no updates
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Single Blocks #1 - Empty block, no updates
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":-1:"":-1:"":-1:"":-1:"bb1d6929e95937287fa37d129b756746"
|
||||
|
||||
CMAC Single Blocks #2 AES-128 - Single 16 byte block
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Single Blocks #2 - Single 16 byte block
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"":-1:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c"
|
||||
|
||||
CMAC Single Blocks #3 AES-128 - Single 64 byte block
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Single Blocks #3 - Single 64 byte block
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"":-1:"51f0bebf7e3b9d92fc49741779363cfe"
|
||||
|
||||
CMAC Multiple Blocks #1 AES-128 - Multiple 8 byte blocks
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Multiple Blocks #1 - Multiple 8 byte blocks
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172a":8:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c"
|
||||
|
||||
CMAC Multiple Blocks #2 AES-128 - Multiple 16 byte blocks
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Multiple Blocks #2 - Multiple 16 byte blocks
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"ae2d8a571e03ac9c9eb76fac45af8e51":16:"30c81c46a35ce411e5fbc1191a0a52ef":16:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe"
|
||||
|
||||
CMAC Multiple Blocks #3 AES-128 - Multiple variable sized blocks
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Multiple Blocks #3 - Multiple variable sized blocks
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172aae2d8a571e03ac9c":16:"9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52ef":24:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe"
|
||||
|
||||
CMAC Multiple Blocks #4 AES-128 - Multiple 8 byte blocks with gaps
|
||||
depends_on:MBEDTLS_AES_C
|
||||
CMAC Multiple Blocks #4 - Multiple 8 byte blocks with gaps
|
||||
mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":0:"6bc1bee22e409f96":8:"":0:"e93d7e117393172a":8:"070a16b46b4d4144f79bdd9dd04a287c"
|
||||
|
||||
CMAC Multiple Operations, same key #1 AES-192 - Empty, empty
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
CMAC Multiple Operations, same key #1 - Empty, empty
|
||||
mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367"
|
||||
|
||||
CMAC Multiple Operations, same key #2 AES-192 - Empty, 64 byte block
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
CMAC Multiple Operations, same key #2 - Empty, 64 byte block
|
||||
mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"a1d5df0eed790f794d77589659f39a11"
|
||||
|
||||
CMAC Multiple Operations, same key #3 AES-192 - variable byte blocks
|
||||
depends_on:MBEDTLS_AES_C:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH
|
||||
CMAC Multiple Operations, same key #3 - variable byte blocks
|
||||
mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11"
|
||||
|
||||
|
||||
@@ -9,293 +9,278 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void mbedtls_cmac_self_test()
|
||||
void mbedtls_cmac_self_test( )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_cmac_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_cmac_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_cmac_null_args()
|
||||
void mbedtls_cmac_null_args( )
|
||||
{
|
||||
mbedtls_cipher_context_t ctx;
|
||||
const mbedtls_cipher_info_t *cipher_info;
|
||||
unsigned char test_key[MBEDTLS_CMAC_MAX_BLOCK_SIZE];
|
||||
unsigned char test_data[MBEDTLS_CMAC_MAX_BLOCK_SIZE];
|
||||
unsigned char test_output[MBEDTLS_CMAC_MAX_BLOCK_SIZE];
|
||||
unsigned char test_key[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||
unsigned char test_data[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||
unsigned char test_output[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||
|
||||
mbedtls_cipher_init(&ctx);
|
||||
mbedtls_cipher_init( &ctx );
|
||||
|
||||
/* Test NULL cipher info */
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, test_data, 16) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, test_data, 16 ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB);
|
||||
TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0);
|
||||
cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_ECB );
|
||||
TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_starts(NULL, test_key, 128) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_starts( NULL, test_key, 128 ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx, NULL, 128) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx, NULL, 128 ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(NULL, test_data, 16) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( NULL, test_data, 16 ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, NULL, 16) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, NULL, 16 ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_finish(NULL, test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_finish( NULL, test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, NULL) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, NULL ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_reset(NULL) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_reset( NULL ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac(NULL,
|
||||
test_key, 128,
|
||||
test_data, 16,
|
||||
test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac( NULL,
|
||||
test_key, 128,
|
||||
test_data, 16,
|
||||
test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac(cipher_info,
|
||||
NULL, 128,
|
||||
test_data, 16,
|
||||
test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac( cipher_info,
|
||||
NULL, 128,
|
||||
test_data, 16,
|
||||
test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac(cipher_info,
|
||||
test_key, 128,
|
||||
NULL, 16,
|
||||
test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac( cipher_info,
|
||||
test_key, 128,
|
||||
NULL, 16,
|
||||
test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac(cipher_info,
|
||||
test_key, 128,
|
||||
test_data, 16,
|
||||
NULL) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
#if defined(MBEDTLS_AES_C)
|
||||
TEST_ASSERT(mbedtls_aes_cmac_prf_128(NULL, 16,
|
||||
test_data, 16,
|
||||
test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac( cipher_info,
|
||||
test_key, 128,
|
||||
test_data, 16,
|
||||
NULL ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_aes_cmac_prf_128(test_key, 16,
|
||||
NULL, 16,
|
||||
test_output) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_aes_cmac_prf_128( NULL, 16,
|
||||
test_data, 16,
|
||||
test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT( mbedtls_aes_cmac_prf_128( test_key, 16,
|
||||
NULL, 16,
|
||||
test_output ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT( mbedtls_aes_cmac_prf_128( test_key, 16,
|
||||
test_data, 16,
|
||||
NULL ) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
|
||||
|
||||
TEST_ASSERT(mbedtls_aes_cmac_prf_128(test_key, 16,
|
||||
test_data, 16,
|
||||
NULL) ==
|
||||
MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
|
||||
#endif
|
||||
exit:
|
||||
mbedtls_cipher_free(&ctx);
|
||||
mbedtls_cipher_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_cmac_setkey(int cipher_type, int key_size, int result)
|
||||
void mbedtls_cmac_setkey( int cipher_type, int key_size, int result )
|
||||
{
|
||||
const mbedtls_cipher_info_t *cipher_info;
|
||||
unsigned char key[32];
|
||||
unsigned char buf[16];
|
||||
unsigned char tmp[16];
|
||||
|
||||
memset(key, 0x2A, sizeof(key));
|
||||
TEST_ASSERT((unsigned) key_size <= 8 * sizeof(key));
|
||||
memset( key, 0x2A, sizeof( key ) );
|
||||
TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) );
|
||||
|
||||
TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type))
|
||||
!= NULL);
|
||||
#if !defined(MBEDTLS_DEPRECATED_REMOVED)
|
||||
TEST_LE_U(mbedtls_cipher_info_get_block_size(cipher_info),
|
||||
MBEDTLS_CIPHER_BLKSIZE_MAX);
|
||||
#endif /* MBEDTLS_DEPRECATED_REMOVED */
|
||||
TEST_LE_U(mbedtls_cipher_info_get_block_size(cipher_info),
|
||||
MBEDTLS_CMAC_MAX_BLOCK_SIZE);
|
||||
TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) )
|
||||
!= NULL );
|
||||
|
||||
memset(buf, 0x2A, sizeof(buf));
|
||||
TEST_ASSERT((result == mbedtls_cipher_cmac(cipher_info, key, key_size,
|
||||
buf, 16, tmp)) != 0);
|
||||
memset( buf, 0x2A, sizeof( buf ) );
|
||||
TEST_ASSERT( ( result == mbedtls_cipher_cmac( cipher_info, key, key_size,
|
||||
buf, 16, tmp ) ) != 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_cmac_multiple_blocks(int cipher_type, data_t *key,
|
||||
int keybits, int block_size,
|
||||
data_t *block1, int block1_len,
|
||||
data_t *block2, int block2_len,
|
||||
data_t *block3, int block3_len,
|
||||
data_t *block4, int block4_len,
|
||||
data_t *expected_result)
|
||||
void mbedtls_cmac_multiple_blocks( int cipher_type, data_t * key,
|
||||
int keybits, int block_size,
|
||||
data_t * block1, int block1_len,
|
||||
data_t * block2, int block2_len,
|
||||
data_t * block3, int block3_len,
|
||||
data_t * block4, int block4_len,
|
||||
data_t * expected_result )
|
||||
{
|
||||
const mbedtls_cipher_info_t *cipher_info;
|
||||
mbedtls_cipher_context_t ctx;
|
||||
unsigned char output[MBEDTLS_CMAC_MAX_BLOCK_SIZE];
|
||||
unsigned char output[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||
|
||||
/* Convert the test parameters to binary data */
|
||||
|
||||
mbedtls_cipher_init(&ctx);
|
||||
mbedtls_cipher_init( &ctx );
|
||||
|
||||
/* Validate the test inputs */
|
||||
TEST_ASSERT(block1_len <= 100);
|
||||
TEST_ASSERT(block2_len <= 100);
|
||||
TEST_ASSERT(block3_len <= 100);
|
||||
TEST_ASSERT(block4_len <= 100);
|
||||
TEST_ASSERT( block1_len <= 100 );
|
||||
TEST_ASSERT( block2_len <= 100 );
|
||||
TEST_ASSERT( block3_len <= 100 );
|
||||
TEST_ASSERT( block4_len <= 100 );
|
||||
|
||||
/* Set up */
|
||||
TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type))
|
||||
!= NULL);
|
||||
TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) )
|
||||
!= NULL );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx,
|
||||
(const unsigned char *) key->x,
|
||||
keybits) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx,
|
||||
(const unsigned char*)key->x,
|
||||
keybits ) == 0 );
|
||||
|
||||
/* Multiple partial and complete blocks. A negative length means skip the
|
||||
* update operation */
|
||||
if (block1_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block1->x,
|
||||
block1_len) == 0);
|
||||
}
|
||||
if( block1_len >= 0)
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block1->x,
|
||||
block1_len ) == 0);
|
||||
|
||||
if (block2_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block2->x,
|
||||
block2_len) == 0);
|
||||
}
|
||||
if( block2_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block2->x,
|
||||
block2_len ) == 0);
|
||||
|
||||
if (block3_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block3->x,
|
||||
block3_len) == 0);
|
||||
}
|
||||
if( block3_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block3->x,
|
||||
block3_len ) == 0);
|
||||
|
||||
if (block4_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block4->x,
|
||||
block4_len) == 0);
|
||||
}
|
||||
if( block4_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block4->x,
|
||||
block4_len ) == 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(output, expected_result->x, block_size) == 0);
|
||||
TEST_ASSERT( memcmp( output, expected_result->x, block_size ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_cipher_free(&ctx);
|
||||
mbedtls_cipher_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_cmac_multiple_operations_same_key(int cipher_type,
|
||||
data_t *key, int keybits,
|
||||
int block_size,
|
||||
data_t *block_a1,
|
||||
int block_a1_len,
|
||||
data_t *block_a2,
|
||||
int block_a2_len,
|
||||
data_t *block_a3,
|
||||
int block_a3_len,
|
||||
data_t *expected_result_a,
|
||||
data_t *block_b1,
|
||||
int block_b1_len,
|
||||
data_t *block_b2,
|
||||
int block_b2_len,
|
||||
data_t *block_b3,
|
||||
int block_b3_len,
|
||||
data_t *expected_result_b
|
||||
)
|
||||
void mbedtls_cmac_multiple_operations_same_key( int cipher_type,
|
||||
data_t * key, int keybits,
|
||||
int block_size,
|
||||
data_t * block_a1,
|
||||
int block_a1_len,
|
||||
data_t * block_a2,
|
||||
int block_a2_len,
|
||||
data_t * block_a3,
|
||||
int block_a3_len,
|
||||
data_t * expected_result_a,
|
||||
data_t * block_b1,
|
||||
int block_b1_len,
|
||||
data_t * block_b2,
|
||||
int block_b2_len,
|
||||
data_t * block_b3,
|
||||
int block_b3_len,
|
||||
data_t * expected_result_b
|
||||
)
|
||||
{
|
||||
const mbedtls_cipher_info_t *cipher_info;
|
||||
mbedtls_cipher_context_t ctx;
|
||||
unsigned char output[MBEDTLS_CMAC_MAX_BLOCK_SIZE];
|
||||
unsigned char output[MBEDTLS_CIPHER_BLKSIZE_MAX];
|
||||
|
||||
/* Convert the test parameters to binary data */
|
||||
|
||||
|
||||
|
||||
mbedtls_cipher_init(&ctx);
|
||||
mbedtls_cipher_init( &ctx );
|
||||
|
||||
/* Validate the test inputs */
|
||||
TEST_ASSERT(block_a1_len <= 100);
|
||||
TEST_ASSERT(block_a2_len <= 100);
|
||||
TEST_ASSERT(block_a3_len <= 100);
|
||||
TEST_ASSERT( block_a1_len <= 100 );
|
||||
TEST_ASSERT( block_a2_len <= 100 );
|
||||
TEST_ASSERT( block_a3_len <= 100 );
|
||||
|
||||
TEST_ASSERT(block_b1_len <= 100);
|
||||
TEST_ASSERT(block_b2_len <= 100);
|
||||
TEST_ASSERT(block_b3_len <= 100);
|
||||
TEST_ASSERT( block_b1_len <= 100 );
|
||||
TEST_ASSERT( block_b2_len <= 100 );
|
||||
TEST_ASSERT( block_b3_len <= 100 );
|
||||
|
||||
/* Set up */
|
||||
TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type))
|
||||
!= NULL);
|
||||
TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) )
|
||||
!= NULL );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx,
|
||||
(const unsigned char *) key->x,
|
||||
keybits) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx,
|
||||
(const unsigned char*)key->x,
|
||||
keybits ) == 0 );
|
||||
|
||||
/* Sequence A */
|
||||
|
||||
/* Multiple partial and complete blocks. A negative length means skip the
|
||||
* update operation */
|
||||
if (block_a1_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_a1->x,
|
||||
block_a1_len) == 0);
|
||||
}
|
||||
if( block_a1_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_a1->x,
|
||||
block_a1_len ) == 0);
|
||||
|
||||
if (block_a2_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_a2->x,
|
||||
block_a2_len) == 0);
|
||||
}
|
||||
if( block_a2_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_a2->x,
|
||||
block_a2_len ) == 0);
|
||||
|
||||
if (block_a3_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_a3->x,
|
||||
block_a3_len) == 0);
|
||||
}
|
||||
if( block_a3_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_a3->x,
|
||||
block_a3_len ) == 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(output, expected_result_a->x, block_size) == 0);
|
||||
TEST_ASSERT( memcmp( output, expected_result_a->x, block_size ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_reset(&ctx) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_reset( &ctx ) == 0 );
|
||||
|
||||
/* Sequence B */
|
||||
|
||||
/* Multiple partial and complete blocks. A negative length means skip the
|
||||
* update operation */
|
||||
if (block_b1_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_b1->x,
|
||||
block_b1_len) == 0);
|
||||
}
|
||||
if( block_b1_len >= 0)
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_b1->x,
|
||||
block_b1_len ) == 0);
|
||||
|
||||
if (block_b2_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_b2->x,
|
||||
block_b2_len) == 0);
|
||||
}
|
||||
if( block_b2_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_b2->x,
|
||||
block_b2_len ) == 0);
|
||||
|
||||
if (block_b3_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx,
|
||||
(unsigned char *) block_b3->x,
|
||||
block_b3_len) == 0);
|
||||
}
|
||||
if( block_b3_len >= 0 )
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx,
|
||||
(unsigned char*)block_b3->x,
|
||||
block_b3_len ) == 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0);
|
||||
TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(output, expected_result_b->x, block_size) == 0);
|
||||
TEST_ASSERT( memcmp( output, expected_result_b->x, block_size ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_cipher_free(&ctx);
|
||||
mbedtls_cipher_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
Block xor, length 0
|
||||
mbedtls_xor:0
|
||||
|
||||
Block xor, length 1
|
||||
mbedtls_xor:1
|
||||
|
||||
Block xor, length 3
|
||||
mbedtls_xor:3
|
||||
|
||||
Block xor, length 4
|
||||
mbedtls_xor:4
|
||||
|
||||
Block xor, length 7
|
||||
mbedtls_xor:7
|
||||
|
||||
Block xor, length 8
|
||||
mbedtls_xor:8
|
||||
|
||||
Block xor, length 16
|
||||
mbedtls_xor:16
|
||||
|
||||
Block xor, length 64
|
||||
mbedtls_xor:64
|
||||
|
||||
Block xor, length 256
|
||||
mbedtls_xor:256
|
||||
|
||||
Block xor, length 257
|
||||
mbedtls_xor:257
|
||||
|
||||
Block xor, length 16+8
|
||||
mbedtls_xor:24
|
||||
|
||||
Block xor, length 16+8+4
|
||||
mbedtls_xor:28
|
||||
|
||||
Block xor, length 16+8+4+1
|
||||
mbedtls_xor:29
|
||||
|
||||
Block xor, length 16+8+1
|
||||
mbedtls_xor:25
|
||||
|
||||
Block xor, length 16+4
|
||||
mbedtls_xor:20
|
||||
|
||||
Block xor, length 16+4+1
|
||||
mbedtls_xor:21
|
||||
|
||||
Block xor, length 16+1
|
||||
mbedtls_xor:17
|
||||
|
||||
Block xor, length 8+4
|
||||
mbedtls_xor:12
|
||||
|
||||
Block xor, length 8+4+1
|
||||
mbedtls_xor:13
|
||||
|
||||
Block xor, length 8+1
|
||||
mbedtls_xor:9
|
||||
|
||||
Block xor, length 4+1
|
||||
mbedtls_xor:5
|
||||
@@ -1,82 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "common.h"
|
||||
|
||||
void fill_arrays(unsigned char *a, unsigned char *b, unsigned char *r1, unsigned char *r2, size_t n)
|
||||
{
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
a[i] = (unsigned char) i * 3;
|
||||
b[i] = (unsigned char) i * 3 + 1;
|
||||
r1[i] = (unsigned char) i * 3 + 2;
|
||||
r2[i] = r1[i];
|
||||
}
|
||||
}
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_xor(int len)
|
||||
{
|
||||
size_t n = (size_t) len;
|
||||
unsigned char *a = NULL, *b = NULL, *r1 = NULL, *r2 = NULL;
|
||||
TEST_CALLOC(a, n + 1);
|
||||
TEST_CALLOC(b, n + 1);
|
||||
TEST_CALLOC(r1, n + 1);
|
||||
TEST_CALLOC(r2, n + 1);
|
||||
|
||||
/* Test non-overlapping */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ b[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, b, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test r == a */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = r1[i] ^ b[i];
|
||||
}
|
||||
mbedtls_xor(r2, r2, b, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test r == b */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ r1[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, r2, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test a == b */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = a[i] ^ a[i];
|
||||
}
|
||||
mbedtls_xor(r2, a, a, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test a == b == r */
|
||||
fill_arrays(a, b, r1, r2, n);
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
r1[i] = r1[i] ^ r1[i];
|
||||
}
|
||||
mbedtls_xor(r2, r2, r2, n);
|
||||
TEST_MEMORY_COMPARE(r1, n, r2, n);
|
||||
|
||||
/* Test non-word-aligned buffers, for all combinations of alignedness */
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int r_off = i & 1, a_off = (i & 2) >> 1, b_off = (i & 4) >> 2;
|
||||
fill_arrays(a, b, r1, r2, n + 1);
|
||||
|
||||
for (size_t j = 0; j < n; j++) {
|
||||
r1[j + r_off] = a[j + a_off] ^ b[j + b_off];
|
||||
}
|
||||
mbedtls_xor(r2 + r_off, a + a_off, b + b_off, n);
|
||||
TEST_MEMORY_COMPARE(r1 + r_off, n, r2 + r_off, n);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(a);
|
||||
mbedtls_free(b);
|
||||
mbedtls_free(r1);
|
||||
mbedtls_free(r2);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,866 +0,0 @@
|
||||
# these are the numbers we'd get with an empty plaintext and truncated HMAC
|
||||
Constant-flow memcpy from offset: small
|
||||
mbedtls_ct_memcpy_offset:0:5:10
|
||||
|
||||
# we could get this with 255-bytes plaintext and untruncated SHA-256
|
||||
Constant-flow memcpy from offset: medium
|
||||
mbedtls_ct_memcpy_offset:0:255:32
|
||||
|
||||
# we could get this with 255-bytes plaintext and untruncated SHA-384
|
||||
Constant-flow memcpy from offset: large
|
||||
mbedtls_ct_memcpy_offset:100:339:48
|
||||
|
||||
mbedtls_ct_memcmp NULL
|
||||
mbedtls_ct_memcmp_null
|
||||
|
||||
mbedtls_ct_memcmp len 1
|
||||
mbedtls_ct_memcmp:-1:1:0
|
||||
|
||||
mbedtls_ct_memcmp len 3
|
||||
mbedtls_ct_memcmp:-1:3:0
|
||||
|
||||
mbedtls_ct_memcmp len 4
|
||||
mbedtls_ct_memcmp:-1:4:0
|
||||
|
||||
mbedtls_ct_memcmp len 5
|
||||
mbedtls_ct_memcmp:-1:5:0
|
||||
|
||||
mbedtls_ct_memcmp len 15
|
||||
mbedtls_ct_memcmp:-1:15:0
|
||||
|
||||
mbedtls_ct_memcmp len 16
|
||||
mbedtls_ct_memcmp:-1:16:0
|
||||
|
||||
mbedtls_ct_memcmp len 17
|
||||
mbedtls_ct_memcmp:-1:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 1 different
|
||||
mbedtls_ct_memcmp:0:1:0
|
||||
|
||||
mbedtls_ct_memcmp len 17 different
|
||||
mbedtls_ct_memcmp:0:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 17 different 1
|
||||
mbedtls_ct_memcmp:1:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 17 different 4
|
||||
mbedtls_ct_memcmp:4:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 17 different 10
|
||||
mbedtls_ct_memcmp:10:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 17 different 16
|
||||
mbedtls_ct_memcmp:16:17:0
|
||||
|
||||
mbedtls_ct_memcmp len 1 offset 1 different
|
||||
mbedtls_ct_memcmp:0:1:1
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 1 different
|
||||
mbedtls_ct_memcmp:0:17:1
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 1 different 1
|
||||
mbedtls_ct_memcmp:1:17:1
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 1 different 5
|
||||
mbedtls_ct_memcmp:5:17:1
|
||||
|
||||
mbedtls_ct_memcmp len 1 offset 1
|
||||
mbedtls_ct_memcmp:-1:1:1
|
||||
|
||||
mbedtls_ct_memcmp len 1 offset 2
|
||||
mbedtls_ct_memcmp:-1:1:2
|
||||
|
||||
mbedtls_ct_memcmp len 1 offset 3
|
||||
mbedtls_ct_memcmp:-1:1:3
|
||||
|
||||
mbedtls_ct_memcmp len 5 offset 1
|
||||
mbedtls_ct_memcmp:-1:5:1
|
||||
|
||||
mbedtls_ct_memcmp len 5 offset 2
|
||||
mbedtls_ct_memcmp:-1:5:2
|
||||
|
||||
mbedtls_ct_memcmp len 5 offset 3
|
||||
mbedtls_ct_memcmp:-1:5:3
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 1
|
||||
mbedtls_ct_memcmp:-1:17:1
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 2
|
||||
mbedtls_ct_memcmp:-1:17:2
|
||||
|
||||
mbedtls_ct_memcmp len 17 offset 3
|
||||
mbedtls_ct_memcmp:-1:17:3
|
||||
|
||||
mbedtls_ct_memcmp_single_bit_diff
|
||||
mbedtls_ct_memcmp_single_bit_diff:
|
||||
|
||||
mbedtls_ct_memcpy_if len 1 offset 0
|
||||
mbedtls_ct_memcpy_if:1:1:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 1 offset 1
|
||||
mbedtls_ct_memcpy_if:1:1:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 4 offset 0
|
||||
mbedtls_ct_memcpy_if:1:1:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 4 offset 1
|
||||
mbedtls_ct_memcpy_if:1:1:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 4 offset 2
|
||||
mbedtls_ct_memcpy_if:1:1:2
|
||||
|
||||
mbedtls_ct_memcpy_if len 4 offset 3
|
||||
mbedtls_ct_memcpy_if:1:1:3
|
||||
|
||||
mbedtls_ct_memcpy_if len 15 offset 0
|
||||
mbedtls_ct_memcpy_if:1:15:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 15 offset 1
|
||||
mbedtls_ct_memcpy_if:1:15:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 16 offset 0
|
||||
mbedtls_ct_memcpy_if:1:16:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 16 offset 1
|
||||
mbedtls_ct_memcpy_if:1:16:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 17 offset 0
|
||||
mbedtls_ct_memcpy_if:1:17:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 17 offset 1
|
||||
mbedtls_ct_memcpy_if:1:17:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 0 not eq
|
||||
mbedtls_ct_memcpy_if:0:17:0
|
||||
|
||||
mbedtls_ct_memcpy_if len 5 offset 1 not eq
|
||||
mbedtls_ct_memcpy_if:0:5:1
|
||||
|
||||
mbedtls_ct_memcpy_if len 17 offset 3 not eq
|
||||
mbedtls_ct_memcpy_if:0:17:3
|
||||
|
||||
mbedtls_ct_bool 0
|
||||
mbedtls_ct_bool:"0x0"
|
||||
|
||||
mbedtls_ct_bool 1
|
||||
mbedtls_ct_bool:"0x1"
|
||||
|
||||
mbedtls_ct_bool 4
|
||||
mbedtls_ct_bool:"0x4"
|
||||
|
||||
mbedtls_ct_bool 0xfffffff
|
||||
mbedtls_ct_bool:"0xfffffff"
|
||||
|
||||
mbedtls_ct_bool 0x7fffffff
|
||||
mbedtls_ct_bool:"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool 0xfffffffe
|
||||
mbedtls_ct_bool:"0xfffffffe"
|
||||
|
||||
mbedtls_ct_bool 0xffffffff
|
||||
mbedtls_ct_bool:"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool 0x0fffffffffffffff
|
||||
mbedtls_ct_bool:"0x0fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool 0x7fffffffffffffff
|
||||
mbedtls_ct_bool:"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool 0xffffffffffffffff
|
||||
mbedtls_ct_bool:"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0x0
|
||||
mbedtls_ct_bool_xxx:"0x0":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0x1
|
||||
mbedtls_ct_bool_xxx:"0x0":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0x0":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0x0":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x0":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x0 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x0":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0x0
|
||||
mbedtls_ct_bool_xxx:"0x1":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0x1
|
||||
mbedtls_ct_bool_xxx:"0x1":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0x1":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0x1":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x1":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x1 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x1":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0x0
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0x1
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffff 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0x0
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0x1
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0x0
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0x1
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0x7fffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0x7fffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0x0
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0x1
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0xffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 0xffffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_bool_xxx:"0xffffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_bool_xxx 138 256
|
||||
mbedtls_ct_bool_xxx:"138":"256"
|
||||
|
||||
mbedtls_ct_bool_xxx 256 138
|
||||
mbedtls_ct_bool_xxx:"256":"138"
|
||||
|
||||
mbedtls_ct_bool_xxx 6 6
|
||||
mbedtls_ct_bool_xxx:"0x6":"0x6"
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 0 0
|
||||
mbedtls_ct_uchar_in_range_if:0:0:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 0 100
|
||||
mbedtls_ct_uchar_in_range_if:0:0:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 0 255
|
||||
mbedtls_ct_uchar_in_range_if:0:0:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 65 0
|
||||
mbedtls_ct_uchar_in_range_if:0:65:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 65 100
|
||||
mbedtls_ct_uchar_in_range_if:0:65:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 65 255
|
||||
mbedtls_ct_uchar_in_range_if:0:65:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 90 0
|
||||
mbedtls_ct_uchar_in_range_if:0:90:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 90 100
|
||||
mbedtls_ct_uchar_in_range_if:0:90:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 90 255
|
||||
mbedtls_ct_uchar_in_range_if:0:90:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 255 0
|
||||
mbedtls_ct_uchar_in_range_if:0:255:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 255 100
|
||||
mbedtls_ct_uchar_in_range_if:0:255:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 0 255 255
|
||||
mbedtls_ct_uchar_in_range_if:0:255:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 0 0
|
||||
mbedtls_ct_uchar_in_range_if:65:0:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 0 100
|
||||
mbedtls_ct_uchar_in_range_if:65:0:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 0 255
|
||||
mbedtls_ct_uchar_in_range_if:65:0:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 65 0
|
||||
mbedtls_ct_uchar_in_range_if:65:65:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 65 100
|
||||
mbedtls_ct_uchar_in_range_if:65:65:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 65 255
|
||||
mbedtls_ct_uchar_in_range_if:65:65:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 90 0
|
||||
mbedtls_ct_uchar_in_range_if:65:90:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 90 100
|
||||
mbedtls_ct_uchar_in_range_if:65:90:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 90 255
|
||||
mbedtls_ct_uchar_in_range_if:65:90:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 255 0
|
||||
mbedtls_ct_uchar_in_range_if:65:255:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 255 100
|
||||
mbedtls_ct_uchar_in_range_if:65:255:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 65 255 255
|
||||
mbedtls_ct_uchar_in_range_if:65:255:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 0 0
|
||||
mbedtls_ct_uchar_in_range_if:90:0:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 0 100
|
||||
mbedtls_ct_uchar_in_range_if:90:0:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 0 255
|
||||
mbedtls_ct_uchar_in_range_if:90:0:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 65 0
|
||||
mbedtls_ct_uchar_in_range_if:90:65:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 65 100
|
||||
mbedtls_ct_uchar_in_range_if:90:65:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 65 255
|
||||
mbedtls_ct_uchar_in_range_if:90:65:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 90 0
|
||||
mbedtls_ct_uchar_in_range_if:90:90:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 90 100
|
||||
mbedtls_ct_uchar_in_range_if:90:90:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 90 255
|
||||
mbedtls_ct_uchar_in_range_if:90:90:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 255 0
|
||||
mbedtls_ct_uchar_in_range_if:90:255:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 255 100
|
||||
mbedtls_ct_uchar_in_range_if:90:255:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 90 255 255
|
||||
mbedtls_ct_uchar_in_range_if:90:255:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 0 0
|
||||
mbedtls_ct_uchar_in_range_if:255:0:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 0 100
|
||||
mbedtls_ct_uchar_in_range_if:255:0:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 0 255
|
||||
mbedtls_ct_uchar_in_range_if:255:0:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 65 0
|
||||
mbedtls_ct_uchar_in_range_if:255:65:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 65 100
|
||||
mbedtls_ct_uchar_in_range_if:255:65:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 65 255
|
||||
mbedtls_ct_uchar_in_range_if:255:65:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 90 0
|
||||
mbedtls_ct_uchar_in_range_if:255:90:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 90 100
|
||||
mbedtls_ct_uchar_in_range_if:255:90:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 90 255
|
||||
mbedtls_ct_uchar_in_range_if:255:90:255
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 255 0
|
||||
mbedtls_ct_uchar_in_range_if:255:255:0
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 255 100
|
||||
mbedtls_ct_uchar_in_range_if:255:255:100
|
||||
|
||||
mbedtls_ct_uchar_in_range_if 255 255 255
|
||||
mbedtls_ct_uchar_in_range_if:255:255:255
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0x0
|
||||
mbedtls_ct_if:"0x0":"0x0":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0x1
|
||||
mbedtls_ct_if:"0x0":"0x0":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0x0":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0x0":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x0":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x0 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x0":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0x0
|
||||
mbedtls_ct_if:"0x0":"0x1":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0x1
|
||||
mbedtls_ct_if:"0x0":"0x1":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0x1":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0x1":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x1":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x1 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x1":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0x0
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0x1
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0x0
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0x1
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0x0
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0x1
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0x7fffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0x7fffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0x0
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0x1
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0x0 0xffffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0x0":"0xffffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x0 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x0":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x1 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x1":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0x7fffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0x7fffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0x0
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0x0"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0x1
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0x1"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0x7fffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0x7fffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0xffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0xffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0x7fffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0x7fffffffffffffff"
|
||||
|
||||
mbedtls_ct_if 0xffffffffffffffff 0xffffffffffffffff 0xffffffffffffffff
|
||||
mbedtls_ct_if:"0xffffffffffffffff":"0xffffffffffffffff":"0xffffffffffffffff"
|
||||
|
||||
mbedtls_ct_error_if 0 0 0
|
||||
mbedtls_ct_error_if:0:0:0
|
||||
|
||||
mbedtls_ct_error_if 0 0 -1
|
||||
mbedtls_ct_error_if:0:0:-1
|
||||
|
||||
mbedtls_ct_error_if 0 0 -32766
|
||||
mbedtls_ct_error_if:0:0:-32766
|
||||
|
||||
mbedtls_ct_error_if 0 0 -32767
|
||||
mbedtls_ct_error_if:0:0:-32767
|
||||
|
||||
mbedtls_ct_error_if 0 -1 0
|
||||
mbedtls_ct_error_if:0:-1:0
|
||||
|
||||
mbedtls_ct_error_if 0 -1 -1
|
||||
mbedtls_ct_error_if:0:-1:-1
|
||||
|
||||
mbedtls_ct_error_if 0 -1 -32766
|
||||
mbedtls_ct_error_if:0:-1:-32766
|
||||
|
||||
mbedtls_ct_error_if 0 -1 -32767
|
||||
mbedtls_ct_error_if:0:-1:-32767
|
||||
|
||||
mbedtls_ct_error_if 0 -32766 0
|
||||
mbedtls_ct_error_if:0:-32766:0
|
||||
|
||||
mbedtls_ct_error_if 0 -32766 -1
|
||||
mbedtls_ct_error_if:0:-32766:-1
|
||||
|
||||
mbedtls_ct_error_if 0 -32766 -32766
|
||||
mbedtls_ct_error_if:0:-32766:-32766
|
||||
|
||||
mbedtls_ct_error_if 0 -32766 -32767
|
||||
mbedtls_ct_error_if:0:-32766:-32767
|
||||
|
||||
mbedtls_ct_error_if 0 -32767 0
|
||||
mbedtls_ct_error_if:0:-32767:0
|
||||
|
||||
mbedtls_ct_error_if 0 -32767 -1
|
||||
mbedtls_ct_error_if:0:-32767:-1
|
||||
|
||||
mbedtls_ct_error_if 0 -32767 -32766
|
||||
mbedtls_ct_error_if:0:-32767:-32766
|
||||
|
||||
mbedtls_ct_error_if 0 -32767 -32767
|
||||
mbedtls_ct_error_if:0:-32767:-32767
|
||||
|
||||
mbedtls_ct_error_if 1 0 0
|
||||
mbedtls_ct_error_if:1:0:0
|
||||
|
||||
mbedtls_ct_error_if 1 0 -1
|
||||
mbedtls_ct_error_if:1:0:-1
|
||||
|
||||
mbedtls_ct_error_if 1 0 -32766
|
||||
mbedtls_ct_error_if:1:0:-32766
|
||||
|
||||
mbedtls_ct_error_if 1 0 -32767
|
||||
mbedtls_ct_error_if:1:0:-32767
|
||||
|
||||
mbedtls_ct_error_if 1 -1 0
|
||||
mbedtls_ct_error_if:1:-1:0
|
||||
|
||||
mbedtls_ct_error_if 1 -1 -1
|
||||
mbedtls_ct_error_if:1:-1:-1
|
||||
|
||||
mbedtls_ct_error_if 1 -1 -32766
|
||||
mbedtls_ct_error_if:1:-1:-32766
|
||||
|
||||
mbedtls_ct_error_if 1 -1 -32767
|
||||
mbedtls_ct_error_if:1:-1:-32767
|
||||
|
||||
mbedtls_ct_error_if 1 -32766 0
|
||||
mbedtls_ct_error_if:1:-32766:0
|
||||
|
||||
mbedtls_ct_error_if 1 -32766 -1
|
||||
mbedtls_ct_error_if:1:-32766:-1
|
||||
|
||||
mbedtls_ct_error_if 1 -32766 -32766
|
||||
mbedtls_ct_error_if:1:-32766:-32766
|
||||
|
||||
mbedtls_ct_error_if 1 -32766 -32767
|
||||
mbedtls_ct_error_if:1:-32766:-32767
|
||||
|
||||
mbedtls_ct_error_if 1 -32767 0
|
||||
mbedtls_ct_error_if:1:-32767:0
|
||||
|
||||
mbedtls_ct_error_if 1 -32767 -1
|
||||
mbedtls_ct_error_if:1:-32767:-1
|
||||
|
||||
mbedtls_ct_error_if 1 -32767 -32766
|
||||
mbedtls_ct_error_if:1:-32767:-32766
|
||||
|
||||
mbedtls_ct_error_if 1 -32767 -32767
|
||||
mbedtls_ct_error_if:1:-32767:-32767
|
||||
|
||||
mbedtls_ct_zeroize_if 0x0 0
|
||||
mbedtls_ct_zeroize_if:"0x0":0
|
||||
|
||||
mbedtls_ct_zeroize_if 0x0 1
|
||||
mbedtls_ct_zeroize_if:"0x0":1
|
||||
|
||||
mbedtls_ct_zeroize_if 0x0 1024
|
||||
mbedtls_ct_zeroize_if:"0x0":1024
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 0
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":0
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 1
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":1
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 4
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":4
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 5
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":5
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 7
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":7
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 8
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":8
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 9
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":9
|
||||
|
||||
mbedtls_ct_zeroize_if 0xffffffffffffffff 1024
|
||||
mbedtls_ct_zeroize_if:"0xffffffffffffffff":1024
|
||||
|
||||
mbedtls_ct_memmove_left 0 0
|
||||
mbedtls_ct_memmove_left:0:0
|
||||
|
||||
mbedtls_ct_memmove_left 1 0
|
||||
mbedtls_ct_memmove_left:1:0
|
||||
|
||||
mbedtls_ct_memmove_left 1 1
|
||||
mbedtls_ct_memmove_left:1:1
|
||||
|
||||
mbedtls_ct_memmove_left 16 0
|
||||
mbedtls_ct_memmove_left:16:0
|
||||
|
||||
mbedtls_ct_memmove_left 16 1
|
||||
mbedtls_ct_memmove_left:16:1
|
||||
|
||||
mbedtls_ct_memmove_left 16 4
|
||||
mbedtls_ct_memmove_left:16:4
|
||||
|
||||
mbedtls_ct_memmove_left 16 15
|
||||
mbedtls_ct_memmove_left:16:15
|
||||
|
||||
mbedtls_ct_memmove_left 16 16
|
||||
mbedtls_ct_memmove_left:16:16
|
||||
|
||||
mbedtls_ct_memcmp_partial -1 0 0 0
|
||||
mbedtls_ct_memcmp_partial:-1:0:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 1 0 0
|
||||
mbedtls_ct_memcmp_partial:0:1:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 1 1 0
|
||||
mbedtls_ct_memcmp_partial:0:1:1:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 1 0 1
|
||||
mbedtls_ct_memcmp_partial:0:1:0:1
|
||||
|
||||
mbedtls_ct_memcmp_partial -1 1 0 0
|
||||
mbedtls_ct_memcmp_partial:-1:1:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 2 0 1
|
||||
mbedtls_ct_memcmp_partial:0:2:0:1
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 2 1 0
|
||||
mbedtls_ct_memcmp_partial:0:2:1:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 16 4 4
|
||||
mbedtls_ct_memcmp_partial:0:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 2 16 4 4
|
||||
mbedtls_ct_memcmp_partial:2:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 3 16 4 4
|
||||
mbedtls_ct_memcmp_partial:3:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 4 16 4 4
|
||||
mbedtls_ct_memcmp_partial:4:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 7 16 4 4
|
||||
mbedtls_ct_memcmp_partial:7:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 11 16 4 4
|
||||
mbedtls_ct_memcmp_partial:11:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 12 16 4 4
|
||||
mbedtls_ct_memcmp_partial:12:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 15 16 4 4
|
||||
mbedtls_ct_memcmp_partial:15:16:4:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 15 16 4 0
|
||||
mbedtls_ct_memcmp_partial:15:16:4:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 15 16 0 4
|
||||
mbedtls_ct_memcmp_partial:15:16:0:4
|
||||
|
||||
mbedtls_ct_memcmp_partial 0 16 0 0
|
||||
mbedtls_ct_memcmp_partial:0:16:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial 15 16 0 0
|
||||
mbedtls_ct_memcmp_partial:15:16:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial -1 16 0 0
|
||||
mbedtls_ct_memcmp_partial:-1:16:0:0
|
||||
|
||||
mbedtls_ct_memcmp_partial -1 16 12 4
|
||||
mbedtls_ct_memcmp_partial:-1:16:12:4
|
||||
|
||||
mbedtls_ct_memcmp_partial -1 16 8 8
|
||||
mbedtls_ct_memcmp_partial:-1:16:8:8
|
||||
@@ -1,499 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
/** \file test_suite_constant_time.function
|
||||
*
|
||||
* Functional testing of functions in the constant_time module.
|
||||
*
|
||||
* The tests are instrumented with #TEST_CF_SECRET and #TEST_CF_PUBLIC
|
||||
* (see tests/include/test/constant_flow.h) so that running the tests
|
||||
* under MSan or Valgrind will detect a non-constant-time implementation.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <mbedtls/bignum.h>
|
||||
#include <mbedtls/constant_time.h>
|
||||
#include <constant_time_internal.h>
|
||||
|
||||
#include <test/constant_flow.h>
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_memcmp_null()
|
||||
{
|
||||
uint32_t x = 0;
|
||||
TEST_ASSERT(mbedtls_ct_memcmp(&x, NULL, 0) == 0);
|
||||
TEST_ASSERT(mbedtls_ct_memcmp(NULL, &x, 0) == 0);
|
||||
TEST_ASSERT(mbedtls_ct_memcmp(NULL, NULL, 0) == 0);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_bool(char *input)
|
||||
{
|
||||
mbedtls_ct_uint_t v = (mbedtls_ct_uint_t) strtoull(input, NULL, 16);
|
||||
TEST_ASSERT(errno == 0);
|
||||
|
||||
mbedtls_ct_condition_t expected = (v != 0) ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_CF_SECRET(&v, sizeof(v));
|
||||
TEST_EQUAL(mbedtls_ct_bool(v), expected);
|
||||
TEST_CF_PUBLIC(&v, sizeof(v));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_bool_xxx(char *x_str, char *y_str)
|
||||
{
|
||||
mbedtls_ct_uint_t x = strtoull(x_str, NULL, 0);
|
||||
mbedtls_ct_uint_t y = strtoull(y_str, NULL, 0);
|
||||
|
||||
mbedtls_ct_uint_t x1 = x;
|
||||
mbedtls_ct_uint_t y1 = y;
|
||||
|
||||
TEST_CF_SECRET(&x, sizeof(x));
|
||||
TEST_CF_SECRET(&y, sizeof(y));
|
||||
|
||||
mbedtls_ct_condition_t expected = x1 ? MBEDTLS_CT_FALSE : MBEDTLS_CT_TRUE;
|
||||
TEST_EQUAL(mbedtls_ct_bool_not(mbedtls_ct_bool(x)), expected);
|
||||
|
||||
expected = x1 != y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_ne(x, y), expected);
|
||||
|
||||
expected = x1 == y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_eq(x, y), expected);
|
||||
|
||||
expected = x1 > y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_gt(x, y), expected);
|
||||
|
||||
expected = x1 < y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_lt(x, y), expected);
|
||||
|
||||
expected = x1 >= y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_ge(x, y), expected);
|
||||
|
||||
expected = x1 <= y1 ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_uint_le(x, y), expected);
|
||||
|
||||
expected = (!!x1) != (!!y1) ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_bool_ne(mbedtls_ct_bool(x), mbedtls_ct_bool(y)), expected);
|
||||
|
||||
expected = (!!x1) && (!!y1) ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_bool_and(mbedtls_ct_bool(x), mbedtls_ct_bool(y)), expected);
|
||||
|
||||
expected = (!!x1) || (!!y1) ? MBEDTLS_CT_TRUE : MBEDTLS_CT_FALSE;
|
||||
TEST_EQUAL(mbedtls_ct_bool_or(mbedtls_ct_bool(x), mbedtls_ct_bool(y)), expected);
|
||||
|
||||
TEST_CF_PUBLIC(&x, sizeof(x));
|
||||
TEST_CF_PUBLIC(&y, sizeof(y));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_BASE64_C */
|
||||
void mbedtls_ct_uchar_in_range_if(int li, int hi, int ti)
|
||||
{
|
||||
unsigned char l = li, h = hi, t = ti;
|
||||
|
||||
for (unsigned x = 0; x <= 255; x++) {
|
||||
unsigned char expected = (x >= l) && (x <= h) ? t : 0;
|
||||
|
||||
TEST_CF_SECRET(&x, sizeof(x));
|
||||
TEST_CF_SECRET(&l, sizeof(l));
|
||||
TEST_CF_SECRET(&h, sizeof(h));
|
||||
TEST_CF_SECRET(&t, sizeof(t));
|
||||
|
||||
TEST_EQUAL(mbedtls_ct_uchar_in_range_if(l, h, (unsigned char) x, t), expected);
|
||||
|
||||
TEST_CF_PUBLIC(&x, sizeof(x));
|
||||
TEST_CF_PUBLIC(&l, sizeof(l));
|
||||
TEST_CF_PUBLIC(&h, sizeof(h));
|
||||
TEST_CF_PUBLIC(&t, sizeof(t));
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_error_if(int cond, int t, int f)
|
||||
{
|
||||
mbedtls_ct_condition_t c = mbedtls_ct_bool(cond);
|
||||
|
||||
int expected = c ? t : f;
|
||||
int expected0 = c ? t : 0;
|
||||
|
||||
TEST_CF_SECRET(&c, sizeof(c));
|
||||
TEST_CF_SECRET(&t, sizeof(t));
|
||||
TEST_CF_SECRET(&f, sizeof(f));
|
||||
|
||||
TEST_EQUAL(mbedtls_ct_error_if(c, t, f), expected);
|
||||
TEST_EQUAL(mbedtls_ct_error_if_else_0(c, t), expected0);
|
||||
|
||||
TEST_CF_PUBLIC(&c, sizeof(c));
|
||||
TEST_CF_PUBLIC(&t, sizeof(t));
|
||||
TEST_CF_PUBLIC(&f, sizeof(f));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_if(char *c_str, char *t_str, char *f_str)
|
||||
{
|
||||
mbedtls_ct_condition_t c = mbedtls_ct_bool(strtoull(c_str, NULL, 16));
|
||||
mbedtls_ct_uint_t t = (mbedtls_ct_uint_t) strtoull(t_str, NULL, 16);
|
||||
mbedtls_ct_uint_t f = (mbedtls_ct_uint_t) strtoull(f_str, NULL, 16);
|
||||
|
||||
mbedtls_ct_uint_t expected = c ? t : f;
|
||||
mbedtls_ct_uint_t expected0 = c ? t : 0;
|
||||
|
||||
TEST_CF_SECRET(&c, sizeof(c));
|
||||
TEST_CF_SECRET(&t, sizeof(t));
|
||||
TEST_CF_SECRET(&f, sizeof(f));
|
||||
|
||||
TEST_EQUAL(mbedtls_ct_if(c, t, f), expected);
|
||||
TEST_EQUAL(mbedtls_ct_size_if(c, t, f), (size_t) expected);
|
||||
TEST_EQUAL(mbedtls_ct_uint_if(c, t, f), (unsigned) expected);
|
||||
TEST_EQUAL(mbedtls_ct_bool_if(c, mbedtls_ct_bool(t), mbedtls_ct_bool(f)),
|
||||
mbedtls_ct_bool(expected));
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
TEST_EQUAL(mbedtls_ct_mpi_uint_if(c, t, f), (mbedtls_mpi_uint) expected);
|
||||
#endif
|
||||
|
||||
TEST_EQUAL(mbedtls_ct_uint_if_else_0(c, t), (unsigned) expected0);
|
||||
TEST_EQUAL(mbedtls_ct_size_if_else_0(c, (size_t) t), (size_t) expected0);
|
||||
TEST_EQUAL(mbedtls_ct_bool_if_else_0(c, mbedtls_ct_bool(t)), mbedtls_ct_bool(expected0));
|
||||
#if defined(MBEDTLS_BIGNUM_C)
|
||||
TEST_EQUAL(mbedtls_ct_mpi_uint_if_else_0(c, t), (mbedtls_mpi_uint) expected0);
|
||||
#endif
|
||||
|
||||
TEST_CF_PUBLIC(&c, sizeof(c));
|
||||
TEST_CF_PUBLIC(&t, sizeof(t));
|
||||
TEST_CF_PUBLIC(&f, sizeof(f));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:!MBEDTLS_RSA_ALT */
|
||||
void mbedtls_ct_zeroize_if(char *c_str, int len)
|
||||
{
|
||||
uint8_t *buf = NULL;
|
||||
mbedtls_ct_condition_t c = mbedtls_ct_bool(strtoull(c_str, NULL, 16));
|
||||
|
||||
TEST_CALLOC(buf, len);
|
||||
for (size_t i = 0; i < (size_t) len; i++) {
|
||||
buf[i] = 1;
|
||||
}
|
||||
|
||||
TEST_CF_SECRET(&c, sizeof(c));
|
||||
TEST_CF_SECRET(buf, len);
|
||||
mbedtls_ct_zeroize_if(c, buf, len);
|
||||
TEST_CF_PUBLIC(&c, sizeof(c));
|
||||
TEST_CF_PUBLIC(buf, len);
|
||||
|
||||
for (size_t i = 0; i < (size_t) len; i++) {
|
||||
TEST_EQUAL(buf[i], c != 0 ? 0 : 1);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(buf);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_memcmp_single_bit_diff()
|
||||
{
|
||||
uint8_t *a = NULL, *b = NULL;
|
||||
size_t size = 32;
|
||||
TEST_CALLOC(a, size);
|
||||
TEST_CALLOC(b, size);
|
||||
|
||||
TEST_CF_SECRET(a, size);
|
||||
TEST_CF_SECRET(b, size);
|
||||
int result = mbedtls_ct_memcmp(a, b, size);
|
||||
TEST_CF_PUBLIC(a, size);
|
||||
TEST_CF_PUBLIC(b, size);
|
||||
TEST_CF_PUBLIC(&result, sizeof(result));
|
||||
|
||||
TEST_EQUAL(result, 0);
|
||||
|
||||
for (size_t offset = 0; offset < size; offset++) {
|
||||
for (size_t bit_offset = 0; bit_offset < 8; bit_offset++) {
|
||||
/* Set a single bit to be different at given offset, to test that we
|
||||
detect single-bit differences */
|
||||
a[offset] = 1 << bit_offset;
|
||||
|
||||
TEST_CF_SECRET(a, size);
|
||||
TEST_CF_SECRET(b, size);
|
||||
result = mbedtls_ct_memcmp(a, b, size);
|
||||
TEST_CF_PUBLIC(a, size);
|
||||
TEST_CF_PUBLIC(b, size);
|
||||
TEST_CF_PUBLIC(&result, sizeof(result));
|
||||
|
||||
TEST_ASSERT(result != 0);
|
||||
|
||||
a[offset] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
exit:
|
||||
mbedtls_free(a);
|
||||
mbedtls_free(b);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_memcmp(int same, int size, int offset)
|
||||
{
|
||||
uint8_t *a = NULL, *b = NULL;
|
||||
TEST_CALLOC(a, size + offset);
|
||||
TEST_CALLOC(b, size + offset);
|
||||
|
||||
/* Construct data that matches, if same == -1, otherwise
|
||||
* same gives the number of bytes (after the initial offset)
|
||||
* that will match; after that it will differ.
|
||||
*/
|
||||
for (int i = 0; i < size + offset; i++) {
|
||||
a[i] = i & 0xff;
|
||||
if (same == -1 || (i - offset) < same) {
|
||||
b[i] = a[i];
|
||||
} else {
|
||||
b[i] = (i + 1) & 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
int reference = memcmp(a + offset, b + offset, size);
|
||||
|
||||
TEST_CF_SECRET(a, size + offset);
|
||||
TEST_CF_SECRET(b, size + offset);
|
||||
|
||||
int actual = mbedtls_ct_memcmp(a + offset, b + offset, size);
|
||||
|
||||
TEST_CF_PUBLIC(a, size + offset);
|
||||
TEST_CF_PUBLIC(b, size + offset);
|
||||
TEST_CF_PUBLIC(&actual, sizeof(actual));
|
||||
|
||||
if (same == -1 || same >= size) {
|
||||
TEST_ASSERT(reference == 0);
|
||||
TEST_ASSERT(actual == 0);
|
||||
} else {
|
||||
TEST_ASSERT(reference != 0);
|
||||
TEST_ASSERT(actual != 0);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(a);
|
||||
mbedtls_free(b);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_NIST_KW_C */
|
||||
|
||||
/**
|
||||
* Generate two arrays of the given size, and test mbedtls_ct_memcmp_partial
|
||||
* over them. The arrays will be identical, except that one byte may be specified
|
||||
* to be different.
|
||||
*
|
||||
* \p diff Index of byte that differs (if out of range, the arrays will match).
|
||||
* \p size Size of arrays to compare
|
||||
* \p skip_head Leading bytes to skip, as per mbedtls_ct_memcmp_partial
|
||||
* \p skip_tail Trailing bytes to skip, as per mbedtls_ct_memcmp_partial
|
||||
*/
|
||||
void mbedtls_ct_memcmp_partial(int diff, int size, int skip_head, int skip_tail)
|
||||
{
|
||||
uint8_t *a = NULL, *b = NULL;
|
||||
|
||||
TEST_CALLOC_NONNULL(a, size);
|
||||
TEST_CALLOC_NONNULL(b, size);
|
||||
|
||||
TEST_ASSERT((skip_head + skip_tail) <= size);
|
||||
|
||||
/* Construct data that matches, except for specified byte (if in range). */
|
||||
for (int i = 0; i < size; i++) {
|
||||
a[i] = i & 0xff;
|
||||
b[i] = a[i];
|
||||
if (i == diff) {
|
||||
// modify the specified byte
|
||||
b[i] ^= 1;
|
||||
}
|
||||
}
|
||||
|
||||
int reference = memcmp(a + skip_head, b + skip_head, size - skip_head - skip_tail);
|
||||
|
||||
TEST_CF_SECRET(a, size);
|
||||
TEST_CF_SECRET(b, size);
|
||||
|
||||
int actual = mbedtls_ct_memcmp_partial(a, b, size, skip_head, skip_tail);
|
||||
|
||||
TEST_CF_PUBLIC(a, size);
|
||||
TEST_CF_PUBLIC(b, size);
|
||||
TEST_CF_PUBLIC(&actual, sizeof(actual));
|
||||
|
||||
TEST_EQUAL(!!reference, !!actual);
|
||||
exit:
|
||||
mbedtls_free(a);
|
||||
mbedtls_free(b);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_memcpy_if(int eq, int size, int offset)
|
||||
{
|
||||
uint8_t *src = NULL, *src2 = NULL, *result = NULL, *expected = NULL;
|
||||
TEST_CALLOC(src, size + offset);
|
||||
TEST_CALLOC(src2, size + offset);
|
||||
TEST_CALLOC(result, size + offset);
|
||||
TEST_CALLOC(expected, size + offset);
|
||||
|
||||
/* Apply offset to result only */
|
||||
for (int i = 0; i < size + offset; i++) {
|
||||
src[i] = 1;
|
||||
result[i] = 0xff;
|
||||
expected[i] = eq ? 1 : 0xff;
|
||||
}
|
||||
|
||||
int secret_eq = eq;
|
||||
TEST_CF_SECRET(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_SECRET(src, size + offset);
|
||||
TEST_CF_SECRET(result, size + offset);
|
||||
|
||||
mbedtls_ct_memcpy_if(mbedtls_ct_bool(secret_eq), result + offset, src, NULL, size);
|
||||
|
||||
TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_PUBLIC(src, size + offset);
|
||||
TEST_CF_PUBLIC(result, size + offset);
|
||||
|
||||
TEST_MEMORY_COMPARE(expected, size, result + offset, size);
|
||||
|
||||
|
||||
/* Apply offset to src only */
|
||||
for (int i = 0; i < size + offset; i++) {
|
||||
src[i] = 1;
|
||||
result[i] = 0xff;
|
||||
expected[i] = eq ? 1 : 0xff;
|
||||
}
|
||||
|
||||
TEST_CF_SECRET(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_SECRET(src, size + offset);
|
||||
TEST_CF_SECRET(result, size + offset);
|
||||
|
||||
mbedtls_ct_memcpy_if(mbedtls_ct_bool(secret_eq), result, src + offset, NULL, size);
|
||||
|
||||
TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_PUBLIC(src, size + offset);
|
||||
TEST_CF_PUBLIC(result, size + offset);
|
||||
|
||||
TEST_MEMORY_COMPARE(expected, size, result, size);
|
||||
|
||||
|
||||
/* Apply offset to src and src2 */
|
||||
for (int i = 0; i < size + offset; i++) {
|
||||
src[i] = 1;
|
||||
src2[i] = 2;
|
||||
result[i] = 0xff;
|
||||
expected[i] = eq ? 1 : 2;
|
||||
}
|
||||
|
||||
TEST_CF_SECRET(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_SECRET(src, size + offset);
|
||||
TEST_CF_SECRET(src2, size + offset);
|
||||
TEST_CF_SECRET(result, size + offset);
|
||||
|
||||
mbedtls_ct_memcpy_if(mbedtls_ct_bool(secret_eq), result, src + offset, src2 + offset, size);
|
||||
|
||||
TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_PUBLIC(src, size + offset);
|
||||
TEST_CF_SECRET(src2, size + offset);
|
||||
TEST_CF_PUBLIC(result, size + offset);
|
||||
|
||||
TEST_MEMORY_COMPARE(expected, size, result, size);
|
||||
|
||||
|
||||
/* result == src == dest */
|
||||
for (int i = 0; i < size + offset; i++) {
|
||||
src[i] = 2;
|
||||
expected[i] = 2;
|
||||
}
|
||||
|
||||
TEST_CF_SECRET(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_SECRET(src, size + offset);
|
||||
TEST_CF_SECRET(result, size + offset);
|
||||
|
||||
mbedtls_ct_memcpy_if(mbedtls_ct_bool(secret_eq), src + offset, src + offset, src + offset,
|
||||
size);
|
||||
|
||||
TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq));
|
||||
TEST_CF_PUBLIC(src, size + offset);
|
||||
TEST_CF_PUBLIC(result, size + offset);
|
||||
|
||||
TEST_MEMORY_COMPARE(expected, size, src + offset, size);
|
||||
exit:
|
||||
mbedtls_free(src);
|
||||
mbedtls_free(src2);
|
||||
mbedtls_free(result);
|
||||
mbedtls_free(expected);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:!MBEDTLS_RSA_ALT */
|
||||
void mbedtls_ct_memmove_left(int len, int offset)
|
||||
{
|
||||
size_t l = (size_t) len;
|
||||
size_t o = (size_t) offset;
|
||||
|
||||
uint8_t *buf = NULL, *buf_expected = NULL;
|
||||
TEST_CALLOC(buf, l);
|
||||
TEST_CALLOC(buf_expected, l);
|
||||
|
||||
for (size_t i = 0; i < l; i++) {
|
||||
buf[i] = (uint8_t) i;
|
||||
buf_expected[i] = buf[i];
|
||||
}
|
||||
|
||||
TEST_CF_SECRET(&o, sizeof(o));
|
||||
TEST_CF_SECRET(buf, l);
|
||||
mbedtls_ct_memmove_left(buf, l, o);
|
||||
TEST_CF_PUBLIC(&o, sizeof(o));
|
||||
TEST_CF_PUBLIC(buf, l);
|
||||
|
||||
if (l > 0) {
|
||||
memmove(buf_expected, buf_expected + o, l - o);
|
||||
memset(buf_expected + (l - o), 0, o);
|
||||
TEST_ASSERT(memcmp(buf, buf_expected, l) == 0);
|
||||
}
|
||||
exit:
|
||||
mbedtls_free(buf);
|
||||
mbedtls_free(buf_expected);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_ct_memcpy_offset(int offset_min, int offset_max, int len)
|
||||
{
|
||||
unsigned char *dst = NULL;
|
||||
unsigned char *src = NULL;
|
||||
size_t src_len = offset_max + len;
|
||||
size_t secret;
|
||||
|
||||
TEST_CALLOC(dst, len);
|
||||
TEST_CALLOC(src, src_len);
|
||||
|
||||
/* Fill src in a way that we can detect if we copied the right bytes */
|
||||
mbedtls_test_rnd_std_rand(NULL, src, src_len);
|
||||
|
||||
for (secret = offset_min; secret <= (size_t) offset_max; secret++) {
|
||||
mbedtls_test_set_step((int) secret);
|
||||
|
||||
TEST_CF_SECRET(&secret, sizeof(secret));
|
||||
TEST_CF_SECRET(src, len);
|
||||
TEST_CF_SECRET(dst, len);
|
||||
mbedtls_ct_memcpy_offset(dst, src, secret,
|
||||
offset_min, offset_max, len);
|
||||
TEST_CF_PUBLIC(&secret, sizeof(secret));
|
||||
TEST_CF_PUBLIC(src, len);
|
||||
TEST_CF_PUBLIC(dst, len);
|
||||
|
||||
TEST_MEMORY_COMPARE(dst, len, src + secret, len);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_free(dst);
|
||||
mbedtls_free(src);
|
||||
}
|
||||
/* END_CASE */
|
||||
@@ -1,15 +0,0 @@
|
||||
Constant-flow HMAC: MD5
|
||||
depends_on:MBEDTLS_MD_CAN_MD5
|
||||
ssl_cf_hmac:MBEDTLS_MD_MD5
|
||||
|
||||
Constant-flow HMAC: SHA1
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
ssl_cf_hmac:MBEDTLS_MD_SHA1
|
||||
|
||||
Constant-flow HMAC: SHA256
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
ssl_cf_hmac:MBEDTLS_MD_SHA256
|
||||
|
||||
Constant-flow HMAC: SHA384
|
||||
depends_on:MBEDTLS_MD_CAN_SHA384
|
||||
ssl_cf_hmac:MBEDTLS_MD_SHA384
|
||||
@@ -1,159 +0,0 @@
|
||||
/* BEGIN_HEADER */
|
||||
|
||||
#include <mbedtls/constant_time.h>
|
||||
#include <mbedtls/md.h>
|
||||
#include <constant_time_internal.h>
|
||||
#include "mbedtls/psa_util.h"
|
||||
#include <ssl_misc.h>
|
||||
|
||||
#include <test/constant_flow.h>
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_MAC:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */
|
||||
void ssl_cf_hmac(int hash)
|
||||
{
|
||||
/*
|
||||
* Test the function mbedtls_ct_hmac() against a reference
|
||||
* implementation.
|
||||
*/
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
psa_algorithm_t alg;
|
||||
psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT;
|
||||
#else
|
||||
mbedtls_md_context_t ctx, ref_ctx;
|
||||
const mbedtls_md_info_t *md_info;
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
size_t out_len, block_size;
|
||||
size_t min_in_len, in_len, max_in_len, i;
|
||||
/* TLS additional data is 13 bytes (hence the "lucky 13" name) */
|
||||
unsigned char add_data[13];
|
||||
unsigned char ref_out[MBEDTLS_MD_MAX_SIZE];
|
||||
unsigned char *data = NULL;
|
||||
unsigned char *out = NULL;
|
||||
unsigned char rec_num = 0;
|
||||
|
||||
USE_PSA_INIT();
|
||||
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
alg = PSA_ALG_HMAC(mbedtls_md_psa_alg_from_type(hash));
|
||||
|
||||
out_len = PSA_HASH_LENGTH(alg);
|
||||
block_size = PSA_HASH_BLOCK_LENGTH(alg);
|
||||
|
||||
/* mbedtls_ct_hmac() requires the key to be exportable */
|
||||
psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT |
|
||||
PSA_KEY_USAGE_VERIFY_HASH);
|
||||
psa_set_key_algorithm(&attributes, PSA_ALG_HMAC(alg));
|
||||
psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC);
|
||||
#else
|
||||
mbedtls_md_init(&ctx);
|
||||
mbedtls_md_init(&ref_ctx);
|
||||
|
||||
md_info = mbedtls_md_info_from_type(hash);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
out_len = mbedtls_md_get_size(md_info);
|
||||
TEST_ASSERT(out_len != 0);
|
||||
block_size = hash == MBEDTLS_MD_SHA384 ? 128 : 64;
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
|
||||
/* Use allocated out buffer to catch overwrites */
|
||||
TEST_CALLOC(out, out_len);
|
||||
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
/* Set up dummy key */
|
||||
memset(ref_out, 42, sizeof(ref_out));
|
||||
TEST_EQUAL(PSA_SUCCESS, psa_import_key(&attributes,
|
||||
ref_out, out_len,
|
||||
&key));
|
||||
#else
|
||||
/* Set up contexts with the given hash and a dummy key */
|
||||
TEST_EQUAL(0, mbedtls_md_setup(&ctx, md_info, 1));
|
||||
TEST_EQUAL(0, mbedtls_md_setup(&ref_ctx, md_info, 1));
|
||||
memset(ref_out, 42, sizeof(ref_out));
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_starts(&ctx, ref_out, out_len));
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_starts(&ref_ctx, ref_out, out_len));
|
||||
memset(ref_out, 0, sizeof(ref_out));
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Test all possible lengths up to a point. The difference between
|
||||
* max_in_len and min_in_len is at most 255, and make sure they both vary
|
||||
* by at least one block size.
|
||||
*/
|
||||
for (max_in_len = 0; max_in_len <= 255 + block_size; max_in_len++) {
|
||||
mbedtls_test_set_step(max_in_len * 10000);
|
||||
|
||||
/* Use allocated in buffer to catch overreads */
|
||||
TEST_CALLOC(data, max_in_len);
|
||||
|
||||
min_in_len = max_in_len > 255 ? max_in_len - 255 : 0;
|
||||
for (in_len = min_in_len; in_len <= max_in_len; in_len++) {
|
||||
mbedtls_test_set_step(max_in_len * 10000 + in_len);
|
||||
|
||||
/* Set up dummy data and add_data */
|
||||
rec_num++;
|
||||
memset(add_data, rec_num, sizeof(add_data));
|
||||
for (i = 0; i < in_len; i++) {
|
||||
data[i] = (i & 0xff) ^ rec_num;
|
||||
}
|
||||
|
||||
/* Get the function's result */
|
||||
TEST_CF_SECRET(&in_len, sizeof(in_len));
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
TEST_EQUAL(0, mbedtls_ct_hmac(key, PSA_ALG_HMAC(alg),
|
||||
add_data, sizeof(add_data),
|
||||
data, in_len,
|
||||
min_in_len, max_in_len,
|
||||
out));
|
||||
#else
|
||||
TEST_EQUAL(0, mbedtls_ct_hmac(&ctx, add_data, sizeof(add_data),
|
||||
data, in_len,
|
||||
min_in_len, max_in_len,
|
||||
out));
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
TEST_CF_PUBLIC(&in_len, sizeof(in_len));
|
||||
TEST_CF_PUBLIC(out, out_len);
|
||||
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
TEST_EQUAL(PSA_SUCCESS, psa_mac_verify_setup(&operation,
|
||||
key, alg));
|
||||
TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation, add_data,
|
||||
sizeof(add_data)));
|
||||
TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation,
|
||||
data, in_len));
|
||||
TEST_EQUAL(PSA_SUCCESS, psa_mac_verify_finish(&operation,
|
||||
out, out_len));
|
||||
#else
|
||||
/* Compute the reference result */
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_update(&ref_ctx, add_data,
|
||||
sizeof(add_data)));
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_update(&ref_ctx, data, in_len));
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_finish(&ref_ctx, ref_out));
|
||||
TEST_EQUAL(0, mbedtls_md_hmac_reset(&ref_ctx));
|
||||
|
||||
/* Compare */
|
||||
TEST_MEMORY_COMPARE(out, out_len, ref_out, out_len);
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
}
|
||||
|
||||
mbedtls_free(data);
|
||||
data = NULL;
|
||||
}
|
||||
|
||||
exit:
|
||||
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
||||
psa_mac_abort(&operation);
|
||||
psa_destroy_key(key);
|
||||
#else
|
||||
mbedtls_md_free(&ref_ctx);
|
||||
mbedtls_md_free(&ctx);
|
||||
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
||||
|
||||
mbedtls_free(data);
|
||||
mbedtls_free(out);
|
||||
|
||||
USE_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,14 +2,10 @@
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "mbedtls/ctr_drbg.h"
|
||||
#include "string.h"
|
||||
#include "ctr.h"
|
||||
|
||||
#if defined(MBEDTLS_THREADING_PTHREAD)
|
||||
#include "mbedtls/threading.h"
|
||||
#endif
|
||||
|
||||
/* Modes for ctr_drbg_validate */
|
||||
enum reseed_mode {
|
||||
enum reseed_mode
|
||||
{
|
||||
RESEED_NEVER, /* never reseed */
|
||||
RESEED_FIRST, /* instantiate, reseed, generate, generate */
|
||||
RESEED_SECOND, /* instantiate, generate, reseed, generate */
|
||||
@@ -18,96 +14,84 @@ enum reseed_mode {
|
||||
|
||||
static size_t test_offset_idx = 0;
|
||||
static size_t test_max_idx = 0;
|
||||
static int mbedtls_test_entropy_func(void *data, unsigned char *buf, size_t len)
|
||||
static int mbedtls_test_entropy_func( void *data, unsigned char *buf, size_t len )
|
||||
{
|
||||
const unsigned char *p = (unsigned char *) data;
|
||||
if (test_offset_idx + len > test_max_idx) {
|
||||
return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
|
||||
}
|
||||
memcpy(buf, p + test_offset_idx, len);
|
||||
if( test_offset_idx + len > test_max_idx )
|
||||
return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
memcpy( buf, p + test_offset_idx, len );
|
||||
test_offset_idx += len;
|
||||
return 0;
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
static void ctr_drbg_validate_internal(int reseed_mode, data_t *nonce,
|
||||
int entropy_len_arg, data_t *entropy,
|
||||
data_t *reseed,
|
||||
data_t *add1, data_t *add2,
|
||||
data_t *result)
|
||||
static void ctr_drbg_validate_internal( int reseed_mode, data_t * nonce,
|
||||
int entropy_len_arg, data_t * entropy,
|
||||
data_t * reseed,
|
||||
data_t * add1, data_t * add2,
|
||||
data_t * result )
|
||||
{
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
unsigned char buf[64];
|
||||
|
||||
size_t entropy_chunk_len = (size_t) entropy_len_arg;
|
||||
TEST_ASSERT(entropy_chunk_len <= sizeof(buf));
|
||||
|
||||
TEST_ASSERT( entropy_chunk_len <= sizeof( buf ) );
|
||||
|
||||
test_offset_idx = 0;
|
||||
mbedtls_ctr_drbg_init( &ctx );
|
||||
|
||||
test_max_idx = entropy->len;
|
||||
|
||||
/* CTR_DRBG_Instantiate(entropy[:entropy->len], nonce, perso, <ignored>)
|
||||
* where nonce||perso = nonce[nonce->len] */
|
||||
mbedtls_ctr_drbg_set_entropy_len(&ctx, entropy_chunk_len);
|
||||
mbedtls_ctr_drbg_set_nonce_len(&ctx, 0);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_seed(
|
||||
&ctx,
|
||||
mbedtls_test_entropy_func, entropy->x,
|
||||
nonce->x, nonce->len) == 0);
|
||||
if (reseed_mode == RESEED_ALWAYS) {
|
||||
mbedtls_ctr_drbg_set_entropy_len( &ctx, entropy_chunk_len );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_seed(
|
||||
&ctx,
|
||||
mbedtls_test_entropy_func, entropy->x,
|
||||
nonce->x, nonce->len ) == 0 );
|
||||
if( reseed_mode == RESEED_ALWAYS )
|
||||
mbedtls_ctr_drbg_set_prediction_resistance(
|
||||
&ctx,
|
||||
MBEDTLS_CTR_DRBG_PR_ON);
|
||||
}
|
||||
MBEDTLS_CTR_DRBG_PR_ON );
|
||||
|
||||
if (reseed_mode == RESEED_FIRST) {
|
||||
if( reseed_mode == RESEED_FIRST )
|
||||
{
|
||||
/* CTR_DRBG_Reseed(entropy[idx:idx+entropy->len],
|
||||
* reseed[:reseed->len]) */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_reseed(
|
||||
&ctx,
|
||||
reseed->x, reseed->len) == 0);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_reseed(
|
||||
&ctx,
|
||||
reseed->x, reseed->len ) == 0 );
|
||||
}
|
||||
|
||||
/* CTR_DRBG_Generate(result->len * 8 bits, add1[:add1->len]) -> buf */
|
||||
/* Then reseed if prediction resistance is enabled. */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(
|
||||
&ctx,
|
||||
buf, result->len,
|
||||
add1->x, add1->len) == 0);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add(
|
||||
&ctx,
|
||||
buf, result->len,
|
||||
add1->x, add1->len ) == 0 );
|
||||
|
||||
|
||||
if (reseed_mode == RESEED_SECOND) {
|
||||
if( reseed_mode == RESEED_SECOND )
|
||||
{
|
||||
/* CTR_DRBG_Reseed(entropy[idx:idx+entropy->len],
|
||||
* reseed[:reseed->len]) */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_reseed(
|
||||
&ctx,
|
||||
reseed->x, reseed->len) == 0);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_reseed(
|
||||
&ctx,
|
||||
reseed->x, reseed->len ) == 0 );
|
||||
}
|
||||
|
||||
/* CTR_DRBG_Generate(result->len * 8 bits, add2->x[:add2->len]) -> buf */
|
||||
/* Then reseed if prediction resistance is enabled. */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(
|
||||
&ctx,
|
||||
buf, result->len,
|
||||
add2->x, add2->len) == 0);
|
||||
TEST_ASSERT(memcmp(buf, result->x, result->len) == 0);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add(
|
||||
&ctx,
|
||||
buf, result->len,
|
||||
add2->x, add2->len ) == 0 );
|
||||
TEST_ASSERT( memcmp( buf, result->x, result->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
mbedtls_ctr_drbg_free( &ctx );
|
||||
}
|
||||
|
||||
static const int thread_random_reps = 10;
|
||||
void *thread_random_function(void *ctx)
|
||||
{
|
||||
unsigned char out[16];
|
||||
memset(out, 0, sizeof(out));
|
||||
|
||||
for (int i = 0; i < thread_random_reps; i++) {
|
||||
TEST_EQUAL(mbedtls_ctr_drbg_random((mbedtls_ctr_drbg_context *) ctx, out, sizeof(out)), 0);
|
||||
}
|
||||
|
||||
exit:
|
||||
return NULL;
|
||||
}
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -116,408 +100,200 @@ exit:
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_special_behaviours()
|
||||
void ctr_drbg_special_behaviours( )
|
||||
{
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
unsigned char output[512];
|
||||
unsigned char additional[512];
|
||||
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
memset(output, 0, sizeof(output));
|
||||
memset(additional, 0, sizeof(additional));
|
||||
mbedtls_ctr_drbg_init( &ctx );
|
||||
memset( output, 0, sizeof( output ) );
|
||||
memset( additional, 0, sizeof( additional ) );
|
||||
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx,
|
||||
output, MBEDTLS_CTR_DRBG_MAX_REQUEST + 1,
|
||||
additional, 16) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx,
|
||||
output, 16,
|
||||
additional, MBEDTLS_CTR_DRBG_MAX_INPUT + 1) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx,
|
||||
output, MBEDTLS_CTR_DRBG_MAX_REQUEST + 1,
|
||||
additional, 16 ) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx,
|
||||
output, 16,
|
||||
additional, MBEDTLS_CTR_DRBG_MAX_INPUT + 1 ) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG );
|
||||
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, additional,
|
||||
MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + 1) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_reseed( &ctx, additional,
|
||||
MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + 1 ) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG );
|
||||
|
||||
mbedtls_ctr_drbg_set_entropy_len(&ctx, ~0);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, additional,
|
||||
MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG);
|
||||
mbedtls_ctr_drbg_set_entropy_len( &ctx, ~0 );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_reseed( &ctx, additional,
|
||||
MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ) ==
|
||||
MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG );
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
mbedtls_ctr_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_validate_no_reseed(data_t *add_init, data_t *entropy,
|
||||
data_t *add1, data_t *add2,
|
||||
data_t *result_string)
|
||||
void ctr_drbg_validate_no_reseed( data_t * add_init, data_t * entropy,
|
||||
data_t * add1, data_t * add2,
|
||||
data_t * result_string )
|
||||
{
|
||||
data_t empty = { 0, 0 };
|
||||
AES_PSA_INIT();
|
||||
ctr_drbg_validate_internal(RESEED_NEVER, add_init,
|
||||
entropy->len, entropy,
|
||||
&empty, add1, add2,
|
||||
result_string);
|
||||
AES_PSA_DONE();
|
||||
ctr_drbg_validate_internal( RESEED_NEVER, add_init,
|
||||
entropy->len, entropy,
|
||||
&empty, add1, add2,
|
||||
result_string );
|
||||
goto exit; // goto is needed to avoid warning ( no test assertions in func)
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_validate_pr(data_t *add_init, data_t *entropy,
|
||||
data_t *add1, data_t *add2,
|
||||
data_t *result_string)
|
||||
void ctr_drbg_validate_pr( data_t * add_init, data_t * entropy,
|
||||
data_t * add1, data_t * add2,
|
||||
data_t * result_string )
|
||||
{
|
||||
data_t empty = { 0, 0 };
|
||||
AES_PSA_INIT();
|
||||
ctr_drbg_validate_internal(RESEED_ALWAYS, add_init,
|
||||
entropy->len / 3, entropy,
|
||||
&empty, add1, add2,
|
||||
result_string);
|
||||
AES_PSA_DONE();
|
||||
ctr_drbg_validate_internal( RESEED_ALWAYS, add_init,
|
||||
entropy->len / 3, entropy,
|
||||
&empty, add1, add2,
|
||||
result_string );
|
||||
goto exit; // goto is needed to avoid warning ( no test assertions in func)
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_validate_reseed_between(data_t *add_init, data_t *entropy,
|
||||
data_t *add1, data_t *add_reseed,
|
||||
data_t *add2, data_t *result_string)
|
||||
void ctr_drbg_validate_reseed_between( data_t * add_init, data_t * entropy,
|
||||
data_t * add1, data_t * add_reseed,
|
||||
data_t * add2, data_t * result_string )
|
||||
{
|
||||
AES_PSA_INIT();
|
||||
ctr_drbg_validate_internal(RESEED_SECOND, add_init,
|
||||
entropy->len / 2, entropy,
|
||||
add_reseed, add1, add2,
|
||||
result_string);
|
||||
AES_PSA_DONE();
|
||||
ctr_drbg_validate_internal( RESEED_SECOND, add_init,
|
||||
entropy->len / 2, entropy,
|
||||
add_reseed, add1, add2,
|
||||
result_string );
|
||||
goto exit; // goto is needed to avoid warning ( no test assertions in func)
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_validate_reseed_first(data_t *add_init, data_t *entropy,
|
||||
data_t *add1, data_t *add_reseed,
|
||||
data_t *add2, data_t *result_string)
|
||||
void ctr_drbg_validate_reseed_first( data_t * add_init, data_t * entropy,
|
||||
data_t * add1, data_t * add_reseed,
|
||||
data_t * add2, data_t * result_string )
|
||||
{
|
||||
AES_PSA_INIT();
|
||||
ctr_drbg_validate_internal(RESEED_FIRST, add_init,
|
||||
entropy->len / 2, entropy,
|
||||
add_reseed, add1, add2,
|
||||
result_string);
|
||||
AES_PSA_DONE();
|
||||
ctr_drbg_validate_internal( RESEED_FIRST, add_init,
|
||||
entropy->len / 2, entropy,
|
||||
add_reseed, add1, add2,
|
||||
result_string );
|
||||
goto exit; // goto is needed to avoid warning ( no test assertions in func)
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_entropy_strength(int expected_bit_strength)
|
||||
{
|
||||
unsigned char entropy[/*initial entropy*/ MBEDTLS_CTR_DRBG_ENTROPY_LEN +
|
||||
/*nonce*/ MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN +
|
||||
/*reseed*/ MBEDTLS_CTR_DRBG_ENTROPY_LEN];
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
size_t last_idx;
|
||||
size_t byte_strength = expected_bit_strength / 8;
|
||||
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
|
||||
AES_PSA_INIT();
|
||||
test_offset_idx = 0;
|
||||
test_max_idx = sizeof(entropy);
|
||||
memset(entropy, 0, sizeof(entropy));
|
||||
|
||||
/* The initial seeding must grab at least byte_strength bytes of entropy
|
||||
* for the entropy input and byte_strength/2 bytes for a nonce. */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx,
|
||||
mbedtls_test_entropy_func, entropy,
|
||||
NULL, 0) == 0);
|
||||
TEST_ASSERT(test_offset_idx >= (byte_strength * 3 + 1) / 2);
|
||||
last_idx = test_offset_idx;
|
||||
|
||||
/* A reseed must grab at least byte_strength bytes of entropy. */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, NULL, 0) == 0);
|
||||
TEST_ASSERT(test_offset_idx - last_idx >= byte_strength);
|
||||
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
AES_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_drbg_entropy_usage(int entropy_nonce_len)
|
||||
void ctr_drbg_entropy_usage( )
|
||||
{
|
||||
unsigned char out[16];
|
||||
unsigned char add[16];
|
||||
unsigned char entropy[1024];
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
size_t i, reps = 10;
|
||||
size_t expected_idx = 0;
|
||||
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
|
||||
AES_PSA_INIT();
|
||||
size_t last_idx;
|
||||
|
||||
mbedtls_ctr_drbg_init( &ctx );
|
||||
test_offset_idx = 0;
|
||||
test_max_idx = sizeof(entropy);
|
||||
memset(entropy, 0, sizeof(entropy));
|
||||
memset(out, 0, sizeof(out));
|
||||
memset(add, 0, sizeof(add));
|
||||
|
||||
if (entropy_nonce_len >= 0) {
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_set_nonce_len(&ctx, entropy_nonce_len) == 0);
|
||||
}
|
||||
test_max_idx = sizeof( entropy );
|
||||
memset( entropy, 0, sizeof( entropy ) );
|
||||
memset( out, 0, sizeof( out ) );
|
||||
memset( add, 0, sizeof( add ) );
|
||||
|
||||
/* Set reseed interval before seed */
|
||||
mbedtls_ctr_drbg_set_reseed_interval(&ctx, 2 * reps);
|
||||
mbedtls_ctr_drbg_set_reseed_interval( &ctx, 2 * reps );
|
||||
|
||||
/* Init must use entropy */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_entropy_func, entropy, NULL, 0) == 0);
|
||||
expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN;
|
||||
if (entropy_nonce_len >= 0) {
|
||||
expected_idx += entropy_nonce_len;
|
||||
} else {
|
||||
expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN;
|
||||
}
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
last_idx = test_offset_idx;
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctx, mbedtls_test_entropy_func, entropy, NULL, 0 ) == 0 );
|
||||
TEST_ASSERT( last_idx < test_offset_idx );
|
||||
|
||||
/* By default, PR is off, and reseed interval was set to
|
||||
* 2 * reps so the next few calls should not use entropy */
|
||||
for (i = 0; i < reps; i++) {
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out) - 4) == 0);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, out, sizeof(out) - 4,
|
||||
add, sizeof(add)) == 0);
|
||||
last_idx = test_offset_idx;
|
||||
for( i = 0; i < reps; i++ )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) - 4 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, out, sizeof( out ) - 4,
|
||||
add, sizeof( add ) ) == 0 );
|
||||
}
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
TEST_ASSERT( last_idx == test_offset_idx );
|
||||
|
||||
/* While at it, make sure we didn't write past the requested length */
|
||||
TEST_ASSERT(out[sizeof(out) - 4] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 3] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 2] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 1] == 0);
|
||||
TEST_ASSERT( out[sizeof( out ) - 4] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 3] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 2] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 1] == 0 );
|
||||
|
||||
/* There have been 2 * reps calls to random. The next call should reseed */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN;
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( last_idx < test_offset_idx );
|
||||
|
||||
/* Set reseed interval after seed */
|
||||
mbedtls_ctr_drbg_set_reseed_interval(&ctx, 4 * reps + 1);
|
||||
mbedtls_ctr_drbg_set_reseed_interval( &ctx, 4 * reps + 1 );
|
||||
|
||||
/* The next few calls should not reseed */
|
||||
for (i = 0; i < (2 * reps); i++) {
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, out, sizeof(out),
|
||||
add, sizeof(add)) == 0);
|
||||
last_idx = test_offset_idx;
|
||||
for( i = 0; i < (2 * reps); i++ )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, out, sizeof( out ) ,
|
||||
add, sizeof( add ) ) == 0 );
|
||||
}
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
TEST_ASSERT( last_idx == test_offset_idx );
|
||||
|
||||
/* Call update with too much data (sizeof(entropy) > MAX(_SEED)_INPUT).
|
||||
/* Call update with too much data (sizeof entropy > MAX(_SEED)_INPUT).
|
||||
* Make sure it's detected as an error and doesn't cause memory
|
||||
* corruption. */
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_update(
|
||||
&ctx, entropy, sizeof(entropy)) != 0);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_update_ret(
|
||||
&ctx, entropy, sizeof( entropy ) ) != 0 );
|
||||
|
||||
/* Now enable PR, so the next few calls should all reseed */
|
||||
mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_ON);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN;
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
mbedtls_ctr_drbg_set_prediction_resistance( &ctx, MBEDTLS_CTR_DRBG_PR_ON );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( last_idx < test_offset_idx );
|
||||
|
||||
/* Finally, check setting entropy_len */
|
||||
mbedtls_ctr_drbg_set_entropy_len(&ctx, 42);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_idx += 42;
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
mbedtls_ctr_drbg_set_entropy_len( &ctx, 42 );
|
||||
last_idx = test_offset_idx;
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( test_offset_idx - last_idx == 42 );
|
||||
|
||||
mbedtls_ctr_drbg_set_entropy_len(&ctx, 13);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_idx += 13;
|
||||
TEST_EQUAL(test_offset_idx, expected_idx);
|
||||
mbedtls_ctr_drbg_set_entropy_len( &ctx, 13 );
|
||||
last_idx = test_offset_idx;
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( test_offset_idx - last_idx == 13 );
|
||||
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
AES_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_THREADING_PTHREAD:!MBEDTLS_CTR_DRBG_USE_128_BIT_KEY:!MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
|
||||
void ctr_drbg_threads(data_t *expected_result, int reseed, int arg_thread_count)
|
||||
{
|
||||
size_t thread_count = (size_t) arg_thread_count;
|
||||
mbedtls_test_thread_t *threads = NULL;
|
||||
|
||||
unsigned char out[16];
|
||||
unsigned char *entropy = NULL;
|
||||
|
||||
const size_t n_random_calls = thread_count * thread_random_reps + 1;
|
||||
|
||||
/* This is a known-answer test, and although tests use a mock entropy
|
||||
* function the input entropy length will still affect the output.
|
||||
* We therefore need to pick a fixed entropy length, rather than using the
|
||||
* default entropy length (MBEDTLS_CTR_DRBG_ENTROPY_LEN). We've chosen to
|
||||
* use the default value of MBEDTLS_CTR_DRBG_ENTROPY_LEN for SHA-512,
|
||||
* as this was the value used when the expected answers were calculated. */
|
||||
const size_t entropy_len = 48;
|
||||
|
||||
AES_PSA_INIT();
|
||||
|
||||
TEST_CALLOC(threads, sizeof(mbedtls_test_thread_t) * thread_count);
|
||||
memset(out, 0, sizeof(out));
|
||||
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
|
||||
test_offset_idx = 0;
|
||||
|
||||
/* Need to set a non-default fixed entropy len, to ensure same output across
|
||||
* all configs - see above for details. */
|
||||
mbedtls_ctr_drbg_set_entropy_len(&ctx, entropy_len);
|
||||
|
||||
if (reseed == 0) {
|
||||
mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_OFF);
|
||||
mbedtls_ctr_drbg_set_reseed_interval(&ctx, n_random_calls + 1);
|
||||
|
||||
TEST_CALLOC(entropy, entropy_len + MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN);
|
||||
test_max_idx = entropy_len + MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN;
|
||||
} else {
|
||||
const size_t entropy_size = ((n_random_calls + 1) * entropy_len)
|
||||
+ MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN;
|
||||
|
||||
mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_ON);
|
||||
|
||||
TEST_CALLOC(entropy, entropy_size);
|
||||
test_max_idx = entropy_size;
|
||||
}
|
||||
|
||||
TEST_EQUAL(
|
||||
mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_entropy_func, entropy, NULL, 0),
|
||||
0);
|
||||
|
||||
for (size_t i = 0; i < thread_count; i++) {
|
||||
TEST_EQUAL(
|
||||
mbedtls_test_thread_create(&threads[i],
|
||||
thread_random_function, (void *) &ctx),
|
||||
0);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < thread_count; i++) {
|
||||
TEST_EQUAL(mbedtls_test_thread_join(&threads[i]), 0);
|
||||
}
|
||||
|
||||
/* Take a last output for comparing and thus verifying the DRBG state */
|
||||
TEST_EQUAL(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)), 0);
|
||||
|
||||
TEST_MEMORY_COMPARE(out, sizeof(out), expected_result->x, expected_result->len);
|
||||
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
mbedtls_free(entropy);
|
||||
mbedtls_free(threads);
|
||||
|
||||
AES_PSA_DONE();
|
||||
mbedtls_ctr_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */
|
||||
void ctr_drbg_seed_file(char *path, int ret)
|
||||
void ctr_drbg_seed_file( char * path, int ret )
|
||||
{
|
||||
mbedtls_ctr_drbg_context ctx;
|
||||
|
||||
mbedtls_ctr_drbg_init(&ctx);
|
||||
mbedtls_ctr_drbg_init( &ctx );
|
||||
|
||||
AES_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_rnd_std_rand,
|
||||
NULL, NULL, 0) == 0);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_write_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_update_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctx, rnd_std_rand, NULL, NULL, 0 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_write_seed_file( &ctx, path ) == ret );
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_update_seed_file( &ctx, path ) == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_ctr_drbg_free(&ctx);
|
||||
AES_PSA_DONE();
|
||||
mbedtls_ctr_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void ctr_drbg_selftest()
|
||||
void ctr_drbg_selftest( )
|
||||
{
|
||||
AES_PSA_INIT();
|
||||
TEST_ASSERT(mbedtls_ctr_drbg_self_test(1) == 0);
|
||||
AES_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_increment_rollover()
|
||||
{
|
||||
uint8_t c[16];
|
||||
uint8_t r[16];
|
||||
|
||||
// test all increments from 2^n - 1 to 2^n (i.e. where we roll over into the next bit)
|
||||
for (int n = 0; n <= 128; n++) {
|
||||
memset(c, 0, 16);
|
||||
memset(r, 0, 16);
|
||||
|
||||
// set least significant (highest address) n bits to 1, i.e. generate (2^n - 1)
|
||||
for (int i = 0; i < n; i++) {
|
||||
int bit = i % 8;
|
||||
int byte = (i / 8);
|
||||
c[15 - byte] |= 1 << bit;
|
||||
}
|
||||
// increment to get 2^n
|
||||
mbedtls_ctr_increment_counter(c);
|
||||
|
||||
// now generate a reference result equal to 2^n - i.e. set only bit (n + 1)
|
||||
// if n == 127, this will not set any bits (i.e. wraps to 0).
|
||||
int bit = n % 8;
|
||||
int byte = n / 8;
|
||||
if (byte < 16) {
|
||||
r[15 - byte] = 1 << bit;
|
||||
}
|
||||
|
||||
TEST_MEMORY_COMPARE(c, 16, r, 16);
|
||||
}
|
||||
|
||||
uint64_t lsb = 10, msb = 20;
|
||||
MBEDTLS_PUT_UINT64_BE(msb, c, 0);
|
||||
MBEDTLS_PUT_UINT64_BE(lsb, c, 8);
|
||||
memcpy(r, c, 16);
|
||||
mbedtls_ctr_increment_counter(c);
|
||||
for (int i = 15; i >= 0; i--) {
|
||||
r[i] += 1;
|
||||
if (r[i] != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
TEST_MEMORY_COMPARE(c, 16, r, 16);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ctr_increment(data_t *x)
|
||||
{
|
||||
uint8_t c[16];
|
||||
uint8_t r[16];
|
||||
|
||||
// initialise c and r from test argument
|
||||
memset(c, 0, 16);
|
||||
memcpy(c, x->x, x->len);
|
||||
memcpy(r, c, 16);
|
||||
|
||||
// increment c
|
||||
mbedtls_ctr_increment_counter(c);
|
||||
// increment reference
|
||||
for (int i = 15; i >= 0; i--) {
|
||||
r[i] += 1;
|
||||
if (r[i] != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// test that mbedtls_ctr_increment_counter behaviour matches reference
|
||||
TEST_MEMORY_COMPARE(c, 16, r, 16);
|
||||
TEST_ASSERT( mbedtls_ctr_drbg_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -37,31 +37,28 @@ mbedtls_debug_print_buf:"MyFile":999:"Test return value":"000102030405060708090A
|
||||
Debug print buffer #5
|
||||
mbedtls_debug_print_buf:"MyFile":999:"Test return value":"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30":"MyFile(0999)\: dumping 'Test return value' (49 bytes)\nMyFile(0999)\: 0000\: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ................\nMyFile(0999)\: 0010\: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f ................\nMyFile(0999)\: 0020\: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f !"#$%&'()*+,-./\nMyFile(0999)\: 0030\: 30 0\n"
|
||||
|
||||
Debug print mbedtls_mpi: 0 (empty representation)
|
||||
mbedtls_debug_print_mpi:"":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (0 bits) is\:\nMyFile(0999)\: 00\n"
|
||||
|
||||
Debug print mbedtls_mpi: 0 (non-empty representation)
|
||||
mbedtls_debug_print_mpi:"00000000000000":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (0 bits) is\:\nMyFile(0999)\: 00\n"
|
||||
|
||||
Debug print mbedtls_mpi #2: 3 bits
|
||||
mbedtls_debug_print_mpi:"00000000000007":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (3 bits) is\:\nMyFile(0999)\: 07\n"
|
||||
|
||||
Debug print mbedtls_mpi: 49 bits
|
||||
mbedtls_debug_print_mpi:"01020304050607":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (49 bits) is\:\nMyFile(0999)\: 01 02 03 04 05 06 07\n"
|
||||
|
||||
Debug print mbedtls_mpi: 759 bits
|
||||
mbedtls_debug_print_mpi:"0000000000000000000000000000000000000000000000000000000041379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (759 bits) is\:\nMyFile(0999)\: 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a 14\nMyFile(0999)\: 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90 ff\nMyFile(0999)\: e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c 09\nMyFile(0999)\: 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89 af\nMyFile(0999)\: 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b 52\nMyFile(0999)\: 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
Debug print mbedtls_mpi: 764 bits #1
|
||||
mbedtls_debug_print_mpi:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
Debug print mbedtls_mpi: 764 bits #2
|
||||
mbedtls_debug_print_mpi:"0000000000000000000000000000000000000000000000000000000941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
Debug print certificate #1 (RSA)
|
||||
depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_MD_CAN_SHA1:!MBEDTLS_X509_REMOVE_INFO
|
||||
depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_SHA1_C
|
||||
mbedtls_debug_print_crt:"data_files/server1.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: 01\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=PolarSSL Test CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:06\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:06\nMyFile(0999)\: signed using \: RSA with SHA1\nMyFile(0999)\: RSA key size \: 2048 bits\nMyFile(0999)\: basic constraints \: CA=false\nMyFile(0999)\: value of 'crt->rsa.N' (2048 bits) is\:\nMyFile(0999)\: a9 02 1f 3d 40 6a d5 55 53 8b fd 36 ee 82 65 2e\nMyFile(0999)\: 15 61 5e 89 bf b8 e8 45 90 db ee 88 16 52 d3 f1\nMyFile(0999)\: 43 50 47 96 12 59 64 87 6b fd 2b e0 46 f9 73 be\nMyFile(0999)\: dd cf 92 e1 91 5b ed 66 a0 6f 89 29 79 45 80 d0\nMyFile(0999)\: 83 6a d5 41 43 77 5f 39 7c 09 04 47 82 b0 57 39\nMyFile(0999)\: 70 ed a3 ec 15 19 1e a8 33 08 47 c1 05 42 a9 fd\nMyFile(0999)\: 4c c3 b4 df dd 06 1f 4d 10 51 40 67 73 13 0f 40\nMyFile(0999)\: f8 6d 81 25 5f 0a b1 53 c6 30 7e 15 39 ac f9 5a\nMyFile(0999)\: ee 7f 92 9e a6 05 5b e7 13 97 85 b5 23 92 d9 d4\nMyFile(0999)\: 24 06 d5 09 25 89 75 07 dd a6 1a 8f 3f 09 19 be\nMyFile(0999)\: ad 65 2c 64 eb 95 9b dc fe 41 5e 17 a6 da 6c 5b\nMyFile(0999)\: 69 cc 02 ba 14 2c 16 24 9c 4a dc cd d0 f7 52 67\nMyFile(0999)\: 73 f1 2d a0 23 fd 7e f4 31 ca 2d 70 ca 89 0b 04\nMyFile(0999)\: db 2e a6 4f 70 6e 9e ce bd 58 89 e2 53 59 9e 6e\nMyFile(0999)\: 5a 92 65 e2 88 3f 0c 94 19 a3 dd e5 e8 9d 95 13\nMyFile(0999)\: ed 29 db ab 70 12 dc 5a ca 6b 17 ab 52 82 54 b1\nMyFile(0999)\: value of 'crt->rsa.E' (17 bits) is\:\nMyFile(0999)\: 01 00 01\n"
|
||||
|
||||
Debug print certificate #2 (EC)
|
||||
depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_PK_CAN_ECDSA_SOME:MBEDTLS_PK_HAVE_ECC_KEYS:MBEDTLS_ECP_HAVE_SECP384R1:MBEDTLS_MD_CAN_SHA256:!MBEDTLS_X509_REMOVE_INFO
|
||||
depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C
|
||||
mbedtls_debug_print_crt:"data_files/test-ca2.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: C1\:43\:E2\:7E\:62\:43\:CC\:E8\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:00\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:00\nMyFile(0999)\: signed using \: ECDSA with SHA256\nMyFile(0999)\: EC key size \: 384 bits\nMyFile(0999)\: basic constraints \: CA=true\nMyFile(0999)\: value of 'crt->eckey.Q(X)' (384 bits) is\:\nMyFile(0999)\: c3 da 2b 34 41 37 58 2f 87 56 fe fc 89 ba 29 43\nMyFile(0999)\: 4b 4e e0 6e c3 0e 57 53 33 39 58 d4 52 b4 91 95\nMyFile(0999)\: 39 0b 23 df 5f 17 24 62 48 fc 1a 95 29 ce 2c 2d\nMyFile(0999)\: value of 'crt->eckey.Q(Y)' (384 bits) is\:\nMyFile(0999)\: 87 c2 88 52 80 af d6 6a ab 21 dd b8 d3 1c 6e 58\nMyFile(0999)\: b8 ca e8 b2 69 8e f3 41 ad 29 c3 b4 5f 75 a7 47\nMyFile(0999)\: 6f d5 19 29 55 69 9a 53 3b 20 b4 66 16 60 33 1e\n"
|
||||
|
||||
Debug print mbedtls_mpi #1
|
||||
mbedtls_debug_print_mpi:16:"01020304050607":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (49 bits) is\:\nMyFile(0999)\: 01 02 03 04 05 06 07\n"
|
||||
|
||||
Debug print mbedtls_mpi #2
|
||||
mbedtls_debug_print_mpi:16:"00000000000007":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (3 bits) is\:\nMyFile(0999)\: 07\n"
|
||||
|
||||
Debug print mbedtls_mpi #3
|
||||
mbedtls_debug_print_mpi:16:"00000000000000":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (0 bits) is\:\nMyFile(0999)\: 00\n"
|
||||
|
||||
Debug print mbedtls_mpi #4
|
||||
mbedtls_debug_print_mpi:16:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
Debug print mbedtls_mpi #5
|
||||
mbedtls_debug_print_mpi:16:"0000000000000000000000000000000000000000000000000000000941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
Debug print mbedtls_mpi #6
|
||||
mbedtls_debug_print_mpi:16:"0000000000000000000000000000000000000000000000000000000041379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (759 bits) is\:\nMyFile(0999)\: 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a 14\nMyFile(0999)\: 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90 ff\nMyFile(0999)\: e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c 09\nMyFile(0999)\: 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89 af\nMyFile(0999)\: 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b 52\nMyFile(0999)\: 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "debug_internal.h"
|
||||
#include "mbedtls/debug.h"
|
||||
#include "string.h"
|
||||
#include "mbedtls/pk.h"
|
||||
|
||||
struct buffer_data {
|
||||
struct buffer_data
|
||||
{
|
||||
char buf[2000];
|
||||
char *ptr;
|
||||
};
|
||||
@@ -14,32 +14,29 @@ void string_debug(void *data, int level, const char *file, int line, const char
|
||||
char *p = buffer->ptr;
|
||||
((void) level);
|
||||
|
||||
memcpy(p, file, strlen(file));
|
||||
p += strlen(file);
|
||||
memcpy( p, file, strlen( file ) );
|
||||
p += strlen( file );
|
||||
|
||||
*p++ = '(';
|
||||
*p++ = '0' + (line / 1000) % 10;
|
||||
*p++ = '0' + (line / 100) % 10;
|
||||
*p++ = '0' + (line / 10) % 10;
|
||||
*p++ = '0' + (line / 1) % 10;
|
||||
*p++ = '0' + ( line / 1000 ) % 10;
|
||||
*p++ = '0' + ( line / 100 ) % 10;
|
||||
*p++ = '0' + ( line / 10 ) % 10;
|
||||
*p++ = '0' + ( line / 1 ) % 10;
|
||||
*p++ = ')';
|
||||
*p++ = ':';
|
||||
*p++ = ' ';
|
||||
|
||||
#if defined(MBEDTLS_THREADING_C)
|
||||
/* Skip "thread ID" (up to the first space) as it is not predictable */
|
||||
while (*str++ != ' ') {
|
||||
;
|
||||
}
|
||||
while( *str++ != ' ' );
|
||||
#endif
|
||||
|
||||
memcpy(p, str, strlen(str));
|
||||
p += strlen(str);
|
||||
memcpy( p, str, strlen( str ) );
|
||||
p += strlen( str );
|
||||
|
||||
/* Detect if debug messages output partial lines and mark them */
|
||||
if (p[-1] != '\n') {
|
||||
if( p[-1] != '\n' )
|
||||
*p++ = '*';
|
||||
}
|
||||
|
||||
buffer->ptr = p;
|
||||
}
|
||||
@@ -51,188 +48,148 @@ void string_debug(void *data, int level, const char *file, int line, const char
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void debug_print_msg_threshold(int threshold, int level, char *file,
|
||||
int line, char *result_str)
|
||||
void debug_print_msg_threshold( int threshold, int level, char * file,
|
||||
int line, char * result_str )
|
||||
{
|
||||
mbedtls_ssl_context ssl;
|
||||
mbedtls_ssl_config conf;
|
||||
struct buffer_data buffer;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ssl_init(&ssl);
|
||||
mbedtls_ssl_config_init(&conf);
|
||||
memset(buffer.buf, 0, 2000);
|
||||
mbedtls_ssl_init( &ssl );
|
||||
mbedtls_ssl_config_init( &conf );
|
||||
memset( buffer.buf, 0, 2000 );
|
||||
buffer.ptr = buffer.buf;
|
||||
|
||||
mbedtls_ssl_config_defaults(&conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT);
|
||||
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
||||
|
||||
mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
|
||||
mbedtls_debug_set_threshold( threshold );
|
||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||
|
||||
TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
|
||||
mbedtls_debug_print_msg( &ssl, level, file, line,
|
||||
"Text message, 2 == %d", 2 );
|
||||
|
||||
mbedtls_debug_set_threshold(threshold);
|
||||
|
||||
mbedtls_debug_print_msg(&ssl, level, file, line,
|
||||
"Text message, 2 == %d", 2);
|
||||
|
||||
TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ssl_free(&ssl);
|
||||
mbedtls_ssl_config_free(&conf);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ssl_free( &ssl );
|
||||
mbedtls_ssl_config_free( &conf );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_debug_print_ret(char *file, int line, char *text, int value,
|
||||
char *result_str)
|
||||
void mbedtls_debug_print_ret( char * file, int line, char * text, int value,
|
||||
char * result_str )
|
||||
{
|
||||
mbedtls_ssl_context ssl;
|
||||
mbedtls_ssl_config conf;
|
||||
struct buffer_data buffer;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ssl_init(&ssl);
|
||||
mbedtls_ssl_config_init(&conf);
|
||||
memset(buffer.buf, 0, 2000);
|
||||
mbedtls_ssl_init( &ssl );
|
||||
mbedtls_ssl_config_init( &conf );
|
||||
memset( buffer.buf, 0, 2000 );
|
||||
buffer.ptr = buffer.buf;
|
||||
|
||||
mbedtls_ssl_config_defaults(&conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT);
|
||||
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
||||
|
||||
mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
|
||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||
|
||||
TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
|
||||
mbedtls_debug_print_ret( &ssl, 0, file, line, text, value);
|
||||
|
||||
mbedtls_debug_print_ret(&ssl, 0, file, line, text, value);
|
||||
|
||||
TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ssl_free(&ssl);
|
||||
mbedtls_ssl_config_free(&conf);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ssl_free( &ssl );
|
||||
mbedtls_ssl_config_free( &conf );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void mbedtls_debug_print_buf(char *file, int line, char *text,
|
||||
data_t *data, char *result_str)
|
||||
void mbedtls_debug_print_buf( char * file, int line, char * text,
|
||||
data_t * data, char * result_str )
|
||||
{
|
||||
mbedtls_ssl_context ssl;
|
||||
mbedtls_ssl_config conf;
|
||||
struct buffer_data buffer;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ssl_init(&ssl);
|
||||
mbedtls_ssl_config_init(&conf);
|
||||
memset(buffer.buf, 0, 2000);
|
||||
mbedtls_ssl_init( &ssl );
|
||||
mbedtls_ssl_config_init( &conf );
|
||||
memset( buffer.buf, 0, 2000 );
|
||||
buffer.ptr = buffer.buf;
|
||||
|
||||
mbedtls_ssl_config_defaults(&conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT);
|
||||
|
||||
mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
|
||||
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
|
||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||
|
||||
mbedtls_debug_print_buf(&ssl, 0, file, line, text, data->x, data->len);
|
||||
mbedtls_debug_print_buf( &ssl, 0, file, line, text, data->x, data->len );
|
||||
|
||||
TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ssl_free(&ssl);
|
||||
mbedtls_ssl_config_free(&conf);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ssl_free( &ssl );
|
||||
mbedtls_ssl_config_free( &conf );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */
|
||||
void mbedtls_debug_print_crt(char *crt_file, char *file, int line,
|
||||
char *prefix, char *result_str)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */
|
||||
void mbedtls_debug_print_crt( char * crt_file, char * file, int line,
|
||||
char * prefix, char * result_str )
|
||||
{
|
||||
mbedtls_x509_crt crt;
|
||||
mbedtls_ssl_context ssl;
|
||||
mbedtls_ssl_config conf;
|
||||
struct buffer_data buffer;
|
||||
|
||||
mbedtls_ssl_init(&ssl);
|
||||
mbedtls_ssl_config_init(&conf);
|
||||
mbedtls_x509_crt_init(&crt);
|
||||
MD_OR_USE_PSA_INIT();
|
||||
|
||||
memset(buffer.buf, 0, 2000);
|
||||
mbedtls_ssl_init( &ssl );
|
||||
mbedtls_ssl_config_init( &conf );
|
||||
mbedtls_x509_crt_init( &crt );
|
||||
memset( buffer.buf, 0, 2000 );
|
||||
buffer.ptr = buffer.buf;
|
||||
|
||||
mbedtls_ssl_config_defaults(&conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT);
|
||||
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
||||
|
||||
mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
|
||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||
|
||||
TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
|
||||
TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 );
|
||||
mbedtls_debug_print_crt( &ssl, 0, file, line, prefix, &crt);
|
||||
|
||||
TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0);
|
||||
mbedtls_debug_print_crt(&ssl, 0, file, line, prefix, &crt);
|
||||
|
||||
TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_x509_crt_free(&crt);
|
||||
mbedtls_ssl_free(&ssl);
|
||||
mbedtls_ssl_config_free(&conf);
|
||||
MD_OR_USE_PSA_DONE();
|
||||
mbedtls_x509_crt_free( &crt );
|
||||
mbedtls_ssl_free( &ssl );
|
||||
mbedtls_ssl_config_free( &conf );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */
|
||||
void mbedtls_debug_print_mpi(char *value, char *file, int line,
|
||||
char *prefix, char *result_str)
|
||||
void mbedtls_debug_print_mpi( int radix, char * value, char * file, int line,
|
||||
char * prefix, char * result_str )
|
||||
{
|
||||
mbedtls_ssl_context ssl;
|
||||
mbedtls_ssl_config conf;
|
||||
struct buffer_data buffer;
|
||||
mbedtls_mpi val;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ssl_init(&ssl);
|
||||
mbedtls_ssl_config_init(&conf);
|
||||
mbedtls_mpi_init(&val);
|
||||
memset(buffer.buf, 0, 2000);
|
||||
mbedtls_ssl_init( &ssl );
|
||||
mbedtls_ssl_config_init( &conf );
|
||||
mbedtls_mpi_init( &val );
|
||||
memset( buffer.buf, 0, 2000 );
|
||||
buffer.ptr = buffer.buf;
|
||||
|
||||
mbedtls_ssl_config_defaults(&conf,
|
||||
MBEDTLS_SSL_IS_CLIENT,
|
||||
MBEDTLS_SSL_TRANSPORT_STREAM,
|
||||
MBEDTLS_SSL_PRESET_DEFAULT);
|
||||
TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 );
|
||||
|
||||
mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer);
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &val, radix, value ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0);
|
||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&val, value) == 0);
|
||||
mbedtls_debug_print_mpi( &ssl, 0, file, line, prefix, &val);
|
||||
|
||||
mbedtls_debug_print_mpi(&ssl, 0, file, line, prefix, &val);
|
||||
|
||||
TEST_ASSERT(strcmp(buffer.buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&val);
|
||||
mbedtls_ssl_free(&ssl);
|
||||
mbedtls_ssl_config_free(&conf);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_mpi_free( &val );
|
||||
mbedtls_ssl_free( &ssl );
|
||||
mbedtls_ssl_config_free( &conf );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -8,273 +8,269 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des_check_weak(data_t *key, int ret)
|
||||
void des_check_weak( data_t * key, int ret )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_des_key_check_weak(key->x) == ret);
|
||||
TEST_ASSERT( mbedtls_des_key_check_weak( key->x ) == ret );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des_encrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst)
|
||||
void des_encrypt_ecb( data_t * key_str, data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des_init(&ctx);
|
||||
mbedtls_des_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_des_setkey_enc(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT(mbedtls_des_crypt_ecb(&ctx, src_str->x, output) == 0);
|
||||
mbedtls_des_setkey_enc( &ctx, key_str->x );
|
||||
TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_des_free(&ctx);
|
||||
mbedtls_des_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des_decrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst)
|
||||
void des_decrypt_ecb( data_t * key_str, data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des_init(&ctx);
|
||||
mbedtls_des_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_des_setkey_dec(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT(mbedtls_des_crypt_ecb(&ctx, src_str->x, output) == 0);
|
||||
mbedtls_des_setkey_dec( &ctx, key_str->x );
|
||||
TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_des_free(&ctx);
|
||||
mbedtls_des_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void des_encrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *dst, int cbc_result)
|
||||
void des_encrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst, int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des_init(&ctx);
|
||||
mbedtls_des_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_des_setkey_enc(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT(mbedtls_des_crypt_cbc(&ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
if (cbc_result == 0) {
|
||||
mbedtls_des_setkey_enc( &ctx, key_str->x );
|
||||
TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len,
|
||||
dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_des_free(&ctx);
|
||||
mbedtls_des_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void des_decrypt_cbc(data_t *key_str, data_t *iv_str,
|
||||
data_t *src_str, data_t *dst,
|
||||
int cbc_result)
|
||||
void des_decrypt_cbc( data_t * key_str, data_t * iv_str,
|
||||
data_t * src_str, data_t * dst,
|
||||
int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des_init(&ctx);
|
||||
mbedtls_des_init( &ctx );
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_des_setkey_dec(&ctx, key_str->x) == 0);
|
||||
TEST_ASSERT(mbedtls_des_crypt_cbc(&ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
if (cbc_result == 0) {
|
||||
mbedtls_des_setkey_dec( &ctx, key_str->x );
|
||||
TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len,
|
||||
dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_des_free(&ctx);
|
||||
mbedtls_des_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des3_encrypt_ecb(int key_count, data_t *key_str,
|
||||
data_t *src_str, data_t *dst)
|
||||
void des3_encrypt_ecb( int key_count, data_t * key_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des3_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des3_init(&ctx);
|
||||
mbedtls_des3_init( &ctx );
|
||||
|
||||
|
||||
if (key_count == 2) {
|
||||
TEST_ASSERT(mbedtls_des3_set2key_enc(&ctx, key_str->x) == 0);
|
||||
} else if (key_count == 3) {
|
||||
TEST_ASSERT(mbedtls_des3_set3key_enc(&ctx, key_str->x) == 0);
|
||||
} else {
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
if( key_count == 2 )
|
||||
mbedtls_des3_set2key_enc( &ctx, key_str->x );
|
||||
else if( key_count == 3 )
|
||||
mbedtls_des3_set3key_enc( &ctx, key_str->x );
|
||||
else
|
||||
TEST_ASSERT( 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_des3_crypt_ecb(&ctx, src_str->x, output) == 0);
|
||||
TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_des3_free(&ctx);
|
||||
mbedtls_des3_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des3_decrypt_ecb(int key_count, data_t *key_str,
|
||||
data_t *src_str, data_t *dst)
|
||||
void des3_decrypt_ecb( int key_count, data_t * key_str,
|
||||
data_t * src_str, data_t * dst )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des3_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des3_init(&ctx);
|
||||
mbedtls_des3_init( &ctx );
|
||||
|
||||
|
||||
if (key_count == 2) {
|
||||
TEST_ASSERT(mbedtls_des3_set2key_dec(&ctx, key_str->x) == 0);
|
||||
} else if (key_count == 3) {
|
||||
TEST_ASSERT(mbedtls_des3_set3key_dec(&ctx, key_str->x) == 0);
|
||||
} else {
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
if( key_count == 2 )
|
||||
mbedtls_des3_set2key_dec( &ctx, key_str->x );
|
||||
else if( key_count == 3 )
|
||||
mbedtls_des3_set3key_dec( &ctx, key_str->x );
|
||||
else
|
||||
TEST_ASSERT( 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_des3_crypt_ecb(&ctx, src_str->x, output) == 0);
|
||||
TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_des3_free(&ctx);
|
||||
mbedtls_des3_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void des3_encrypt_cbc(int key_count, data_t *key_str,
|
||||
data_t *iv_str, data_t *src_str,
|
||||
data_t *dst, int cbc_result)
|
||||
void des3_encrypt_cbc( int key_count, data_t * key_str,
|
||||
data_t * iv_str, data_t * src_str,
|
||||
data_t * dst, int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des3_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des3_init(&ctx);
|
||||
mbedtls_des3_init( &ctx );
|
||||
|
||||
|
||||
if (key_count == 2) {
|
||||
TEST_ASSERT(mbedtls_des3_set2key_enc(&ctx, key_str->x) == 0);
|
||||
} else if (key_count == 3) {
|
||||
TEST_ASSERT(mbedtls_des3_set3key_enc(&ctx, key_str->x) == 0);
|
||||
} else {
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
if( key_count == 2 )
|
||||
mbedtls_des3_set2key_enc( &ctx, key_str->x );
|
||||
else if( key_count == 3 )
|
||||
mbedtls_des3_set3key_enc( &ctx, key_str->x );
|
||||
else
|
||||
TEST_ASSERT( 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_des3_crypt_cbc(&ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
|
||||
|
||||
if (cbc_result == 0) {
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x,
|
||||
src_str->len, dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x,
|
||||
src_str->len, dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_des3_free(&ctx);
|
||||
mbedtls_des3_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
|
||||
void des3_decrypt_cbc(int key_count, data_t *key_str,
|
||||
data_t *iv_str, data_t *src_str,
|
||||
data_t *dst, int cbc_result)
|
||||
void des3_decrypt_cbc( int key_count, data_t * key_str,
|
||||
data_t * iv_str, data_t * src_str,
|
||||
data_t * dst, int cbc_result )
|
||||
{
|
||||
unsigned char output[100];
|
||||
mbedtls_des3_context ctx;
|
||||
|
||||
memset(output, 0x00, 100);
|
||||
mbedtls_des3_init(&ctx);
|
||||
mbedtls_des3_init( &ctx );
|
||||
|
||||
|
||||
if (key_count == 2) {
|
||||
TEST_ASSERT(mbedtls_des3_set2key_dec(&ctx, key_str->x) == 0);
|
||||
} else if (key_count == 3) {
|
||||
TEST_ASSERT(mbedtls_des3_set3key_dec(&ctx, key_str->x) == 0);
|
||||
} else {
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
if( key_count == 2 )
|
||||
mbedtls_des3_set2key_dec( &ctx, key_str->x );
|
||||
else if( key_count == 3 )
|
||||
mbedtls_des3_set3key_dec( &ctx, key_str->x );
|
||||
else
|
||||
TEST_ASSERT( 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_des3_crypt_cbc(&ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x,
|
||||
src_str->x, output) == cbc_result);
|
||||
TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
|
||||
|
||||
if (cbc_result == 0) {
|
||||
if( cbc_result == 0 )
|
||||
{
|
||||
|
||||
TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len,
|
||||
dst->len) == 0);
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len,
|
||||
dst->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_des3_free(&ctx);
|
||||
mbedtls_des3_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void des_key_parity_run()
|
||||
void des_key_parity_run( )
|
||||
{
|
||||
int i, j, cnt;
|
||||
unsigned char key[MBEDTLS_DES_KEY_SIZE];
|
||||
unsigned int parity;
|
||||
|
||||
memset(key, 0, MBEDTLS_DES_KEY_SIZE);
|
||||
memset( key, 0, MBEDTLS_DES_KEY_SIZE );
|
||||
cnt = 0;
|
||||
|
||||
// Iterate through all possible byte values
|
||||
//
|
||||
for (i = 0; i < 32; i++) {
|
||||
for (j = 0; j < 8; j++) {
|
||||
for( i = 0; i < 32; i++ )
|
||||
{
|
||||
for( j = 0; j < 8; j++ )
|
||||
key[j] = cnt++;
|
||||
}
|
||||
|
||||
// Set the key parity according to the table
|
||||
//
|
||||
mbedtls_des_key_set_parity(key);
|
||||
mbedtls_des_key_set_parity( key );
|
||||
|
||||
// Check the parity with a function
|
||||
//
|
||||
for (j = 0; j < 8; j++) {
|
||||
parity = key[j] ^ (key[j] >> 4);
|
||||
for( j = 0; j < 8; j++ )
|
||||
{
|
||||
parity = key[j] ^ ( key[j] >> 4 );
|
||||
parity = parity ^
|
||||
(parity >> 1) ^
|
||||
(parity >> 2) ^
|
||||
(parity >> 3);
|
||||
( parity >> 1 ) ^
|
||||
( parity >> 2 ) ^
|
||||
( parity >> 3 );
|
||||
parity &= 1;
|
||||
|
||||
if (parity != 1) {
|
||||
TEST_ASSERT(0);
|
||||
}
|
||||
if( parity != 1 )
|
||||
TEST_ASSERT( 0 );
|
||||
}
|
||||
|
||||
// Check the parity with the table
|
||||
//
|
||||
TEST_ASSERT(mbedtls_des_key_check_key_parity(key) == 0);
|
||||
TEST_ASSERT( mbedtls_des_key_check_key_parity( key ) == 0 );
|
||||
}
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void des_selftest()
|
||||
void des_selftest( )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_des_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_des_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
122
externals/mbedtls/tests/suites/test_suite_dhm.data
vendored
122
externals/mbedtls/tests/suites/test_suite_dhm.data
vendored
@@ -1,124 +1,38 @@
|
||||
Diffie-Hellman full exchange: tiny x_size
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
Diffie-Hellman parameter validation
|
||||
dhm_invalid_params:
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit, x_size=3
|
||||
dhm_do_dhm:"17":3:"5":0
|
||||
Diffie-Hellman full exchange #1
|
||||
dhm_do_dhm:10:"23":10:"5":0
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit, x_size=2
|
||||
dhm_do_dhm:"17":2:"5":0
|
||||
Diffie-Hellman full exchange #2
|
||||
dhm_do_dhm:10:"93450983094850938450983409623":10:"9345098304850938450983409622":0
|
||||
|
||||
## Repeat this test case and a few similar ones several times. The RNG state
|
||||
## changes, so we get to exercise the code with a few different values.
|
||||
Diffie-Hellman full exchange: 5-bit #1
|
||||
dhm_do_dhm:"17":1:"5":0
|
||||
Diffie-Hellman full exchange #3
|
||||
dhm_do_dhm:10:"93450983094850938450983409623982317398171298719873918739182739712938719287391879381271":10:"9345098309485093845098340962223981329819812792137312973297123912791271":0
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit #2
|
||||
dhm_do_dhm:"17":1:"5":0
|
||||
Diffie-Hellman trivial subgroup #1
|
||||
dhm_do_dhm:10:"23":10:"1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit #3
|
||||
dhm_do_dhm:"17":1:"5":0
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit #4
|
||||
dhm_do_dhm:"17":1:"5":0
|
||||
|
||||
Diffie-Hellman full exchange: 5-bit #5
|
||||
dhm_do_dhm:"17":1:"5":0
|
||||
|
||||
## This is x_size = P_size + 1. Arguably x_size > P_size makes no sense,
|
||||
## but it's the current undocumented behavior to treat it the same as when
|
||||
## x_size = P_size. If this behavior changes in the future, change the expected
|
||||
## return status from 0 to MBEDTLS_ERR_DHM_BAD_INPUT_DATA.
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=14
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":14:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit #1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit #2
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit #3
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit #4
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit #5
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=12
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":12:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=11
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":11:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=1 #1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=1 #2
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=1 #3
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=1 #4
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 97-bit, x_size=1 #5
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":1:"1e32158a35e34d7b619657d6":0
|
||||
|
||||
Diffie-Hellman full exchange: 286-bit
|
||||
dhm_do_dhm:"301abc09a57b66a953bfcc206a32e9ab56724084e4b47635779ca35fee79ce1060cb4117":36:"15aa1039b4dd361ed1b5b88e52f2919d0cbcb15adbe5fc290dab13b34e7":0
|
||||
Diffie-Hellman trivial subgroup #2
|
||||
dhm_do_dhm:10:"23":10:"-1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman small modulus
|
||||
dhm_do_dhm:"3":1:"5":MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
dhm_do_dhm:10:"3":10:"5":MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED
|
||||
|
||||
Diffie-Hellman zero modulus
|
||||
dhm_do_dhm:"0":1:"5":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=0
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"0":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=-1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"-1":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=P-1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d6":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=P-2
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d5":0
|
||||
|
||||
Diffie-Hellman with G=P
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d7":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=P+1
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d8":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman with G=P+2
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":13:"12df4d7689dff4c99d9ae57d9":0
|
||||
|
||||
Diffie-Hellman: x_size < 0
|
||||
dhm_do_dhm:"12df4d7689dff4c99d9ae57d7":-1:"1e32158a35e34d7b619657d6":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
dhm_do_dhm:10:"0":10:"5":MBEDTLS_ERR_DHM_BAD_INPUT_DATA
|
||||
|
||||
Diffie-Hellman MPI_MAX_SIZE modulus
|
||||
dhm_make_public:MBEDTLS_MPI_MAX_SIZE:"5":0
|
||||
dhm_make_public:MBEDTLS_MPI_MAX_SIZE:10:"5":0
|
||||
|
||||
Diffie-Hellman MPI_MAX_SIZE + 1 modulus
|
||||
dhm_make_public:MBEDTLS_MPI_MAX_SIZE + 1:"5":MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
dhm_make_public:MBEDTLS_MPI_MAX_SIZE + 1:10:"5":MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||
|
||||
DH load parameters from PEM file (1024-bit, g=2)
|
||||
depends_on:MBEDTLS_PEM_PARSE_C
|
||||
Diffie-Hellman load parameters from file [#1]
|
||||
dhm_file:"data_files/dhparams.pem":"9e35f430443a09904f3a39a979797d070df53378e79c2438bef4e761f3c714553328589b041c809be1d6c6b5f1fc9f47d3a25443188253a992a56818b37ba9de5a40d362e56eff0be5417474c125c199272c8fe41dea733df6f662c92ae76556e755d10c64e6a50968f67fc6ea73d0dca8569be2ba204e23580d8bca2f4975b3":"02":128
|
||||
|
||||
DH load parameters from PEM file (2048-bit, large g, privateValueLength)
|
||||
depends_on:MBEDTLS_PEM_PARSE_C
|
||||
Diffie-Hellman load parameters from file [#2]
|
||||
dhm_file:"data_files/dh.optlen.pem":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256
|
||||
|
||||
DH load parameters from DER file (2048-bit, large g, privateValueLength)
|
||||
dhm_file:"data_files/dh.optlen.der":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256
|
||||
|
||||
Diffie-Hellman selftest
|
||||
dhm_selftest:
|
||||
|
||||
@@ -1,88 +1,5 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/dhm.h"
|
||||
|
||||
int check_get_value(const mbedtls_dhm_context *ctx,
|
||||
mbedtls_dhm_parameter param,
|
||||
const mbedtls_mpi *expected)
|
||||
{
|
||||
mbedtls_mpi actual;
|
||||
int ok = 0;
|
||||
mbedtls_mpi_init(&actual);
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_get_value(ctx, param, &actual) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&actual, expected) == 0);
|
||||
ok = 1;
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&actual);
|
||||
return ok;
|
||||
}
|
||||
|
||||
/* Sanity checks on a Diffie-Hellman parameter: check the length-value
|
||||
* syntax and check that the value is the expected one (taken from the
|
||||
* DHM context by the caller). */
|
||||
static int check_dhm_param_output(const mbedtls_mpi *expected,
|
||||
const unsigned char *buffer,
|
||||
size_t size,
|
||||
size_t *offset)
|
||||
{
|
||||
size_t n;
|
||||
mbedtls_mpi actual;
|
||||
int ok = 0;
|
||||
mbedtls_mpi_init(&actual);
|
||||
|
||||
mbedtls_test_increment_step();
|
||||
|
||||
TEST_ASSERT(size >= *offset + 2);
|
||||
n = (buffer[*offset] << 8) | buffer[*offset + 1];
|
||||
*offset += 2;
|
||||
/* The DHM param output from Mbed TLS has leading zeros stripped, as
|
||||
* permitted but not required by RFC 5246 \S4.4. */
|
||||
TEST_EQUAL(n, mbedtls_mpi_size(expected));
|
||||
TEST_ASSERT(size >= *offset + n);
|
||||
TEST_EQUAL(0, mbedtls_mpi_read_binary(&actual, buffer + *offset, n));
|
||||
TEST_EQUAL(0, mbedtls_mpi_cmp_mpi(expected, &actual));
|
||||
*offset += n;
|
||||
|
||||
ok = 1;
|
||||
exit:
|
||||
mbedtls_mpi_free(&actual);
|
||||
return ok;
|
||||
}
|
||||
|
||||
/* Sanity checks on Diffie-Hellman parameters: syntax, range, and comparison
|
||||
* against the context. */
|
||||
static int check_dhm_params(const mbedtls_dhm_context *ctx,
|
||||
size_t x_size,
|
||||
const unsigned char *ske, size_t ske_len)
|
||||
{
|
||||
size_t offset = 0;
|
||||
|
||||
/* Check that ctx->X and ctx->GX are within range. */
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_int(&ctx->X, 1) > 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&ctx->X, &ctx->P) < 0);
|
||||
TEST_ASSERT(mbedtls_mpi_size(&ctx->X) <= x_size);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_int(&ctx->GX, 1) > 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&ctx->GX, &ctx->P) < 0);
|
||||
|
||||
/* Check ske: it must contain P, G and G^X, each prefixed with a
|
||||
* 2-byte size. */
|
||||
if (!check_dhm_param_output(&ctx->P, ske, ske_len, &offset)) {
|
||||
goto exit;
|
||||
}
|
||||
if (!check_dhm_param_output(&ctx->G, ske, ske_len, &offset)) {
|
||||
goto exit;
|
||||
}
|
||||
if (!check_dhm_param_output(&ctx->GX, ske, ske_len, &offset)) {
|
||||
goto exit;
|
||||
}
|
||||
TEST_EQUAL(offset, ske_len);
|
||||
|
||||
return 1;
|
||||
exit:
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -90,9 +7,116 @@ exit:
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void dhm_invalid_params( )
|
||||
{
|
||||
mbedtls_dhm_context ctx;
|
||||
unsigned char buf[42] = { 0 };
|
||||
unsigned char *buf_null = NULL;
|
||||
mbedtls_mpi X;
|
||||
size_t const buflen = sizeof( buf );
|
||||
size_t len;
|
||||
|
||||
TEST_INVALID_PARAM( mbedtls_dhm_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_dhm_free( NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_params( NULL,
|
||||
(unsigned char**) &buf,
|
||||
buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_params( &ctx, &buf_null, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_params( &ctx, NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_params( &ctx,
|
||||
(unsigned char**) &buf,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_params( NULL, buflen,
|
||||
buf, &len,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_params( &ctx, buflen,
|
||||
NULL, &len,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_params( &ctx, buflen,
|
||||
buf, NULL,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_params( &ctx, buflen,
|
||||
buf, &len,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_set_group( NULL, &X, &X ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_set_group( &ctx, NULL, &X ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_set_group( &ctx, &X, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_public( NULL, buf, buflen ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_read_public( &ctx, NULL, buflen ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_public( NULL, buflen,
|
||||
buf, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_public( &ctx, buflen,
|
||||
NULL, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_make_public( &ctx, buflen,
|
||||
buf, buflen,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_calc_secret( NULL, buf, buflen,
|
||||
&len, rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_calc_secret( &ctx, NULL, buflen,
|
||||
&len, rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_calc_secret( &ctx, buf, buflen,
|
||||
NULL, rnd_std_rand,
|
||||
NULL ) );
|
||||
|
||||
#if defined(MBEDTLS_ASN1_PARSE_C)
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_parse_dhm( NULL, buf, buflen ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_parse_dhm( &ctx, NULL, buflen ) );
|
||||
|
||||
#if defined(MBEDTLS_FS_IO)
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_parse_dhmfile( NULL, "" ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_DHM_BAD_INPUT_DATA,
|
||||
mbedtls_dhm_parse_dhmfile( &ctx, NULL ) );
|
||||
#endif /* MBEDTLS_FS_IO */
|
||||
#endif /* MBEDTLS_ASN1_PARSE_C */
|
||||
|
||||
exit:
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void dhm_do_dhm(char *input_P, int x_size,
|
||||
char *input_G, int result)
|
||||
void dhm_do_dhm( int radix_P, char *input_P,
|
||||
int radix_G, char *input_G, int result )
|
||||
{
|
||||
mbedtls_dhm_context ctx_srv;
|
||||
mbedtls_dhm_context ctx_cli;
|
||||
@@ -105,88 +129,55 @@ void dhm_do_dhm(char *input_P, int x_size,
|
||||
size_t pub_cli_len = 0;
|
||||
size_t sec_srv_len;
|
||||
size_t sec_cli_len;
|
||||
int i;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
int x_size, i;
|
||||
rnd_pseudo_info rnd_info;
|
||||
|
||||
mbedtls_dhm_init(&ctx_srv);
|
||||
mbedtls_dhm_init(&ctx_cli);
|
||||
memset(ske, 0x00, 1000);
|
||||
memset(pub_cli, 0x00, 1000);
|
||||
memset(sec_srv, 0x00, 1000);
|
||||
memset(sec_cli, 0x00, 1000);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_dhm_init( &ctx_srv );
|
||||
mbedtls_dhm_init( &ctx_cli );
|
||||
memset( ske, 0x00, 1000 );
|
||||
memset( pub_cli, 0x00, 1000 );
|
||||
memset( sec_srv, 0x00, 1000 );
|
||||
memset( sec_cli, 0x00, 1000 );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
|
||||
/*
|
||||
* Set params
|
||||
*/
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&ctx_srv.P, input_P) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&ctx_srv.G, input_G) == 0);
|
||||
pub_cli_len = mbedtls_mpi_size(&ctx_srv.P);
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_P, &ctx_srv.P));
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_G, &ctx_srv.G));
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &ctx_srv.P, radix_P, input_P ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &ctx_srv.G, radix_G, input_G ) == 0 );
|
||||
x_size = mbedtls_mpi_size( &ctx_srv.P );
|
||||
pub_cli_len = x_size;
|
||||
|
||||
/*
|
||||
* First key exchange
|
||||
*/
|
||||
mbedtls_test_set_step(10);
|
||||
TEST_ASSERT(mbedtls_dhm_make_params(&ctx_srv, x_size, ske, &ske_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == result);
|
||||
if (result != 0) {
|
||||
TEST_ASSERT( mbedtls_dhm_make_params( &ctx_srv, x_size, ske, &ske_len, &rnd_pseudo_rand, &rnd_info ) == result );
|
||||
if ( result != 0 )
|
||||
goto exit;
|
||||
}
|
||||
if (!check_dhm_params(&ctx_srv, x_size, ske, ske_len)) {
|
||||
goto exit;
|
||||
}
|
||||
|
||||
ske[ske_len++] = 0;
|
||||
ske[ske_len++] = 0;
|
||||
TEST_ASSERT(mbedtls_dhm_read_params(&ctx_cli, &p, ske + ske_len) == 0);
|
||||
/* The domain parameters must be the same on both side. */
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_P, &ctx_srv.P));
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_G, &ctx_srv.G));
|
||||
TEST_ASSERT( mbedtls_dhm_read_params( &ctx_cli, &p, ske + ske_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_make_public(&ctx_cli, x_size, pub_cli, pub_cli_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_dhm_read_public(&ctx_srv, pub_cli, pub_cli_len) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_make_public( &ctx_cli, x_size, pub_cli, pub_cli_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_dhm_read_public( &ctx_srv, pub_cli, pub_cli_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv, sizeof(sec_srv),
|
||||
&sec_srv_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_cli, sec_cli, sizeof(sec_cli),
|
||||
&sec_cli_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, sizeof( sec_srv ), &sec_srv_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_cli, sec_cli, sizeof( sec_cli ), &sec_cli_len, NULL, NULL ) == 0 );
|
||||
|
||||
TEST_ASSERT(sec_srv_len == sec_cli_len);
|
||||
TEST_ASSERT(sec_srv_len != 0);
|
||||
TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0);
|
||||
|
||||
/* Internal value checks */
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_X, &ctx_cli.X));
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_X, &ctx_srv.X));
|
||||
/* Cross-checks */
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_GX, &ctx_srv.GY));
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_GY, &ctx_srv.GX));
|
||||
TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_K, &ctx_srv.K));
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_GX, &ctx_cli.GY));
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_GY, &ctx_cli.GX));
|
||||
TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_K, &ctx_cli.K));
|
||||
TEST_ASSERT( sec_srv_len == sec_cli_len );
|
||||
TEST_ASSERT( sec_srv_len != 0 );
|
||||
TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 );
|
||||
|
||||
/* Re-do calc_secret on server a few times to test update of blinding values */
|
||||
for (i = 0; i < 3; i++) {
|
||||
mbedtls_test_set_step(20 + i);
|
||||
for( i = 0; i < 3; i++ )
|
||||
{
|
||||
sec_srv_len = 1000;
|
||||
TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv,
|
||||
sizeof(sec_srv), &sec_srv_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, sizeof( sec_srv ), &sec_srv_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
|
||||
TEST_ASSERT(sec_srv_len == sec_cli_len);
|
||||
TEST_ASSERT(sec_srv_len != 0);
|
||||
TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0);
|
||||
TEST_ASSERT( sec_srv_len == sec_cli_len );
|
||||
TEST_ASSERT( sec_srv_len != 0 );
|
||||
TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 );
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -194,99 +185,84 @@ void dhm_do_dhm(char *input_P, int x_size,
|
||||
*/
|
||||
p = ske;
|
||||
|
||||
mbedtls_test_set_step(30);
|
||||
TEST_ASSERT(mbedtls_dhm_make_params(&ctx_srv, x_size, ske, &ske_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
if (!check_dhm_params(&ctx_srv, x_size, ske, ske_len)) {
|
||||
goto exit;
|
||||
}
|
||||
TEST_ASSERT( mbedtls_dhm_make_params( &ctx_srv, x_size, ske, &ske_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
ske[ske_len++] = 0;
|
||||
ske[ske_len++] = 0;
|
||||
TEST_ASSERT(mbedtls_dhm_read_params(&ctx_cli, &p, ske + ske_len) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_read_params( &ctx_cli, &p, ske + ske_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_make_public(&ctx_cli, x_size, pub_cli, pub_cli_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_dhm_read_public(&ctx_srv, pub_cli, pub_cli_len) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_make_public( &ctx_cli, x_size, pub_cli, pub_cli_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_dhm_read_public( &ctx_srv, pub_cli, pub_cli_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv, sizeof(sec_srv),
|
||||
&sec_srv_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_cli, sec_cli, sizeof(sec_cli),
|
||||
&sec_cli_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, sizeof( sec_srv ), &sec_srv_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_cli, sec_cli, sizeof( sec_cli ), &sec_cli_len, NULL, NULL ) == 0 );
|
||||
|
||||
TEST_ASSERT(sec_srv_len == sec_cli_len);
|
||||
TEST_ASSERT(sec_srv_len != 0);
|
||||
TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0);
|
||||
TEST_ASSERT( sec_srv_len == sec_cli_len );
|
||||
TEST_ASSERT( sec_srv_len != 0 );
|
||||
TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_dhm_free(&ctx_srv);
|
||||
mbedtls_dhm_free(&ctx_cli);
|
||||
mbedtls_dhm_free( &ctx_srv );
|
||||
mbedtls_dhm_free( &ctx_cli );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void dhm_make_public(int P_bytes, char *input_G, int result)
|
||||
void dhm_make_public( int P_bytes, int radix_G, char *input_G, int result )
|
||||
{
|
||||
mbedtls_mpi P, G;
|
||||
mbedtls_dhm_context ctx;
|
||||
unsigned char output[MBEDTLS_MPI_MAX_SIZE];
|
||||
|
||||
mbedtls_mpi_init(&P);
|
||||
mbedtls_mpi_init(&G);
|
||||
mbedtls_dhm_init(&ctx);
|
||||
mbedtls_mpi_init( &P );
|
||||
mbedtls_mpi_init( &G );
|
||||
mbedtls_dhm_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_mpi_lset(&P, 1) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_shift_l(&P, (P_bytes * 8) - 1) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_set_bit(&P, 0, 1) == 0);
|
||||
TEST_ASSERT( mbedtls_mpi_lset( &P, 1 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_shift_l( &P, ( P_bytes * 8 ) - 1 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_set_bit( &P, 0, 1 ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&G, input_G) == 0);
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &G, radix_G, input_G ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_set_group(&ctx, &P, &G) == 0);
|
||||
TEST_ASSERT(mbedtls_dhm_make_public(&ctx, (int) mbedtls_mpi_size(&P),
|
||||
output, sizeof(output),
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
NULL) == result);
|
||||
TEST_ASSERT( mbedtls_dhm_set_group( &ctx, &P, &G ) == 0 );
|
||||
TEST_ASSERT( mbedtls_dhm_make_public( &ctx, (int) mbedtls_mpi_size( &P ),
|
||||
output, sizeof(output),
|
||||
&rnd_pseudo_rand,
|
||||
NULL ) == result );
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&P);
|
||||
mbedtls_mpi_free(&G);
|
||||
mbedtls_dhm_free(&ctx);
|
||||
mbedtls_mpi_free( &P );
|
||||
mbedtls_mpi_free( &G );
|
||||
mbedtls_dhm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */
|
||||
void dhm_file(char *filename, char *p, char *g, int len)
|
||||
void dhm_file( char * filename, char * p, char * g, int len )
|
||||
{
|
||||
mbedtls_dhm_context ctx;
|
||||
mbedtls_mpi P, G;
|
||||
|
||||
mbedtls_dhm_init(&ctx);
|
||||
mbedtls_mpi_init(&P); mbedtls_mpi_init(&G);
|
||||
mbedtls_dhm_init( &ctx );
|
||||
mbedtls_mpi_init( &P ); mbedtls_mpi_init( &G );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&P, p) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&G, g) == 0);
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &P, 16, p ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &G, 16, g ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_dhm_parse_dhmfile(&ctx, filename) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_parse_dhmfile( &ctx, filename ) == 0 );
|
||||
|
||||
TEST_EQUAL(mbedtls_dhm_get_len(&ctx), (size_t) len);
|
||||
TEST_EQUAL(mbedtls_dhm_get_bitlen(&ctx), mbedtls_mpi_bitlen(&P));
|
||||
TEST_ASSERT(check_get_value(&ctx, MBEDTLS_DHM_PARAM_P, &P));
|
||||
TEST_ASSERT(check_get_value(&ctx, MBEDTLS_DHM_PARAM_G, &G));
|
||||
TEST_ASSERT( ctx.len == (size_t) len );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &ctx.P, &P ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &ctx.G, &G ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
|
||||
mbedtls_dhm_free(&ctx);
|
||||
mbedtls_mpi_free( &P ); mbedtls_mpi_free( &G );
|
||||
mbedtls_dhm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void dhm_selftest()
|
||||
void dhm_selftest( )
|
||||
{
|
||||
TEST_ASSERT(mbedtls_dhm_self_test(1) == 0);
|
||||
TEST_ASSERT( mbedtls_dhm_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
ECDH - Valid parameters
|
||||
ecdh_valid_param:
|
||||
|
||||
ECDH - Invalid parameters
|
||||
ecdh_invalid_param:
|
||||
|
||||
@@ -73,6 +76,10 @@ ECDH restartable rfc 5903 p256 restart disabled max_ops=250
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdh_restart:MBEDTLS_ECP_DP_SECP256R1:"C88F01F510D9AC3F70A292DAA2316DE544E9AAB8AFE84049C62A9C57862D1433":"C6EF9C5D78AE012A011164ACB397CE2088685D8F06BF9BE0B283AB46476BEE53":"D6840F6B42F6EDAFD13116E0E12565202FEF8E9ECE7DCE03812464D04B9442DE":0:250:0:0
|
||||
|
||||
ECDH exchange legacy context
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
ecdh_exchange_legacy:MBEDTLS_ECP_DP_SECP192R1
|
||||
|
||||
ECDH calc_secret: ours first, SECP256R1 (RFC 5903)
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdh_exchange_calc_secret:MBEDTLS_ECP_DP_SECP256R1:"c6ef9c5d78ae012a011164acb397ce2088685d8f06bf9be0b283ab46476bee53":"04dad0b65394221cf9b051e1feca5787d098dfe637fc90b9ef945d0c37725811805271a0461cdb8252d61f1c456fa3e59ab1f45b33accf5f58389e0577b8990bb3":0:"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de"
|
||||
@@ -81,18 +88,6 @@ ECDH calc_secret: theirs first, SECP256R1 (RFC 5903)
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdh_exchange_calc_secret:MBEDTLS_ECP_DP_SECP256R1:"c6ef9c5d78ae012a011164acb397ce2088685d8f06bf9be0b283ab46476bee53":"04dad0b65394221cf9b051e1feca5787d098dfe637fc90b9ef945d0c37725811805271a0461cdb8252d61f1c456fa3e59ab1f45b33accf5f58389e0577b8990bb3":1:"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de"
|
||||
|
||||
ecdh calc_secret: ours first (Alice), curve25519 (rfc 7748)
|
||||
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
|
||||
ecdh_exchange_calc_secret:MBEDTLS_ECP_DP_CURVE25519:"77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a":"de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f":0:"4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742"
|
||||
|
||||
ecdh calc_secret: theirs first (Alice), curve25519 (rfc 7748)
|
||||
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
|
||||
ecdh_exchange_calc_secret:MBEDTLS_ECP_DP_CURVE25519:"77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a":"de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f":1:"4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742"
|
||||
|
||||
ecdh calc_secret: ours first (Bob), curve25519 (rfc 7748)
|
||||
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
|
||||
ecdh_exchange_calc_secret:MBEDTLS_ECP_DP_CURVE25519:"5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb":"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":0:"4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742"
|
||||
|
||||
ECDH get_params with mismatched groups: our BP256R1, their SECP256R1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_BP256R1_ENABLED
|
||||
ecdh_exchange_get_params_fail:MBEDTLS_ECP_DP_BP256R1:"1234567812345678123456781234567812345678123456781234567812345678":MBEDTLS_ECP_DP_SECP256R1:"04dad0b65394221cf9b051e1feca5787d098dfe637fc90b9ef945d0c37725811805271a0461cdb8252d61f1c456fa3e59ab1f45b33accf5f58389e0577b8990bb3":0:MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/ecdh.h"
|
||||
|
||||
static int load_public_key(int grp_id, data_t *point,
|
||||
mbedtls_ecp_keypair *ecp)
|
||||
static int load_public_key( int grp_id, data_t *point,
|
||||
mbedtls_ecp_keypair *ecp )
|
||||
{
|
||||
int ok = 0;
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&ecp->grp, grp_id) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_point_read_binary(&ecp->grp,
|
||||
&ecp->Q,
|
||||
point->x,
|
||||
point->len) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_check_pubkey(&ecp->grp,
|
||||
&ecp->Q) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &ecp->grp, grp_id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_point_read_binary( &ecp->grp,
|
||||
&ecp->Q,
|
||||
point->x,
|
||||
point->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_check_pubkey( &ecp->grp,
|
||||
&ecp->Q ) == 0 );
|
||||
ok = 1;
|
||||
exit:
|
||||
return ok;
|
||||
return( ok );
|
||||
}
|
||||
|
||||
static int load_private_key(int grp_id, data_t *private_key,
|
||||
mbedtls_ecp_keypair *ecp,
|
||||
mbedtls_test_rnd_pseudo_info *rnd_info)
|
||||
static int load_private_key( int grp_id, data_t *private_key,
|
||||
mbedtls_ecp_keypair *ecp,
|
||||
rnd_pseudo_info *rnd_info )
|
||||
{
|
||||
int ok = 0;
|
||||
TEST_ASSERT(mbedtls_ecp_read_key(grp_id, ecp,
|
||||
private_key->x,
|
||||
private_key->len) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_check_privkey(&ecp->grp, &ecp->d) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &ecp->grp, grp_id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_binary( &ecp->d,
|
||||
private_key->x,
|
||||
private_key->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_check_privkey( &ecp->grp, &ecp->d ) == 0 );
|
||||
/* Calculate the public key from the private key. */
|
||||
TEST_ASSERT(mbedtls_ecp_mul(&ecp->grp, &ecp->Q, &ecp->d,
|
||||
&ecp->grp.G,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d,
|
||||
&ecp->grp.G,
|
||||
&rnd_pseudo_rand, rnd_info ) == 0 );
|
||||
ok = 1;
|
||||
exit:
|
||||
return ok;
|
||||
return( ok );
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
@@ -44,18 +44,141 @@ exit:
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_invalid_param()
|
||||
void ecdh_valid_param( )
|
||||
{
|
||||
TEST_VALID_PARAM( mbedtls_ecdh_free( NULL ) );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void ecdh_invalid_param( )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecdh_context ctx;
|
||||
mbedtls_mpi m;
|
||||
mbedtls_ecp_point P;
|
||||
mbedtls_ecp_keypair kp;
|
||||
size_t olen;
|
||||
unsigned char buf[42] = { 0 };
|
||||
const unsigned char *buf_null = NULL;
|
||||
size_t const buflen = sizeof( buf );
|
||||
int invalid_side = 42;
|
||||
mbedtls_ecp_group_id valid_grp = MBEDTLS_ECP_DP_SECP192R1;
|
||||
|
||||
mbedtls_ecdh_init(&ctx);
|
||||
mbedtls_ecp_keypair_init(&kp);
|
||||
TEST_INVALID_PARAM( mbedtls_ecdh_init( NULL ) );
|
||||
|
||||
TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_get_params(&ctx, &kp,
|
||||
invalid_side));
|
||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||
TEST_INVALID_PARAM( mbedtls_ecdh_enable_restart( NULL ) );
|
||||
#endif /* MBEDTLS_ECP_RESTARTABLE */
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_gen_public( NULL, &m, &P,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_gen_public( &grp, NULL, &P,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_gen_public( &grp, &m, NULL,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_gen_public( &grp, &m, &P,
|
||||
NULL, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_compute_shared( NULL, &m, &P, &m,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_compute_shared( &grp, NULL, &P, &m,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_compute_shared( &grp, &m, NULL, &m,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_compute_shared( &grp, &m, &P, NULL,
|
||||
rnd_std_rand, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_setup( NULL, valid_grp ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_params( NULL, &olen,
|
||||
buf, buflen,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_params( &ctx, NULL,
|
||||
buf, buflen,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_params( &ctx, &olen,
|
||||
NULL, buflen,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_params( &ctx, &olen,
|
||||
buf, buflen,
|
||||
NULL, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_params( NULL,
|
||||
(const unsigned char**) &buf,
|
||||
buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_params( &ctx, &buf_null,
|
||||
buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_params( &ctx, NULL, buf ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_params( &ctx,
|
||||
(const unsigned char**) &buf,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_get_params( NULL, &kp,
|
||||
MBEDTLS_ECDH_OURS ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_get_params( &ctx, NULL,
|
||||
MBEDTLS_ECDH_OURS ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_get_params( &ctx, &kp,
|
||||
invalid_side ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_public( NULL, &olen,
|
||||
buf, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_public( &ctx, NULL,
|
||||
buf, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_public( &ctx, &olen,
|
||||
NULL, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_make_public( &ctx, &olen,
|
||||
buf, buflen,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_public( NULL, buf, buflen ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_read_public( &ctx, NULL, buflen ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_calc_secret( NULL, &olen, buf, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_calc_secret( &ctx, NULL, buf, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdh_calc_secret( &ctx, &olen, NULL, buflen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
|
||||
exit:
|
||||
return;
|
||||
@@ -63,404 +186,415 @@ exit:
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_primitive_random(int id)
|
||||
void ecdh_primitive_random( int id )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecp_point qA, qB;
|
||||
mbedtls_mpi dA, dB, zA, zB;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecp_point_init(&qA); mbedtls_ecp_point_init(&qB);
|
||||
mbedtls_mpi_init(&dA); mbedtls_mpi_init(&dB);
|
||||
mbedtls_mpi_init(&zA); mbedtls_mpi_init(&zB);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_ecp_point_init( &qA ); mbedtls_ecp_point_init( &qB );
|
||||
mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &dB );
|
||||
mbedtls_mpi_init( &zA ); mbedtls_mpi_init( &zB );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dA, &qA,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dB, &qB,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zA, &qB, &dA,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zB, &qA, &dB,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dA, &qA, &rnd_pseudo_rand, &rnd_info )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dB, &qB, &rnd_pseudo_rand, &rnd_info )
|
||||
== 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zA, &qB, &dA,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zB, &qA, &dB,
|
||||
NULL, NULL ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zA, &zB) == 0);
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zA, &zB ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecp_point_free(&qA); mbedtls_ecp_point_free(&qB);
|
||||
mbedtls_mpi_free(&dA); mbedtls_mpi_free(&dB);
|
||||
mbedtls_mpi_free(&zA); mbedtls_mpi_free(&zB);
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_ecp_point_free( &qA ); mbedtls_ecp_point_free( &qB );
|
||||
mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &dB );
|
||||
mbedtls_mpi_free( &zA ); mbedtls_mpi_free( &zB );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_primitive_testvec(int id, data_t *rnd_buf_A, char *xA_str,
|
||||
char *yA_str, data_t *rnd_buf_B,
|
||||
char *xB_str, char *yB_str, char *z_str)
|
||||
void ecdh_primitive_testvec( int id, data_t * rnd_buf_A, char * xA_str,
|
||||
char * yA_str, data_t * rnd_buf_B,
|
||||
char * xB_str, char * yB_str, char * z_str )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecp_point qA, qB;
|
||||
mbedtls_mpi dA, dB, zA, zB, check;
|
||||
mbedtls_test_rnd_buf_info rnd_info_A, rnd_info_B;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_buf_info rnd_info_A, rnd_info_B;
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecp_point_init(&qA); mbedtls_ecp_point_init(&qB);
|
||||
mbedtls_mpi_init(&dA); mbedtls_mpi_init(&dB);
|
||||
mbedtls_mpi_init(&zA); mbedtls_mpi_init(&zB); mbedtls_mpi_init(&check);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_ecp_point_init( &qA ); mbedtls_ecp_point_init( &qB );
|
||||
mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &dB );
|
||||
mbedtls_mpi_init( &zA ); mbedtls_mpi_init( &zB ); mbedtls_mpi_init( &check );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
|
||||
rnd_info_A.buf = rnd_buf_A->x;
|
||||
rnd_info_A.length = rnd_buf_A->len;
|
||||
rnd_info_A.fallback_f_rng = mbedtls_test_rnd_std_rand;
|
||||
rnd_info_A.fallback_p_rng = NULL;
|
||||
|
||||
/* Fix rnd_buf_A->x by shifting it left if necessary */
|
||||
if (grp.nbits % 8 != 0) {
|
||||
unsigned char shift = 8 - (grp.nbits % 8);
|
||||
if( grp.nbits % 8 != 0 )
|
||||
{
|
||||
unsigned char shift = 8 - ( grp.nbits % 8 );
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < rnd_info_A.length - 1; i++) {
|
||||
for( i = 0; i < rnd_info_A.length - 1; i++ )
|
||||
rnd_buf_A->x[i] = rnd_buf_A->x[i] << shift
|
||||
| rnd_buf_A->x[i+1] >> (8 - shift);
|
||||
}
|
||||
| rnd_buf_A->x[i+1] >> ( 8 - shift );
|
||||
|
||||
rnd_buf_A->x[rnd_info_A.length-1] <<= shift;
|
||||
}
|
||||
|
||||
rnd_info_B.buf = rnd_buf_B->x;
|
||||
rnd_info_B.length = rnd_buf_B->len;
|
||||
rnd_info_B.fallback_f_rng = mbedtls_test_rnd_std_rand;
|
||||
rnd_info_B.fallback_p_rng = NULL;
|
||||
|
||||
/* Fix rnd_buf_B->x by shifting it left if necessary */
|
||||
if (grp.nbits % 8 != 0) {
|
||||
unsigned char shift = 8 - (grp.nbits % 8);
|
||||
if( grp.nbits % 8 != 0 )
|
||||
{
|
||||
unsigned char shift = 8 - ( grp.nbits % 8 );
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < rnd_info_B.length - 1; i++) {
|
||||
for( i = 0; i < rnd_info_B.length - 1; i++ )
|
||||
rnd_buf_B->x[i] = rnd_buf_B->x[i] << shift
|
||||
| rnd_buf_B->x[i+1] >> (8 - shift);
|
||||
}
|
||||
| rnd_buf_B->x[i+1] >> ( 8 - shift );
|
||||
|
||||
rnd_buf_B->x[rnd_info_B.length-1] <<= shift;
|
||||
}
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dA, &qA,
|
||||
mbedtls_test_rnd_buffer_rand,
|
||||
&rnd_info_A) == 0);
|
||||
TEST_ASSERT(!mbedtls_ecp_is_zero(&qA));
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&check, xA_str) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qA.X, &check) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&check, yA_str) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qA.Y, &check) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dA, &qA,
|
||||
rnd_buffer_rand, &rnd_info_A ) == 0 );
|
||||
TEST_ASSERT( ! mbedtls_ecp_is_zero( &qA ) );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &check, 16, xA_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qA.X, &check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &check, 16, yA_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qA.Y, &check ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dB, &qB,
|
||||
mbedtls_test_rnd_buffer_rand,
|
||||
&rnd_info_B) == 0);
|
||||
TEST_ASSERT(!mbedtls_ecp_is_zero(&qB));
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&check, xB_str) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qB.X, &check) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&check, yB_str) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qB.Y, &check) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dB, &qB,
|
||||
rnd_buffer_rand, &rnd_info_B ) == 0 );
|
||||
TEST_ASSERT( ! mbedtls_ecp_is_zero( &qB ) );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &check, 16, xB_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qB.X, &check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &check, 16, yB_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qB.Y, &check ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&check, z_str) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zA, &qB, &dA,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zA, &check) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zB, &qA, &dB,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zB, &check) == 0);
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &check, 16, z_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zA, &qB, &dA, NULL, NULL ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zA, &check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zB, &qA, &dB, NULL, NULL ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zB, &check ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecp_point_free(&qA); mbedtls_ecp_point_free(&qB);
|
||||
mbedtls_mpi_free(&dA); mbedtls_mpi_free(&dB);
|
||||
mbedtls_mpi_free(&zA); mbedtls_mpi_free(&zB); mbedtls_mpi_free(&check);
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_ecp_point_free( &qA ); mbedtls_ecp_point_free( &qB );
|
||||
mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &dB );
|
||||
mbedtls_mpi_free( &zA ); mbedtls_mpi_free( &zB ); mbedtls_mpi_free( &check );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_exchange(int id)
|
||||
void ecdh_exchange( int id )
|
||||
{
|
||||
mbedtls_ecdh_context srv, cli;
|
||||
unsigned char buf[1000];
|
||||
const unsigned char *vbuf;
|
||||
size_t len;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
unsigned char res_buf[1000];
|
||||
size_t res_len;
|
||||
|
||||
mbedtls_ecdh_init(&srv);
|
||||
mbedtls_ecdh_init(&cli);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecdh_init( &srv );
|
||||
mbedtls_ecdh_init( &cli );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_setup(&srv, id) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_setup( &srv, id ) == 0 );
|
||||
|
||||
memset(buf, 0x00, sizeof(buf)); vbuf = buf;
|
||||
TEST_ASSERT(mbedtls_ecdh_make_params(&srv, &len, buf, 1000,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_read_params(&cli, &vbuf, buf + len) == 0);
|
||||
memset( buf, 0x00, sizeof( buf ) ); vbuf = buf;
|
||||
TEST_ASSERT( mbedtls_ecdh_make_params( &srv, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_read_params( &cli, &vbuf, buf + len ) == 0 );
|
||||
|
||||
memset(buf, 0x00, sizeof(buf));
|
||||
TEST_ASSERT(mbedtls_ecdh_make_public(&cli, &len, buf, 1000,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_read_public(&srv, buf, len) == 0);
|
||||
memset( buf, 0x00, sizeof( buf ) );
|
||||
TEST_ASSERT( mbedtls_ecdh_make_public( &cli, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_read_public( &srv, buf, len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_calc_secret(&srv, &len, buf, 1000,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_calc_secret(&cli, &res_len, res_buf, 1000,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(len == res_len);
|
||||
TEST_ASSERT(memcmp(buf, res_buf, len) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_calc_secret( &srv, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_calc_secret( &cli, &res_len, res_buf, 1000,
|
||||
NULL, NULL ) == 0 );
|
||||
TEST_ASSERT( len == res_len );
|
||||
TEST_ASSERT( memcmp( buf, res_buf, len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecdh_free(&srv);
|
||||
mbedtls_ecdh_free(&cli);
|
||||
mbedtls_ecdh_free( &srv );
|
||||
mbedtls_ecdh_free( &cli );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */
|
||||
void ecdh_restart(int id, data_t *dA, data_t *dB, data_t *z,
|
||||
int enable, int max_ops, int min_restart, int max_restart)
|
||||
void ecdh_restart( int id, data_t *dA, data_t *dB, data_t *z,
|
||||
int enable, int max_ops, int min_restart, int max_restart )
|
||||
{
|
||||
int ret;
|
||||
mbedtls_ecdh_context srv, cli;
|
||||
unsigned char buf[1000];
|
||||
const unsigned char *vbuf;
|
||||
size_t len;
|
||||
mbedtls_test_rnd_buf_info rnd_info_A, rnd_info_B;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_buf_info rnd_info_A, rnd_info_B;
|
||||
int cnt_restart;
|
||||
mbedtls_ecp_group grp;
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecdh_init(&srv);
|
||||
mbedtls_ecdh_init(&cli);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_ecdh_init( &srv );
|
||||
mbedtls_ecdh_init( &cli );
|
||||
|
||||
rnd_info_A.fallback_f_rng = mbedtls_test_rnd_std_rand;
|
||||
rnd_info_A.fallback_p_rng = NULL;
|
||||
rnd_info_A.buf = dA->x;
|
||||
rnd_info_A.length = dA->len;
|
||||
|
||||
rnd_info_B.fallback_f_rng = mbedtls_test_rnd_std_rand;
|
||||
rnd_info_B.fallback_p_rng = NULL;
|
||||
rnd_info_B.buf = dB->x;
|
||||
rnd_info_B.length = dB->len;
|
||||
|
||||
/* The ECDH context is not guaranteed to have an mbedtls_ecp_group structure
|
||||
/* The ECDH context is not guaranteed ot have an mbedtls_ecp_group structure
|
||||
* in every configuration, therefore we load it separately. */
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
|
||||
/* Otherwise we would have to fix the random buffer,
|
||||
* as in ecdh_primitive_testvec. */
|
||||
TEST_ASSERT(grp.nbits % 8 == 0);
|
||||
TEST_ASSERT( grp.nbits % 8 == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdh_setup(&srv, id) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_setup( &srv, id ) == 0 );
|
||||
|
||||
/* set up restart parameters */
|
||||
mbedtls_ecp_set_max_ops(max_ops);
|
||||
mbedtls_ecp_set_max_ops( max_ops );
|
||||
|
||||
if (enable) {
|
||||
mbedtls_ecdh_enable_restart(&srv);
|
||||
mbedtls_ecdh_enable_restart(&cli);
|
||||
if( enable )
|
||||
{
|
||||
mbedtls_ecdh_enable_restart( &srv );
|
||||
mbedtls_ecdh_enable_restart( &cli );
|
||||
}
|
||||
|
||||
/* server writes its parameters */
|
||||
memset(buf, 0x00, sizeof(buf));
|
||||
memset( buf, 0x00, sizeof( buf ) );
|
||||
len = 0;
|
||||
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdh_make_params(&srv, &len, buf, sizeof(buf),
|
||||
mbedtls_test_rnd_buffer_rand,
|
||||
&rnd_info_A);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdh_make_params( &srv, &len, buf, sizeof( buf ),
|
||||
rnd_buffer_rand, &rnd_info_A );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
/* client read server params */
|
||||
vbuf = buf;
|
||||
TEST_ASSERT(mbedtls_ecdh_read_params(&cli, &vbuf, buf + len) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_read_params( &cli, &vbuf, buf + len ) == 0 );
|
||||
|
||||
/* client writes its key share */
|
||||
memset(buf, 0x00, sizeof(buf));
|
||||
memset( buf, 0x00, sizeof( buf ) );
|
||||
len = 0;
|
||||
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdh_make_public(&cli, &len, buf, sizeof(buf),
|
||||
mbedtls_test_rnd_buffer_rand,
|
||||
&rnd_info_B);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdh_make_public( &cli, &len, buf, sizeof( buf ),
|
||||
rnd_buffer_rand, &rnd_info_B );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
/* server reads client key share */
|
||||
TEST_ASSERT(mbedtls_ecdh_read_public(&srv, buf, len) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_read_public( &srv, buf, len ) == 0 );
|
||||
|
||||
/* server computes shared secret */
|
||||
memset(buf, 0, sizeof(buf));
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
len = 0;
|
||||
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdh_calc_secret(&srv, &len, buf, sizeof(buf),
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdh_calc_secret( &srv, &len, buf, sizeof( buf ),
|
||||
NULL, NULL );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
TEST_ASSERT(len == z->len);
|
||||
TEST_ASSERT(memcmp(buf, z->x, len) == 0);
|
||||
TEST_ASSERT( len == z->len );
|
||||
TEST_ASSERT( memcmp( buf, z->x, len ) == 0 );
|
||||
|
||||
/* client computes shared secret */
|
||||
memset(buf, 0, sizeof(buf));
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
len = 0;
|
||||
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdh_calc_secret(&cli, &len, buf, sizeof(buf),
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdh_calc_secret( &cli, &len, buf, sizeof( buf ),
|
||||
NULL, NULL );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
TEST_ASSERT(len == z->len);
|
||||
TEST_ASSERT(memcmp(buf, z->x, len) == 0);
|
||||
TEST_ASSERT( len == z->len );
|
||||
TEST_ASSERT( memcmp( buf, z->x, len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecdh_free(&srv);
|
||||
mbedtls_ecdh_free(&cli);
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_ecdh_free( &srv );
|
||||
mbedtls_ecdh_free( &cli );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECDH_LEGACY_CONTEXT */
|
||||
void ecdh_exchange_legacy( int id )
|
||||
{
|
||||
mbedtls_ecdh_context srv, cli;
|
||||
unsigned char buf[1000];
|
||||
const unsigned char *vbuf;
|
||||
size_t len;
|
||||
|
||||
rnd_pseudo_info rnd_info;
|
||||
|
||||
mbedtls_ecdh_init( &srv );
|
||||
mbedtls_ecdh_init( &cli );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &srv.grp, id ) == 0 );
|
||||
|
||||
memset( buf, 0x00, sizeof( buf ) ); vbuf = buf;
|
||||
TEST_ASSERT( mbedtls_ecdh_make_params( &srv, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_read_params( &cli, &vbuf, buf + len ) == 0 );
|
||||
|
||||
memset( buf, 0x00, sizeof( buf ) );
|
||||
TEST_ASSERT( mbedtls_ecdh_make_public( &cli, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_read_public( &srv, buf, len ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_ecdh_calc_secret( &srv, &len, buf, 1000,
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_calc_secret( &cli, &len, buf, 1000, NULL,
|
||||
NULL ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &srv.z, &cli.z ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecdh_free( &srv );
|
||||
mbedtls_ecdh_free( &cli );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_exchange_calc_secret(int grp_id,
|
||||
data_t *our_private_key,
|
||||
data_t *their_point,
|
||||
int ours_first,
|
||||
data_t *expected)
|
||||
void ecdh_exchange_calc_secret( int grp_id,
|
||||
data_t *our_private_key,
|
||||
data_t *their_point,
|
||||
int ours_first,
|
||||
data_t *expected )
|
||||
{
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
mbedtls_ecp_keypair our_key;
|
||||
mbedtls_ecp_keypair their_key;
|
||||
mbedtls_ecdh_context ecdh;
|
||||
unsigned char shared_secret[MBEDTLS_ECP_MAX_BYTES];
|
||||
size_t shared_secret_length = 0;
|
||||
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
mbedtls_ecp_keypair_init(&our_key);
|
||||
mbedtls_ecp_keypair_init(&their_key);
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
mbedtls_ecdh_init( &ecdh );
|
||||
mbedtls_ecp_keypair_init( &our_key );
|
||||
mbedtls_ecp_keypair_init( &their_key );
|
||||
|
||||
if (!load_private_key(grp_id, our_private_key, &our_key, &rnd_info)) {
|
||||
if( ! load_private_key( grp_id, our_private_key, &our_key, &rnd_info ) )
|
||||
goto exit;
|
||||
}
|
||||
if (!load_public_key(grp_id, their_point, &their_key)) {
|
||||
if( ! load_public_key( grp_id, their_point, &their_key ) )
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Import the keys to the ECDH calculation. */
|
||||
if (ours_first) {
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0);
|
||||
} else {
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0);
|
||||
if( ours_first )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 );
|
||||
}
|
||||
|
||||
/* Perform the ECDH calculation. */
|
||||
TEST_ASSERT(mbedtls_ecdh_calc_secret(
|
||||
&ecdh,
|
||||
&shared_secret_length,
|
||||
shared_secret, sizeof(shared_secret),
|
||||
&mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0);
|
||||
TEST_ASSERT(shared_secret_length == expected->len);
|
||||
TEST_ASSERT(memcmp(expected->x, shared_secret,
|
||||
shared_secret_length) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdh_calc_secret(
|
||||
&ecdh,
|
||||
&shared_secret_length,
|
||||
shared_secret, sizeof( shared_secret ),
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( shared_secret_length == expected->len );
|
||||
TEST_ASSERT( memcmp( expected->x, shared_secret,
|
||||
shared_secret_length ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
mbedtls_ecp_keypair_free(&our_key);
|
||||
mbedtls_ecp_keypair_free(&their_key);
|
||||
mbedtls_ecdh_free( &ecdh );
|
||||
mbedtls_ecp_keypair_free( &our_key );
|
||||
mbedtls_ecp_keypair_free( &their_key );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdh_exchange_get_params_fail(int our_grp_id,
|
||||
data_t *our_private_key,
|
||||
int their_grp_id,
|
||||
data_t *their_point,
|
||||
int ours_first,
|
||||
int expected_ret)
|
||||
void ecdh_exchange_get_params_fail( int our_grp_id,
|
||||
data_t *our_private_key,
|
||||
int their_grp_id,
|
||||
data_t *their_point,
|
||||
int ours_first,
|
||||
int expected_ret )
|
||||
{
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
mbedtls_ecp_keypair our_key;
|
||||
mbedtls_ecp_keypair their_key;
|
||||
mbedtls_ecdh_context ecdh;
|
||||
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
mbedtls_ecp_keypair_init(&our_key);
|
||||
mbedtls_ecp_keypair_init(&their_key);
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
mbedtls_ecdh_init( &ecdh );
|
||||
mbedtls_ecp_keypair_init( &our_key );
|
||||
mbedtls_ecp_keypair_init( &their_key );
|
||||
|
||||
if (!load_private_key(our_grp_id, our_private_key, &our_key, &rnd_info)) {
|
||||
if( ! load_private_key( our_grp_id, our_private_key, &our_key, &rnd_info ) )
|
||||
goto exit;
|
||||
}
|
||||
if (!load_public_key(their_grp_id, their_point, &their_key)) {
|
||||
if( ! load_public_key( their_grp_id, their_point, &their_key ) )
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (ours_first) {
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS) ==
|
||||
expected_ret);
|
||||
} else {
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS) ==
|
||||
expected_ret);
|
||||
if( ours_first )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) ==
|
||||
expected_ret );
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdh_get_params(
|
||||
&ecdh, &our_key, MBEDTLS_ECDH_OURS ) ==
|
||||
expected_ret );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
mbedtls_ecp_keypair_free(&our_key);
|
||||
mbedtls_ecp_keypair_free(&their_key);
|
||||
mbedtls_ecdh_free( &ecdh );
|
||||
mbedtls_ecp_keypair_free( &our_key );
|
||||
mbedtls_ecp_keypair_free( &their_key );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
417
externals/mbedtls/tests/suites/test_suite_ecdsa.data
vendored
417
externals/mbedtls/tests/suites/test_suite_ecdsa.data
vendored
@@ -1,22 +1,5 @@
|
||||
ECDSA primitive hash zero #1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
ecdsa_prim_zero:MBEDTLS_ECP_DP_SECP192R1
|
||||
|
||||
ECDSA primitive hash zero #2
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
||||
ecdsa_prim_zero:MBEDTLS_ECP_DP_SECP224R1
|
||||
|
||||
ECDSA primitive hash zero #3
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdsa_prim_zero:MBEDTLS_ECP_DP_SECP256R1
|
||||
|
||||
ECDSA primitive hash zero #4
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED
|
||||
ecdsa_prim_zero:MBEDTLS_ECP_DP_SECP384R1
|
||||
|
||||
ECDSA primitive hash zero #5
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
ecdsa_prim_zero:MBEDTLS_ECP_DP_SECP521R1
|
||||
ECDSA Parameter validation
|
||||
ecdsa_invalid_param:
|
||||
|
||||
ECDSA primitive random #1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
@@ -50,26 +33,6 @@ ECDSA primitive rfc 4754 p521
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA1":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":0
|
||||
|
||||
ECDSA write-read hash zero #1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
ecdsa_write_read_zero:MBEDTLS_ECP_DP_SECP192R1
|
||||
|
||||
ECDSA write-read hash zero #2
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
||||
ecdsa_write_read_zero:MBEDTLS_ECP_DP_SECP224R1
|
||||
|
||||
ECDSA write-read hash zero #3
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdsa_write_read_zero:MBEDTLS_ECP_DP_SECP256R1
|
||||
|
||||
ECDSA write-read hash zero #4
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED
|
||||
ecdsa_write_read_zero:MBEDTLS_ECP_DP_SECP384R1
|
||||
|
||||
ECDSA write-read hash zero #5
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
ecdsa_write_read_zero:MBEDTLS_ECP_DP_SECP521R1
|
||||
|
||||
ECDSA write-read random #1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
ecdsa_write_read_random:MBEDTLS_ECP_DP_SECP192R1
|
||||
@@ -90,205 +53,205 @@ ECDSA write-read random #5
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
ecdsa_write_read_random:MBEDTLS_ECP_DP_SECP521R1
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha1 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA1:"8151325DCDBAE9E0FF95F9F9658432DBEDFDB209":"98C6BD12B23EAF5E2A2045132086BE3EB8EBD62ABF6698FF":"57A22B07DEA9530F8DE9471B1DC6624472E8E2844BC25B64"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA1:"sample":"98C6BD12B23EAF5E2A2045132086BE3EB8EBD62ABF6698FF":"57A22B07DEA9530F8DE9471B1DC6624472E8E2844BC25B64"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha224 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA224:"9003E374BC726550C2C289447FD0533160F875709386DFA377BFD41C":"A1F00DAD97AEEC91C95585F36200C65F3C01812AA60378F5":"E07EC1304C7C6C9DEBBE980B9692668F81D4DE7922A0F97A"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA224:"sample":"A1F00DAD97AEEC91C95585F36200C65F3C01812AA60378F5":"E07EC1304C7C6C9DEBBE980B9692668F81D4DE7922A0F97A"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha256 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA256:"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF":"4B0B8CE98A92866A2820E20AA6B75B56382E0F9BFD5ECB55":"CCDB006926EA9565CBADC840829D8C384E06DE1F1E381B85"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA256:"sample":"4B0B8CE98A92866A2820E20AA6B75B56382E0F9BFD5ECB55":"CCDB006926EA9565CBADC840829D8C384E06DE1F1E381B85"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha384 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA384:"9A9083505BC92276AEC4BE312696EF7BF3BF603F4BBD381196A029F340585312313BCA4A9B5B890EFEE42C77B1EE25FE":"DA63BF0B9ABCF948FBB1E9167F136145F7A20426DCC287D5":"C3AA2C960972BD7A2003A57E1C4C77F0578F8AE95E31EC5E"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA384:"sample":"DA63BF0B9ABCF948FBB1E9167F136145F7A20426DCC287D5":"C3AA2C960972BD7A2003A57E1C4C77F0578F8AE95E31EC5E"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha512 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA512:"39A5E04AAFF7455D9850C605364F514C11324CE64016960D23D5DC57D3FFD8F49A739468AB8049BF18EEF820CDB1AD6C9015F838556BC7FAD4138B23FDF986C7":"4D60C5AB1996BD848343B31C00850205E2EA6922DAC2E4B8":"3F6E837448F027A1BF4B34E796E32A811CBB4050908D8F67"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA512:"sample":"4D60C5AB1996BD848343B31C00850205E2EA6922DAC2E4B8":"3F6E837448F027A1BF4B34E796E32A811CBB4050908D8F67"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha1 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA1:"A94A8FE5CCB19BA61C4C0873D391E987982FBBD3":"0F2141A0EBBC44D2E1AF90A50EBCFCE5E197B3B7D4DE036D":"EB18BC9E1F3D7387500CB99CF5F7C157070A8961E38700B7"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA1:"test":"0F2141A0EBBC44D2E1AF90A50EBCFCE5E197B3B7D4DE036D":"EB18BC9E1F3D7387500CB99CF5F7C157070A8961E38700B7"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha224 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA224:"90A3ED9E32B2AAF4C61C410EB925426119E1A9DC53D4286ADE99A809":"6945A1C1D1B2206B8145548F633BB61CEF04891BAF26ED34":"B7FB7FDFC339C0B9BD61A9F5A8EAF9BE58FC5CBA2CB15293"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA224:"test":"6945A1C1D1B2206B8145548F633BB61CEF04891BAF26ED34":"B7FB7FDFC339C0B9BD61A9F5A8EAF9BE58FC5CBA2CB15293"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha256 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"3A718BD8B4926C3B52EE6BBE67EF79B18CB6EB62B1AD97AE":"5662E6848A4A19B1F1AE2F72ACD4B8BBE50F1EAC65D9124F"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA256:"test":"3A718BD8B4926C3B52EE6BBE67EF79B18CB6EB62B1AD97AE":"5662E6848A4A19B1F1AE2F72ACD4B8BBE50F1EAC65D9124F"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha384 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA384:"768412320F7B0AA5812FCE428DC4706B3CAE50E02A64CAA16A782249BFE8EFC4B7EF1CCB126255D196047DFEDF17A0A9":"B234B60B4DB75A733E19280A7A6034BD6B1EE88AF5332367":"7994090B2D59BB782BE57E74A44C9A1C700413F8ABEFE77A"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA384:"test":"B234B60B4DB75A733E19280A7A6034BD6B1EE88AF5332367":"7994090B2D59BB782BE57E74A44C9A1C700413F8ABEFE77A"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha512 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA512:"EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF":"FE4F4AE86A58B6507946715934FE2D8FF9D95B6B098FE739":"74CF5605C98FBA0E1EF34D4B5A1577A7DCF59457CAE52290"
|
||||
ECDSA deterministic test vector rfc 6979 p192 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP192R1:"6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4":MBEDTLS_MD_SHA512:"test":"FE4F4AE86A58B6507946715934FE2D8FF9D95B6B098FE739":"74CF5605C98FBA0E1EF34D4B5A1577A7DCF59457CAE52290"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha1 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA1:"8151325DCDBAE9E0FF95F9F9658432DBEDFDB209":"22226F9D40A96E19C4A301CE5B74B115303C0F3A4FD30FC257FB57AC":"66D1CDD83E3AF75605DD6E2FEFF196D30AA7ED7A2EDF7AF475403D69"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA1:"sample":"22226F9D40A96E19C4A301CE5B74B115303C0F3A4FD30FC257FB57AC":"66D1CDD83E3AF75605DD6E2FEFF196D30AA7ED7A2EDF7AF475403D69"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha224 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA224:"9003E374BC726550C2C289447FD0533160F875709386DFA377BFD41C":"1CDFE6662DDE1E4A1EC4CDEDF6A1F5A2FB7FBD9145C12113E6ABFD3E":"A6694FD7718A21053F225D3F46197CA699D45006C06F871808F43EBC"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA224:"sample":"1CDFE6662DDE1E4A1EC4CDEDF6A1F5A2FB7FBD9145C12113E6ABFD3E":"A6694FD7718A21053F225D3F46197CA699D45006C06F871808F43EBC"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha256 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA256:"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF":"61AA3DA010E8E8406C656BC477A7A7189895E7E840CDFE8FF42307BA":"BC814050DAB5D23770879494F9E0A680DC1AF7161991BDE692B10101"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA256:"sample":"61AA3DA010E8E8406C656BC477A7A7189895E7E840CDFE8FF42307BA":"BC814050DAB5D23770879494F9E0A680DC1AF7161991BDE692B10101"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha384 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA384:"9A9083505BC92276AEC4BE312696EF7BF3BF603F4BBD381196A029F340585312313BCA4A9B5B890EFEE42C77B1EE25FE":"0B115E5E36F0F9EC81F1325A5952878D745E19D7BB3EABFABA77E953":"830F34CCDFE826CCFDC81EB4129772E20E122348A2BBD889A1B1AF1D"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA384:"sample":"0B115E5E36F0F9EC81F1325A5952878D745E19D7BB3EABFABA77E953":"830F34CCDFE826CCFDC81EB4129772E20E122348A2BBD889A1B1AF1D"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha512 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA512:"39A5E04AAFF7455D9850C605364F514C11324CE64016960D23D5DC57D3FFD8F49A739468AB8049BF18EEF820CDB1AD6C9015F838556BC7FAD4138B23FDF986C7":"074BD1D979D5F32BF958DDC61E4FB4872ADCAFEB2256497CDAC30397":"A4CECA196C3D5A1FF31027B33185DC8EE43F288B21AB342E5D8EB084"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA512:"sample":"074BD1D979D5F32BF958DDC61E4FB4872ADCAFEB2256497CDAC30397":"A4CECA196C3D5A1FF31027B33185DC8EE43F288B21AB342E5D8EB084"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha1 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA1:"A94A8FE5CCB19BA61C4C0873D391E987982FBBD3":"DEAA646EC2AF2EA8AD53ED66B2E2DDAA49A12EFD8356561451F3E21C":"95987796F6CF2062AB8135271DE56AE55366C045F6D9593F53787BD2"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA1:"test":"DEAA646EC2AF2EA8AD53ED66B2E2DDAA49A12EFD8356561451F3E21C":"95987796F6CF2062AB8135271DE56AE55366C045F6D9593F53787BD2"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha224 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA224:"90A3ED9E32B2AAF4C61C410EB925426119E1A9DC53D4286ADE99A809":"C441CE8E261DED634E4CF84910E4C5D1D22C5CF3B732BB204DBEF019":"902F42847A63BDC5F6046ADA114953120F99442D76510150F372A3F4"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA224:"test":"C441CE8E261DED634E4CF84910E4C5D1D22C5CF3B732BB204DBEF019":"902F42847A63BDC5F6046ADA114953120F99442D76510150F372A3F4"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha256 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"AD04DDE87B84747A243A631EA47A1BA6D1FAA059149AD2440DE6FBA6":"178D49B1AE90E3D8B629BE3DB5683915F4E8C99FDF6E666CF37ADCFD"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA256:"test":"AD04DDE87B84747A243A631EA47A1BA6D1FAA059149AD2440DE6FBA6":"178D49B1AE90E3D8B629BE3DB5683915F4E8C99FDF6E666CF37ADCFD"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha384 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA384:"768412320F7B0AA5812FCE428DC4706B3CAE50E02A64CAA16A782249BFE8EFC4B7EF1CCB126255D196047DFEDF17A0A9":"389B92682E399B26518A95506B52C03BC9379A9DADF3391A21FB0EA4":"414A718ED3249FF6DBC5B50C27F71F01F070944DA22AB1F78F559AAB"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA384:"test":"389B92682E399B26518A95506B52C03BC9379A9DADF3391A21FB0EA4":"414A718ED3249FF6DBC5B50C27F71F01F070944DA22AB1F78F559AAB"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha512 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA512:"EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF":"049F050477C5ADD858CAC56208394B5A55BAEBBE887FDF765047C17C":"077EB13E7005929CEFA3CD0403C7CDCC077ADF4E44F3C41B2F60ECFF"
|
||||
ECDSA deterministic test vector rfc 6979 p224 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP224R1:"F220266E1105BFE3083E03EC7A3A654651F45E37167E88600BF257C1":MBEDTLS_MD_SHA512:"test":"049F050477C5ADD858CAC56208394B5A55BAEBBE887FDF765047C17C":"077EB13E7005929CEFA3CD0403C7CDCC077ADF4E44F3C41B2F60ECFF"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha1 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA1:"8151325DCDBAE9E0FF95F9F9658432DBEDFDB209":"61340C88C3AAEBEB4F6D667F672CA9759A6CCAA9FA8811313039EE4A35471D32":"6D7F147DAC089441BB2E2FE8F7A3FA264B9C475098FDCF6E00D7C996E1B8B7EB"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA1:"sample":"61340C88C3AAEBEB4F6D667F672CA9759A6CCAA9FA8811313039EE4A35471D32":"6D7F147DAC089441BB2E2FE8F7A3FA264B9C475098FDCF6E00D7C996E1B8B7EB"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha224 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA224:"9003E374BC726550C2C289447FD0533160F875709386DFA377BFD41C":"53B2FFF5D1752B2C689DF257C04C40A587FABABB3F6FC2702F1343AF7CA9AA3F":"B9AFB64FDC03DC1A131C7D2386D11E349F070AA432A4ACC918BEA988BF75C74C"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA224:"sample":"53B2FFF5D1752B2C689DF257C04C40A587FABABB3F6FC2702F1343AF7CA9AA3F":"B9AFB64FDC03DC1A131C7D2386D11E349F070AA432A4ACC918BEA988BF75C74C"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha256 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF":"EFD48B2AACB6A8FD1140DD9CD45E81D69D2C877B56AAF991C34D0EA84EAF3716":"F7CB1C942D657C41D436C7A1B6E29F65F3E900DBB9AFF4064DC4AB2F843ACDA8"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"sample":"EFD48B2AACB6A8FD1140DD9CD45E81D69D2C877B56AAF991C34D0EA84EAF3716":"F7CB1C942D657C41D436C7A1B6E29F65F3E900DBB9AFF4064DC4AB2F843ACDA8"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha384 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA384:"9A9083505BC92276AEC4BE312696EF7BF3BF603F4BBD381196A029F340585312313BCA4A9B5B890EFEE42C77B1EE25FE":"0EAFEA039B20E9B42309FB1D89E213057CBF973DC0CFC8F129EDDDC800EF7719":"4861F0491E6998B9455193E34E7B0D284DDD7149A74B95B9261F13ABDE940954"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA384:"sample":"0EAFEA039B20E9B42309FB1D89E213057CBF973DC0CFC8F129EDDDC800EF7719":"4861F0491E6998B9455193E34E7B0D284DDD7149A74B95B9261F13ABDE940954"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha512 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA512:"39A5E04AAFF7455D9850C605364F514C11324CE64016960D23D5DC57D3FFD8F49A739468AB8049BF18EEF820CDB1AD6C9015F838556BC7FAD4138B23FDF986C7":"8496A60B5E9B47C825488827E0495B0E3FA109EC4568FD3F8D1097678EB97F00":"2362AB1ADBE2B8ADF9CB9EDAB740EA6049C028114F2460F96554F61FAE3302FE"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA512:"sample":"8496A60B5E9B47C825488827E0495B0E3FA109EC4568FD3F8D1097678EB97F00":"2362AB1ADBE2B8ADF9CB9EDAB740EA6049C028114F2460F96554F61FAE3302FE"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha1 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA1:"A94A8FE5CCB19BA61C4C0873D391E987982FBBD3":"0CBCC86FD6ABD1D99E703E1EC50069EE5C0B4BA4B9AC60E409E8EC5910D81A89":"01B9D7B73DFAA60D5651EC4591A0136F87653E0FD780C3B1BC872FFDEAE479B1"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA1:"test":"0CBCC86FD6ABD1D99E703E1EC50069EE5C0B4BA4B9AC60E409E8EC5910D81A89":"01B9D7B73DFAA60D5651EC4591A0136F87653E0FD780C3B1BC872FFDEAE479B1"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha224 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA224:"90A3ED9E32B2AAF4C61C410EB925426119E1A9DC53D4286ADE99A809":"C37EDB6F0AE79D47C3C27E962FA269BB4F441770357E114EE511F662EC34A692":"C820053A05791E521FCAAD6042D40AEA1D6B1A540138558F47D0719800E18F2D"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA224:"test":"C37EDB6F0AE79D47C3C27E962FA269BB4F441770357E114EE511F662EC34A692":"C820053A05791E521FCAAD6042D40AEA1D6B1A540138558F47D0719800E18F2D"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha256 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"F1ABB023518351CD71D881567B1EA663ED3EFCF6C5132B354F28D3B0B7D38367":"019F4113742A2B14BD25926B49C649155F267E60D3814B4C0CC84250E46F0083"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"test":"F1ABB023518351CD71D881567B1EA663ED3EFCF6C5132B354F28D3B0B7D38367":"019F4113742A2B14BD25926B49C649155F267E60D3814B4C0CC84250E46F0083"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha384 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA384:"768412320F7B0AA5812FCE428DC4706B3CAE50E02A64CAA16A782249BFE8EFC4B7EF1CCB126255D196047DFEDF17A0A9":"83910E8B48BB0C74244EBDF7F07A1C5413D61472BD941EF3920E623FBCCEBEB6":"8DDBEC54CF8CD5874883841D712142A56A8D0F218F5003CB0296B6B509619F2C"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA384:"test":"83910E8B48BB0C74244EBDF7F07A1C5413D61472BD941EF3920E623FBCCEBEB6":"8DDBEC54CF8CD5874883841D712142A56A8D0F218F5003CB0296B6B509619F2C"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha512 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA512:"EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF":"461D93F31B6540894788FD206C07CFA0CC35F46FA3C91816FFF1040AD1581A04":"39AF9F15DE0DB8D97E72719C74820D304CE5226E32DEDAE67519E840D1194E55"
|
||||
ECDSA deterministic test vector rfc 6979 p256 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA512:"test":"461D93F31B6540894788FD206C07CFA0CC35F46FA3C91816FFF1040AD1581A04":"39AF9F15DE0DB8D97E72719C74820D304CE5226E32DEDAE67519E840D1194E55"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha1 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA1:"8151325DCDBAE9E0FF95F9F9658432DBEDFDB209":"EC748D839243D6FBEF4FC5C4859A7DFFD7F3ABDDF72014540C16D73309834FA37B9BA002899F6FDA3A4A9386790D4EB2":"A3BCFA947BEEF4732BF247AC17F71676CB31A847B9FF0CBC9C9ED4C1A5B3FACF26F49CA031D4857570CCB5CA4424A443"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA1:"sample":"EC748D839243D6FBEF4FC5C4859A7DFFD7F3ABDDF72014540C16D73309834FA37B9BA002899F6FDA3A4A9386790D4EB2":"A3BCFA947BEEF4732BF247AC17F71676CB31A847B9FF0CBC9C9ED4C1A5B3FACF26F49CA031D4857570CCB5CA4424A443"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha224 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA224:"9003E374BC726550C2C289447FD0533160F875709386DFA377BFD41C":"42356E76B55A6D9B4631C865445DBE54E056D3B3431766D0509244793C3F9366450F76EE3DE43F5A125333A6BE060122":"9DA0C81787064021E78DF658F2FBB0B042BF304665DB721F077A4298B095E4834C082C03D83028EFBF93A3C23940CA8D"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA224:"sample":"42356E76B55A6D9B4631C865445DBE54E056D3B3431766D0509244793C3F9366450F76EE3DE43F5A125333A6BE060122":"9DA0C81787064021E78DF658F2FBB0B042BF304665DB721F077A4298B095E4834C082C03D83028EFBF93A3C23940CA8D"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha256 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA256:"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF":"21B13D1E013C7FA1392D03C5F99AF8B30C570C6F98D4EA8E354B63A21D3DAA33BDE1E888E63355D92FA2B3C36D8FB2CD":"F3AA443FB107745BF4BD77CB3891674632068A10CA67E3D45DB2266FA7D1FEEBEFDC63ECCD1AC42EC0CB8668A4FA0AB0"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA256:"sample":"21B13D1E013C7FA1392D03C5F99AF8B30C570C6F98D4EA8E354B63A21D3DAA33BDE1E888E63355D92FA2B3C36D8FB2CD":"F3AA443FB107745BF4BD77CB3891674632068A10CA67E3D45DB2266FA7D1FEEBEFDC63ECCD1AC42EC0CB8668A4FA0AB0"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha384 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA384:"9A9083505BC92276AEC4BE312696EF7BF3BF603F4BBD381196A029F340585312313BCA4A9B5B890EFEE42C77B1EE25FE":"94EDBB92A5ECB8AAD4736E56C691916B3F88140666CE9FA73D64C4EA95AD133C81A648152E44ACF96E36DD1E80FABE46":"99EF4AEB15F178CEA1FE40DB2603138F130E740A19624526203B6351D0A3A94FA329C145786E679E7B82C71A38628AC8"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA384:"sample":"94EDBB92A5ECB8AAD4736E56C691916B3F88140666CE9FA73D64C4EA95AD133C81A648152E44ACF96E36DD1E80FABE46":"99EF4AEB15F178CEA1FE40DB2603138F130E740A19624526203B6351D0A3A94FA329C145786E679E7B82C71A38628AC8"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha512 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA512:"39A5E04AAFF7455D9850C605364F514C11324CE64016960D23D5DC57D3FFD8F49A739468AB8049BF18EEF820CDB1AD6C9015F838556BC7FAD4138B23FDF986C7":"ED0959D5880AB2D869AE7F6C2915C6D60F96507F9CB3E047C0046861DA4A799CFE30F35CC900056D7C99CD7882433709":"512C8CCEEE3890A84058CE1E22DBC2198F42323CE8ACA9135329F03C068E5112DC7CC3EF3446DEFCEB01A45C2667FDD5"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA512:"sample":"ED0959D5880AB2D869AE7F6C2915C6D60F96507F9CB3E047C0046861DA4A799CFE30F35CC900056D7C99CD7882433709":"512C8CCEEE3890A84058CE1E22DBC2198F42323CE8ACA9135329F03C068E5112DC7CC3EF3446DEFCEB01A45C2667FDD5"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha1 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA1:"A94A8FE5CCB19BA61C4C0873D391E987982FBBD3":"4BC35D3A50EF4E30576F58CD96CE6BF638025EE624004A1F7789A8B8E43D0678ACD9D29876DAF46638645F7F404B11C7":"D5A6326C494ED3FF614703878961C0FDE7B2C278F9A65FD8C4B7186201A2991695BA1C84541327E966FA7B50F7382282"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA1:"test":"4BC35D3A50EF4E30576F58CD96CE6BF638025EE624004A1F7789A8B8E43D0678ACD9D29876DAF46638645F7F404B11C7":"D5A6326C494ED3FF614703878961C0FDE7B2C278F9A65FD8C4B7186201A2991695BA1C84541327E966FA7B50F7382282"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha224 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA224:"90A3ED9E32B2AAF4C61C410EB925426119E1A9DC53D4286ADE99A809":"E8C9D0B6EA72A0E7837FEA1D14A1A9557F29FAA45D3E7EE888FC5BF954B5E62464A9A817C47FF78B8C11066B24080E72":"07041D4A7A0379AC7232FF72E6F77B6DDB8F09B16CCE0EC3286B2BD43FA8C6141C53EA5ABEF0D8231077A04540A96B66"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA224:"test":"E8C9D0B6EA72A0E7837FEA1D14A1A9557F29FAA45D3E7EE888FC5BF954B5E62464A9A817C47FF78B8C11066B24080E72":"07041D4A7A0379AC7232FF72E6F77B6DDB8F09B16CCE0EC3286B2BD43FA8C6141C53EA5ABEF0D8231077A04540A96B66"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha256 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"6D6DEFAC9AB64DABAFE36C6BF510352A4CC27001263638E5B16D9BB51D451559F918EEDAF2293BE5B475CC8F0188636B":"2D46F3BECBCC523D5F1A1256BF0C9B024D879BA9E838144C8BA6BAEB4B53B47D51AB373F9845C0514EEFB14024787265"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA256:"test":"6D6DEFAC9AB64DABAFE36C6BF510352A4CC27001263638E5B16D9BB51D451559F918EEDAF2293BE5B475CC8F0188636B":"2D46F3BECBCC523D5F1A1256BF0C9B024D879BA9E838144C8BA6BAEB4B53B47D51AB373F9845C0514EEFB14024787265"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha384 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA384:"768412320F7B0AA5812FCE428DC4706B3CAE50E02A64CAA16A782249BFE8EFC4B7EF1CCB126255D196047DFEDF17A0A9":"8203B63D3C853E8D77227FB377BCF7B7B772E97892A80F36AB775D509D7A5FEB0542A7F0812998DA8F1DD3CA3CF023DB":"DDD0760448D42D8A43AF45AF836FCE4DE8BE06B485E9B61B827C2F13173923E06A739F040649A667BF3B828246BAA5A5"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA384:"test":"8203B63D3C853E8D77227FB377BCF7B7B772E97892A80F36AB775D509D7A5FEB0542A7F0812998DA8F1DD3CA3CF023DB":"DDD0760448D42D8A43AF45AF836FCE4DE8BE06B485E9B61B827C2F13173923E06A739F040649A667BF3B828246BAA5A5"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha512 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA512:"EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF":"A0D5D090C9980FAF3C2CE57B7AE951D31977DD11C775D314AF55F76C676447D06FB6495CD21B4B6E340FC236584FB277":"976984E59B4C77B0E8E4460DCA3D9F20E07B9BB1F63BEEFAF576F6B2E8B224634A2092CD3792E0159AD9CEE37659C736"
|
||||
ECDSA deterministic test vector rfc 6979 p384 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP384R1:"6B9D3DAD2E1B8C1C05B19875B6659F4DE23C3B667BF297BA9AA47740787137D896D5724E4C70A825F872C9EA60D2EDF5":MBEDTLS_MD_SHA512:"test":"A0D5D090C9980FAF3C2CE57B7AE951D31977DD11C775D314AF55F76C676447D06FB6495CD21B4B6E340FC236584FB277":"976984E59B4C77B0E8E4460DCA3D9F20E07B9BB1F63BEEFAF576F6B2E8B224634A2092CD3792E0159AD9CEE37659C736"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha1 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA1:"8151325DCDBAE9E0FF95F9F9658432DBEDFDB209":"0343B6EC45728975EA5CBA6659BBB6062A5FF89EEA58BE3C80B619F322C87910FE092F7D45BB0F8EEE01ED3F20BABEC079D202AE677B243AB40B5431D497C55D75D":"0E7B0E675A9B24413D448B8CC119D2BF7B2D2DF032741C096634D6D65D0DBE3D5694625FB9E8104D3B842C1B0E2D0B98BEA19341E8676AEF66AE4EBA3D5475D5D16"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA1:"sample":"0343B6EC45728975EA5CBA6659BBB6062A5FF89EEA58BE3C80B619F322C87910FE092F7D45BB0F8EEE01ED3F20BABEC079D202AE677B243AB40B5431D497C55D75D":"0E7B0E675A9B24413D448B8CC119D2BF7B2D2DF032741C096634D6D65D0DBE3D5694625FB9E8104D3B842C1B0E2D0B98BEA19341E8676AEF66AE4EBA3D5475D5D16"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha224 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA224:"9003E374BC726550C2C289447FD0533160F875709386DFA377BFD41C":"1776331CFCDF927D666E032E00CF776187BC9FDD8E69D0DABB4109FFE1B5E2A30715F4CC923A4A5E94D2503E9ACFED92857B7F31D7152E0F8C00C15FF3D87E2ED2E":"050CB5265417FE2320BBB5A122B8E1A32BD699089851128E360E620A30C7E17BA41A666AF126CE100E5799B153B60528D5300D08489CA9178FB610A2006C254B41F"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA224:"sample":"1776331CFCDF927D666E032E00CF776187BC9FDD8E69D0DABB4109FFE1B5E2A30715F4CC923A4A5E94D2503E9ACFED92857B7F31D7152E0F8C00C15FF3D87E2ED2E":"050CB5265417FE2320BBB5A122B8E1A32BD699089851128E360E620A30C7E17BA41A666AF126CE100E5799B153B60528D5300D08489CA9178FB610A2006C254B41F"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha256 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA256:"AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF":"1511BB4D675114FE266FC4372B87682BAECC01D3CC62CF2303C92B3526012659D16876E25C7C1E57648F23B73564D67F61C6F14D527D54972810421E7D87589E1A7":"04A171143A83163D6DF460AAF61522695F207A58B95C0644D87E52AA1A347916E4F7A72930B1BC06DBE22CE3F58264AFD23704CBB63B29B931F7DE6C9D949A7ECFC"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA256:"sample":"1511BB4D675114FE266FC4372B87682BAECC01D3CC62CF2303C92B3526012659D16876E25C7C1E57648F23B73564D67F61C6F14D527D54972810421E7D87589E1A7":"04A171143A83163D6DF460AAF61522695F207A58B95C0644D87E52AA1A347916E4F7A72930B1BC06DBE22CE3F58264AFD23704CBB63B29B931F7DE6C9D949A7ECFC"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha384 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA384:"9A9083505BC92276AEC4BE312696EF7BF3BF603F4BBD381196A029F340585312313BCA4A9B5B890EFEE42C77B1EE25FE":"1EA842A0E17D2DE4F92C15315C63DDF72685C18195C2BB95E572B9C5136CA4B4B576AD712A52BE9730627D16054BA40CC0B8D3FF035B12AE75168397F5D50C67451":"1F21A3CEE066E1961025FB048BD5FE2B7924D0CD797BABE0A83B66F1E35EEAF5FDE143FA85DC394A7DEE766523393784484BDF3E00114A1C857CDE1AA203DB65D61"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA384:"sample":"1EA842A0E17D2DE4F92C15315C63DDF72685C18195C2BB95E572B9C5136CA4B4B576AD712A52BE9730627D16054BA40CC0B8D3FF035B12AE75168397F5D50C67451":"1F21A3CEE066E1961025FB048BD5FE2B7924D0CD797BABE0A83B66F1E35EEAF5FDE143FA85DC394A7DEE766523393784484BDF3E00114A1C857CDE1AA203DB65D61"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha512 [#1]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA512:"39A5E04AAFF7455D9850C605364F514C11324CE64016960D23D5DC57D3FFD8F49A739468AB8049BF18EEF820CDB1AD6C9015F838556BC7FAD4138B23FDF986C7":"0C328FAFCBD79DD77850370C46325D987CB525569FB63C5D3BC53950E6D4C5F174E25A1EE9017B5D450606ADD152B534931D7D4E8455CC91F9B15BF05EC36E377FA":"0617CCE7CF5064806C467F678D3B4080D6F1CC50AF26CA209417308281B68AF282623EAA63E5B5C0723D8B8C37FF0777B1A20F8CCB1DCCC43997F1EE0E44DA4A67A"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA512:"sample":"0C328FAFCBD79DD77850370C46325D987CB525569FB63C5D3BC53950E6D4C5F174E25A1EE9017B5D450606ADD152B534931D7D4E8455CC91F9B15BF05EC36E377FA":"0617CCE7CF5064806C467F678D3B4080D6F1CC50AF26CA209417308281B68AF282623EAA63E5B5C0723D8B8C37FF0777B1A20F8CCB1DCCC43997F1EE0E44DA4A67A"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha1 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA1
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA1:"A94A8FE5CCB19BA61C4C0873D391E987982FBBD3":"13BAD9F29ABE20DE37EBEB823C252CA0F63361284015A3BF430A46AAA80B87B0693F0694BD88AFE4E661FC33B094CD3B7963BED5A727ED8BD6A3A202ABE009D0367":"1E9BB81FF7944CA409AD138DBBEE228E1AFCC0C890FC78EC8604639CB0DBDC90F717A99EAD9D272855D00162EE9527567DD6A92CBD629805C0445282BBC916797FF"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA1_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA1:"test":"13BAD9F29ABE20DE37EBEB823C252CA0F63361284015A3BF430A46AAA80B87B0693F0694BD88AFE4E661FC33B094CD3B7963BED5A727ED8BD6A3A202ABE009D0367":"1E9BB81FF7944CA409AD138DBBEE228E1AFCC0C890FC78EC8604639CB0DBDC90F717A99EAD9D272855D00162EE9527567DD6A92CBD629805C0445282BBC916797FF"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha224 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA224
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA224:"90A3ED9E32B2AAF4C61C410EB925426119E1A9DC53D4286ADE99A809":"1C7ED902E123E6815546065A2C4AF977B22AA8EADDB68B2C1110E7EA44D42086BFE4A34B67DDC0E17E96536E358219B23A706C6A6E16BA77B65E1C595D43CAE17FB":"177336676304FCB343CE028B38E7B4FBA76C1C1B277DA18CAD2A8478B2A9A9F5BEC0F3BA04F35DB3E4263569EC6AADE8C92746E4C82F8299AE1B8F1739F8FD519A4"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha224
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA224:"test":"1C7ED902E123E6815546065A2C4AF977B22AA8EADDB68B2C1110E7EA44D42086BFE4A34B67DDC0E17E96536E358219B23A706C6A6E16BA77B65E1C595D43CAE17FB":"177336676304FCB343CE028B38E7B4FBA76C1C1B277DA18CAD2A8478B2A9A9F5BEC0F3BA04F35DB3E4263569EC6AADE8C92746E4C82F8299AE1B8F1739F8FD519A4"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha256 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"00E871C4A14F993C6C7369501900C4BC1E9C7B0B4BA44E04868B30B41D8071042EB28C4C250411D0CE08CD197E4188EA4876F279F90B3D8D74A3C76E6F1E4656AA8":"0CD52DBAA33B063C3A6CD8058A1FB0A46A4754B034FCC644766CA14DA8CA5CA9FDE00E88C1AD60CCBA759025299079D7A427EC3CC5B619BFBC828E7769BCD694E86"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha256
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA256:"test":"00E871C4A14F993C6C7369501900C4BC1E9C7B0B4BA44E04868B30B41D8071042EB28C4C250411D0CE08CD197E4188EA4876F279F90B3D8D74A3C76E6F1E4656AA8":"0CD52DBAA33B063C3A6CD8058A1FB0A46A4754B034FCC644766CA14DA8CA5CA9FDE00E88C1AD60CCBA759025299079D7A427EC3CC5B619BFBC828E7769BCD694E86"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha384 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA384
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA384:"768412320F7B0AA5812FCE428DC4706B3CAE50E02A64CAA16A782249BFE8EFC4B7EF1CCB126255D196047DFEDF17A0A9":"14BEE21A18B6D8B3C93FAB08D43E739707953244FDBE924FA926D76669E7AC8C89DF62ED8975C2D8397A65A49DCC09F6B0AC62272741924D479354D74FF6075578C":"133330865C067A0EAF72362A65E2D7BC4E461E8C8995C3B6226A21BD1AA78F0ED94FE536A0DCA35534F0CD1510C41525D163FE9D74D134881E35141ED5E8E95B979"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha384
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA384:"test":"14BEE21A18B6D8B3C93FAB08D43E739707953244FDBE924FA926D76669E7AC8C89DF62ED8975C2D8397A65A49DCC09F6B0AC62272741924D479354D74FF6075578C":"133330865C067A0EAF72362A65E2D7BC4E461E8C8995C3B6226A21BD1AA78F0ED94FE536A0DCA35534F0CD1510C41525D163FE9D74D134881E35141ED5E8E95B979"
|
||||
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha512 [#2]
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_MD_CAN_SHA512
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA512:"EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF":"13E99020ABF5CEE7525D16B69B229652AB6BDF2AFFCAEF38773B4B7D08725F10CDB93482FDCC54EDCEE91ECA4166B2A7C6265EF0CE2BD7051B7CEF945BABD47EE6D":"1FBD0013C674AA79CB39849527916CE301C66EA7CE8B80682786AD60F98F7E78A19CA69EFF5C57400E3B3A0AD66CE0978214D13BAF4E9AC60752F7B155E2DE4DCE3"
|
||||
ECDSA deterministic test vector rfc 6979 p521 sha512
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED:MBEDTLS_SHA512_C
|
||||
ecdsa_det_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538":MBEDTLS_MD_SHA512:"test":"13E99020ABF5CEE7525D16B69B229652AB6BDF2AFFCAEF38773B4B7D08725F10CDB93482FDCC54EDCEE91ECA4166B2A7C6265EF0CE2BD7051B7CEF945BABD47EE6D":"1FBD0013C674AA79CB39849527916CE301C66EA7CE8B80682786AD60F98F7E78A19CA69EFF5C57400E3B3A0AD66CE0978214D13BAF4E9AC60752F7B155E2DE4DCE3"
|
||||
|
||||
ECDSA restartable read-verify: max_ops=0 (disabled)
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
@@ -307,20 +270,20 @@ depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
ecdsa_read_restart:MBEDTLS_ECP_DP_SECP256R1:"04e8f573412a810c5f81ecd2d251bb94387e72f28af70dced90ebe75725c97a6428231069c2b1ef78509a22c59044319f6ed3cb750dfe64c2a282b35967a458ad6":"dee9d4d8b0e40a034602d6e638197998060f6e9f353ae1d10c94cd56476d3c92":"304502210098a5a1392abe29e4b0a4da3fefe9af0f8c32e5b839ab52ba6a05da9c3b7edd0f0220596f0e195ae1e58c1e53e9e7f0f030b274348a8c11232101778d89c4943f5ad2":250:4:64
|
||||
|
||||
ECDSA restartable sign-write: secp256r1 max_ops=0 (disabled)
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":0:0:0
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"test":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":0:0:0
|
||||
|
||||
ECDSA restartable sign-write: secp256r1 restart max_ops=1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":1:1:10000
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"test":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":1:1:10000
|
||||
|
||||
ECDSA restartable sign-write: secp256r1 restart max_ops=10000
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":10000:0:0
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"test":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":10000:0:0
|
||||
|
||||
ECDSA restartable sign-write: secp256r1 restart max_ops=250
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":250:2:32
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C
|
||||
ecdsa_write_restart:MBEDTLS_ECP_DP_SECP256R1:"C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721":MBEDTLS_MD_SHA256:"test":"3045022100f1abb023518351cd71d881567b1ea663ed3efcf6c5132b354f28d3b0b7d383670220019f4113742a2b14bd25926b49c649155f267e60d3814b4c0cc84250e46f0083":250:2:32
|
||||
|
||||
ECDSA zero private parameter p192
|
||||
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
||||
@@ -361,63 +324,3 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0":"0151518F1AF0F563517EDD5485
|
||||
ECDSA private parameter greater than n p521
|
||||
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
||||
ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA11":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (not on curve), zero bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (not on curve), one byte of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (not on curve), r=1, s=1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (also not on curve), r=1, s=1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (not on curve), r=12345, s=1
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify invalid pub key (not on curve), r=1, s=12345
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECDSA verify valid pub key, invalid sig (r=0), 0 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid pub key, invalid sig (r=0), 1 byte of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid pub key, invalid sig (r>n-1), 32 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid pub key, valid/incorrect sig, 0 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid pub key, valid/incorrect sig, 1 byte of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid pub key, valid/incorrect sig, 32 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED
|
||||
|
||||
ECDSA verify valid public key, correct sig, 0 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":0
|
||||
|
||||
ECDSA verify valid pub key, correct sig, 1 byte of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":0
|
||||
|
||||
ECDSA verify valid pub key, correct sig, 32 bytes of data
|
||||
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
||||
ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":0
|
||||
|
||||
@@ -7,524 +7,549 @@
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdsa_prim_zero(int id)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void ecdsa_invalid_param( )
|
||||
{
|
||||
mbedtls_ecdsa_context ctx;
|
||||
mbedtls_ecp_keypair key;
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecp_point Q;
|
||||
mbedtls_mpi d, r, s;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
unsigned char buf[MBEDTLS_MD_MAX_SIZE];
|
||||
mbedtls_ecp_group_id valid_group = MBEDTLS_ECP_DP_SECP192R1;
|
||||
mbedtls_ecp_point P;
|
||||
mbedtls_md_type_t valid_md = MBEDTLS_MD_SHA256;
|
||||
mbedtls_mpi m;
|
||||
size_t slen;
|
||||
unsigned char buf[42] = { 0 };
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecp_point_init(&Q);
|
||||
mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
TEST_INVALID_PARAM( mbedtls_ecdsa_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_ecdsa_free( NULL ) );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_gen_keypair(&grp, &d, &Q,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||
TEST_INVALID_PARAM( mbedtls_ecdsa_restart_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_ecdsa_restart_free( NULL ) );
|
||||
#endif /* MBEDTLS_ECP_RESTARTABLE */
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, buf, sizeof(buf),
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_verify(&grp, buf, sizeof(buf), &Q, &r, &s) == 0);
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( NULL, &m, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( &grp, NULL, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( &grp, &m, NULL, &m,
|
||||
buf, sizeof( buf ),
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( &grp, &m, &m, NULL,
|
||||
buf, sizeof( buf ),
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( &grp, &m, &m, &m,
|
||||
NULL, sizeof( buf ),
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign( &grp, &m, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
NULL, NULL ) );
|
||||
|
||||
#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det( NULL, &m, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det( &grp, NULL, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det( &grp, &m, NULL, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det( &grp, &m, &m, NULL,
|
||||
buf, sizeof( buf ),
|
||||
valid_md ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det( &grp, &m, &m, &m,
|
||||
NULL, sizeof( buf ),
|
||||
valid_md ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det_ext( NULL, &m, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det_ext( &grp, NULL, &m, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det_ext( &grp, &m, NULL, &m,
|
||||
buf, sizeof( buf ),
|
||||
valid_md,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det_ext( &grp, &m, &m, NULL,
|
||||
buf, sizeof( buf ),
|
||||
valid_md,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_sign_det_ext( &grp, &m, &m, &m,
|
||||
NULL, sizeof( buf ),
|
||||
valid_md,
|
||||
rnd_std_rand, NULL ) );
|
||||
#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_verify( NULL,
|
||||
buf, sizeof( buf ),
|
||||
&P, &m, &m ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_verify( &grp,
|
||||
NULL, sizeof( buf ),
|
||||
&P, &m, &m ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_verify( &grp,
|
||||
buf, sizeof( buf ),
|
||||
NULL, &m, &m ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_verify( &grp,
|
||||
buf, sizeof( buf ),
|
||||
&P, NULL, &m ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_verify( &grp,
|
||||
buf, sizeof( buf ),
|
||||
&P, &m, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature( NULL,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
buf, &slen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature( &ctx,
|
||||
valid_md,
|
||||
NULL, sizeof( buf ),
|
||||
buf, &slen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature( &ctx,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
NULL, &slen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature( &ctx,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
buf, NULL,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature_restartable( NULL,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
buf, &slen,
|
||||
rnd_std_rand,
|
||||
NULL, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature_restartable( &ctx,
|
||||
valid_md,
|
||||
NULL, sizeof( buf ),
|
||||
buf, &slen,
|
||||
rnd_std_rand,
|
||||
NULL, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature_restartable( &ctx,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
NULL, &slen,
|
||||
rnd_std_rand,
|
||||
NULL, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_write_signature_restartable( &ctx,
|
||||
valid_md,
|
||||
buf, sizeof( buf ),
|
||||
buf, NULL,
|
||||
rnd_std_rand,
|
||||
NULL, NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature( NULL,
|
||||
buf, sizeof( buf ),
|
||||
buf, sizeof( buf ) ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature( &ctx,
|
||||
NULL, sizeof( buf ),
|
||||
buf, sizeof( buf ) ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature( &ctx,
|
||||
buf, sizeof( buf ),
|
||||
NULL, sizeof( buf ) ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature_restartable( NULL,
|
||||
buf, sizeof( buf ),
|
||||
buf, sizeof( buf ),
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
NULL, sizeof( buf ),
|
||||
buf, sizeof( buf ),
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
buf, sizeof( buf ),
|
||||
NULL, sizeof( buf ),
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_genkey( NULL, valid_group,
|
||||
rnd_std_rand, NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_genkey( &ctx, valid_group,
|
||||
NULL, NULL ) );
|
||||
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_from_keypair( NULL, &key ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecdsa_from_keypair( &ctx, NULL ) );
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecp_point_free(&Q);
|
||||
mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s);
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdsa_prim_random(int id)
|
||||
void ecdsa_prim_random( int id )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecp_point Q;
|
||||
mbedtls_mpi d, r, s;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
unsigned char buf[MBEDTLS_MD_MAX_SIZE];
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecp_point_init(&Q);
|
||||
mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
memset(buf, 0, sizeof(buf));
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_ecp_point_init( &Q );
|
||||
mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
|
||||
/* prepare material for signature */
|
||||
TEST_ASSERT(mbedtls_test_rnd_pseudo_rand(&rnd_info,
|
||||
buf, sizeof(buf)) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_gen_keypair(&grp, &d, &Q,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( rnd_pseudo_rand( &rnd_info, buf, sizeof( buf ) ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_gen_keypair( &grp, &d, &Q, &rnd_pseudo_rand, &rnd_info )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, buf, sizeof(buf),
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_verify(&grp, buf, sizeof(buf), &Q, &r, &s) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_sign( &grp, &r, &s, &d, buf, sizeof( buf ),
|
||||
&rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdsa_verify( &grp, buf, sizeof( buf ), &Q, &r, &s ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecp_point_free(&Q);
|
||||
mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s);
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_ecp_point_free( &Q );
|
||||
mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdsa_prim_test_vectors(int id, char *d_str, char *xQ_str,
|
||||
char *yQ_str, data_t *rnd_buf,
|
||||
data_t *hash, char *r_str, char *s_str,
|
||||
int result)
|
||||
void ecdsa_prim_test_vectors( int id, char * d_str, char * xQ_str,
|
||||
char * yQ_str, data_t * rnd_buf,
|
||||
data_t * hash, char * r_str, char * s_str,
|
||||
int result )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_ecp_point Q;
|
||||
mbedtls_mpi d, r, s, r_check, s_check, zero;
|
||||
mbedtls_test_rnd_buf_info rnd_info;
|
||||
mbedtls_mpi d, r, s, r_check, s_check;
|
||||
rnd_buf_info rnd_info;
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_ecp_point_init(&Q);
|
||||
mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s);
|
||||
mbedtls_mpi_init(&r_check); mbedtls_mpi_init(&s_check);
|
||||
mbedtls_mpi_init(&zero);
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_ecp_point_init( &Q );
|
||||
mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s );
|
||||
mbedtls_mpi_init( &r_check ); mbedtls_mpi_init( &s_check );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_point_read_string(&Q, 16, xQ_str, yQ_str) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&d, d_str) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&r_check, r_str) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&s_check, s_str) == 0);
|
||||
rnd_info.fallback_f_rng = mbedtls_test_rnd_std_rand;
|
||||
rnd_info.fallback_p_rng = NULL;
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_point_read_string( &Q, 16, xQ_str, yQ_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &d, 16, d_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &r_check, 16, r_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &s_check, 16, s_str ) == 0 );
|
||||
rnd_info.buf = rnd_buf->x;
|
||||
rnd_info.length = rnd_buf->len;
|
||||
|
||||
/* Fix rnd_buf->x by shifting it left if necessary */
|
||||
if (grp.nbits % 8 != 0) {
|
||||
unsigned char shift = 8 - (grp.nbits % 8);
|
||||
if( grp.nbits % 8 != 0 )
|
||||
{
|
||||
unsigned char shift = 8 - ( grp.nbits % 8 );
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < rnd_info.length - 1; i++) {
|
||||
rnd_buf->x[i] = rnd_buf->x[i] << shift | rnd_buf->x[i+1] >> (8 - shift);
|
||||
}
|
||||
for( i = 0; i < rnd_info.length - 1; i++ )
|
||||
rnd_buf->x[i] = rnd_buf->x[i] << shift | rnd_buf->x[i+1] >> ( 8 - shift );
|
||||
|
||||
rnd_buf->x[rnd_info.length-1] <<= shift;
|
||||
}
|
||||
|
||||
TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, hash->x, hash->len,
|
||||
mbedtls_test_rnd_buffer_rand, &rnd_info) == result);
|
||||
TEST_ASSERT( mbedtls_ecdsa_sign( &grp, &r, &s, &d, hash->x, hash->len,
|
||||
rnd_buffer_rand, &rnd_info ) == result );
|
||||
|
||||
if (result == 0) {
|
||||
/* Check we generated the expected values */
|
||||
TEST_EQUAL(mbedtls_mpi_cmp_mpi(&r, &r_check), 0);
|
||||
TEST_EQUAL(mbedtls_mpi_cmp_mpi(&s, &s_check), 0);
|
||||
if ( result == 0)
|
||||
{
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &r, &r_check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &s, &s_check ) == 0 );
|
||||
|
||||
/* Valid signature */
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len,
|
||||
&Q, &r_check, &s_check), 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, &r_check, &s_check ) == 0 );
|
||||
|
||||
/* Invalid signature: wrong public key (G instead of Q) */
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len,
|
||||
&grp.G, &r_check, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_ASSERT( mbedtls_mpi_sub_int( &r, &r, 1 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_add_int( &s, &s, 1 ) == 0 );
|
||||
|
||||
/* Invalid signatures: r or s or both one off */
|
||||
TEST_EQUAL(mbedtls_mpi_sub_int(&r, &r_check, 1), 0);
|
||||
TEST_EQUAL(mbedtls_mpi_add_int(&s, &s_check, 1), 0);
|
||||
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
|
||||
/* Invalid signatures: r, s or both (CVE-2022-21449) are zero */
|
||||
TEST_EQUAL(mbedtls_mpi_lset(&zero, 0), 0);
|
||||
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&zero, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r_check, &zero), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&zero, &zero), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
|
||||
/* Invalid signatures: r, s or both are == N */
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&grp.N, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r_check, &grp.N), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&grp.N, &grp.N), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
|
||||
/* Invalid signatures: r, s or both are negative */
|
||||
TEST_EQUAL(mbedtls_mpi_sub_mpi(&r, &r_check, &grp.N), 0);
|
||||
TEST_EQUAL(mbedtls_mpi_sub_mpi(&s, &s_check, &grp.N), 0);
|
||||
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
|
||||
/* Invalid signatures: r or s or both are > N */
|
||||
TEST_EQUAL(mbedtls_mpi_add_mpi(&r, &r_check, &grp.N), 0);
|
||||
TEST_EQUAL(mbedtls_mpi_add_mpi(&s, &s_check, &grp.N), 0);
|
||||
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q,
|
||||
&r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_ASSERT( mbedtls_ecdsa_verify( &grp, hash->x, hash->len,
|
||||
&Q, &r, &s_check ) == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
TEST_ASSERT( mbedtls_ecdsa_verify( &grp, hash->x, hash->len,
|
||||
&Q, &r_check, &s ) == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
TEST_ASSERT( mbedtls_ecdsa_verify( &grp, hash->x, hash->len,
|
||||
&grp.G, &r_check, &s_check ) == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_ecp_point_free(&Q);
|
||||
mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s);
|
||||
mbedtls_mpi_free(&r_check); mbedtls_mpi_free(&s_check);
|
||||
mbedtls_mpi_free(&zero);
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_ecp_point_free( &Q );
|
||||
mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s );
|
||||
mbedtls_mpi_free( &r_check ); mbedtls_mpi_free( &s_check );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECDSA_DETERMINISTIC */
|
||||
void ecdsa_det_test_vectors(int id, char *d_str, int md_alg, data_t *hash,
|
||||
char *r_str, char *s_str)
|
||||
void ecdsa_det_test_vectors( int id, char * d_str, int md_alg, char * msg,
|
||||
char * r_str, char * s_str )
|
||||
{
|
||||
mbedtls_ecp_group grp;
|
||||
mbedtls_mpi d, r, s, r_check, s_check;
|
||||
unsigned char hash[MBEDTLS_MD_MAX_SIZE];
|
||||
size_t hlen;
|
||||
const mbedtls_md_info_t *md_info;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecp_group_init( &grp );
|
||||
mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s );
|
||||
mbedtls_mpi_init( &r_check ); mbedtls_mpi_init( &s_check );
|
||||
memset( hash, 0, sizeof( hash ) );
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s);
|
||||
mbedtls_mpi_init(&r_check); mbedtls_mpi_init(&s_check);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &d, 16, d_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &r_check, 16, r_str ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &s_check, 16, s_str ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&d, d_str) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&r_check, r_str) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&s_check, s_str) == 0);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
hlen = mbedtls_md_get_size( md_info );
|
||||
TEST_ASSERT( mbedtls_md( md_info, (const unsigned char *) msg,
|
||||
strlen( msg ), hash ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_ecdsa_sign_det( &grp, &r, &s, &d, hash, hlen, md_alg ) == 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &r, &r_check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &s, &s_check ) == 0 );
|
||||
|
||||
mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s );
|
||||
mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s );
|
||||
|
||||
TEST_ASSERT(
|
||||
mbedtls_ecdsa_sign_det_ext(&grp, &r, &s, &d,
|
||||
hash->x, hash->len, md_alg,
|
||||
mbedtls_test_rnd_std_rand,
|
||||
NULL)
|
||||
== 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&r, &r_check) == 0);
|
||||
TEST_ASSERT(mbedtls_mpi_cmp_mpi(&s, &s_check) == 0);
|
||||
mbedtls_ecdsa_sign_det_ext( &grp, &r, &s, &d, hash, hlen,
|
||||
md_alg, rnd_std_rand, NULL )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &r, &r_check ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_cmp_mpi( &s, &s_check ) == 0 );
|
||||
exit:
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s);
|
||||
mbedtls_mpi_free(&r_check); mbedtls_mpi_free(&s_check);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecp_group_free( &grp );
|
||||
mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s );
|
||||
mbedtls_mpi_free( &r_check ); mbedtls_mpi_free( &s_check );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_MD_CAN_SHA256 */
|
||||
void ecdsa_write_read_zero(int id)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */
|
||||
void ecdsa_write_read_random( int id )
|
||||
{
|
||||
mbedtls_ecdsa_context ctx;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
rnd_pseudo_info rnd_info;
|
||||
unsigned char hash[32];
|
||||
unsigned char sig[200];
|
||||
size_t sig_len, i;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ecdsa_init(&ctx);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
memset(hash, 0, sizeof(hash));
|
||||
memset(sig, 0x2a, sizeof(sig));
|
||||
|
||||
/* generate signing key */
|
||||
TEST_ASSERT(mbedtls_ecdsa_genkey(&ctx, id,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
|
||||
/* generate and write signature, then read and verify it */
|
||||
TEST_ASSERT(mbedtls_ecdsa_write_signature(&ctx, MBEDTLS_MD_SHA256,
|
||||
hash, sizeof(hash),
|
||||
sig, sizeof(sig), &sig_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == 0);
|
||||
|
||||
/* check we didn't write past the announced length */
|
||||
for (i = sig_len; i < sizeof(sig); i++) {
|
||||
TEST_ASSERT(sig[i] == 0x2a);
|
||||
}
|
||||
|
||||
/* try verification with invalid length */
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len - 1) != 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len + 1) != 0);
|
||||
|
||||
/* try invalid sequence tag */
|
||||
sig[0]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) != 0);
|
||||
sig[0]--;
|
||||
|
||||
/* try modifying r */
|
||||
sig[10]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
sig[10]--;
|
||||
|
||||
/* try modifying s */
|
||||
sig[sig_len - 1]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
sig[sig_len - 1]--;
|
||||
|
||||
exit:
|
||||
mbedtls_ecdsa_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_MD_CAN_SHA256 */
|
||||
void ecdsa_write_read_random(int id)
|
||||
{
|
||||
mbedtls_ecdsa_context ctx;
|
||||
mbedtls_test_rnd_pseudo_info rnd_info;
|
||||
unsigned char hash[32];
|
||||
unsigned char sig[200];
|
||||
size_t sig_len, i;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_ecdsa_init(&ctx);
|
||||
memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info));
|
||||
memset(hash, 0, sizeof(hash));
|
||||
memset(sig, 0x2a, sizeof(sig));
|
||||
mbedtls_ecdsa_init( &ctx );
|
||||
memset( &rnd_info, 0x00, sizeof( rnd_pseudo_info ) );
|
||||
memset( hash, 0, sizeof( hash ) );
|
||||
memset( sig, 0x2a, sizeof( sig ) );
|
||||
|
||||
/* prepare material for signature */
|
||||
TEST_ASSERT(mbedtls_test_rnd_pseudo_rand(&rnd_info,
|
||||
hash, sizeof(hash)) == 0);
|
||||
TEST_ASSERT( rnd_pseudo_rand( &rnd_info, hash, sizeof( hash ) ) == 0 );
|
||||
|
||||
/* generate signing key */
|
||||
TEST_ASSERT(mbedtls_ecdsa_genkey(&ctx, id,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_genkey( &ctx, id, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
|
||||
/* generate and write signature, then read and verify it */
|
||||
TEST_ASSERT(mbedtls_ecdsa_write_signature(&ctx, MBEDTLS_MD_SHA256,
|
||||
hash, sizeof(hash),
|
||||
sig, sizeof(sig), &sig_len,
|
||||
&mbedtls_test_rnd_pseudo_rand,
|
||||
&rnd_info) == 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_write_signature( &ctx, MBEDTLS_MD_SHA256,
|
||||
hash, sizeof( hash ),
|
||||
sig, &sig_len, &rnd_pseudo_rand, &rnd_info ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len ) == 0 );
|
||||
|
||||
/* check we didn't write past the announced length */
|
||||
for (i = sig_len; i < sizeof(sig); i++) {
|
||||
TEST_ASSERT(sig[i] == 0x2a);
|
||||
}
|
||||
for( i = sig_len; i < sizeof( sig ); i++ )
|
||||
TEST_ASSERT( sig[i] == 0x2a );
|
||||
|
||||
/* try verification with invalid length */
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len - 1) != 0);
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len + 1) != 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len - 1 ) != 0 );
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len + 1 ) != 0 );
|
||||
|
||||
/* try invalid sequence tag */
|
||||
sig[0]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) != 0);
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len ) != 0 );
|
||||
sig[0]--;
|
||||
|
||||
/* try modifying r */
|
||||
sig[10]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
sig[10]--;
|
||||
|
||||
/* try modifying s */
|
||||
sig[sig_len - 1]++;
|
||||
TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash),
|
||||
sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ),
|
||||
sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
sig[sig_len - 1]--;
|
||||
|
||||
exit:
|
||||
mbedtls_ecdsa_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecdsa_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */
|
||||
void ecdsa_read_restart(int id, data_t *pk, data_t *hash, data_t *sig,
|
||||
int max_ops, int min_restart, int max_restart)
|
||||
void ecdsa_read_restart( int id, data_t *pk, data_t *hash, data_t *sig,
|
||||
int max_ops, int min_restart, int max_restart )
|
||||
{
|
||||
mbedtls_ecdsa_context ctx;
|
||||
mbedtls_ecdsa_restart_ctx rs_ctx;
|
||||
int ret, cnt_restart;
|
||||
|
||||
mbedtls_ecdsa_init(&ctx);
|
||||
mbedtls_ecdsa_restart_init(&rs_ctx);
|
||||
mbedtls_ecdsa_init( &ctx );
|
||||
mbedtls_ecdsa_restart_init( &rs_ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&ctx.grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_ecp_point_read_binary(&ctx.grp, &ctx.Q,
|
||||
pk->x, pk->len) == 0);
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &ctx.grp, id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_ecp_point_read_binary( &ctx.grp, &ctx.Q,
|
||||
pk->x, pk->len ) == 0 );
|
||||
|
||||
mbedtls_ecp_set_max_ops(max_ops);
|
||||
mbedtls_ecp_set_max_ops( max_ops );
|
||||
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdsa_read_signature_restartable(&ctx,
|
||||
hash->x, hash->len, sig->x, sig->len,
|
||||
&rs_ctx);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
hash->x, hash->len, sig->x, sig->len, &rs_ctx );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
/* try modifying r */
|
||||
|
||||
TEST_ASSERT(sig->len > 10);
|
||||
TEST_ASSERT( sig->len > 10 );
|
||||
sig->x[10]++;
|
||||
do {
|
||||
ret = mbedtls_ecdsa_read_signature_restartable(&ctx,
|
||||
hash->x, hash->len, sig->x, sig->len,
|
||||
&rs_ctx);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS);
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
ret = mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
hash->x, hash->len, sig->x, sig->len, &rs_ctx );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS );
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
sig->x[10]--;
|
||||
|
||||
/* try modifying s */
|
||||
sig->x[sig->len - 1]++;
|
||||
do {
|
||||
ret = mbedtls_ecdsa_read_signature_restartable(&ctx,
|
||||
hash->x, hash->len, sig->x, sig->len,
|
||||
&rs_ctx);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS);
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_ECP_VERIFY_FAILED);
|
||||
ret = mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
hash->x, hash->len, sig->x, sig->len, &rs_ctx );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS );
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_ECP_VERIFY_FAILED );
|
||||
sig->x[sig->len - 1]--;
|
||||
|
||||
/* Do we leak memory when aborting an operation?
|
||||
* This test only makes sense when we actually restart */
|
||||
if (min_restart > 0) {
|
||||
ret = mbedtls_ecdsa_read_signature_restartable(&ctx,
|
||||
hash->x, hash->len, sig->x, sig->len,
|
||||
&rs_ctx);
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS);
|
||||
if( min_restart > 0 )
|
||||
{
|
||||
ret = mbedtls_ecdsa_read_signature_restartable( &ctx,
|
||||
hash->x, hash->len, sig->x, sig->len, &rs_ctx );
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_ecdsa_free(&ctx);
|
||||
mbedtls_ecdsa_restart_free(&rs_ctx);
|
||||
mbedtls_ecdsa_free( &ctx );
|
||||
mbedtls_ecdsa_restart_free( &rs_ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECDSA_DETERMINISTIC */
|
||||
void ecdsa_write_restart(int id, char *d_str, int md_alg,
|
||||
data_t *hash, data_t *sig_check,
|
||||
int max_ops, int min_restart, int max_restart)
|
||||
void ecdsa_write_restart( int id, char *d_str, int md_alg,
|
||||
char *msg, data_t *sig_check,
|
||||
int max_ops, int min_restart, int max_restart )
|
||||
{
|
||||
int ret, cnt_restart;
|
||||
mbedtls_ecdsa_restart_ctx rs_ctx;
|
||||
mbedtls_ecdsa_context ctx;
|
||||
unsigned char hash[MBEDTLS_MD_MAX_SIZE];
|
||||
unsigned char sig[MBEDTLS_ECDSA_MAX_LEN];
|
||||
size_t slen;
|
||||
size_t hlen, slen;
|
||||
const mbedtls_md_info_t *md_info;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecdsa_restart_init( &rs_ctx );
|
||||
mbedtls_ecdsa_init( &ctx );
|
||||
memset( hash, 0, sizeof( hash ) );
|
||||
memset( sig, 0, sizeof( sig ) );
|
||||
|
||||
mbedtls_ecdsa_restart_init(&rs_ctx);
|
||||
mbedtls_ecdsa_init(&ctx);
|
||||
memset(sig, 0, sizeof(sig));
|
||||
TEST_ASSERT( mbedtls_ecp_group_load( &ctx.grp, id ) == 0 );
|
||||
TEST_ASSERT( mbedtls_mpi_read_string( &ctx.d, 16, d_str ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecp_group_load(&ctx.grp, id) == 0);
|
||||
TEST_ASSERT(mbedtls_test_read_mpi(&ctx.d, d_str) == 0);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
mbedtls_ecp_set_max_ops(max_ops);
|
||||
hlen = mbedtls_md_get_size( md_info );
|
||||
TEST_ASSERT( mbedtls_md( md_info,
|
||||
(const unsigned char *) msg, strlen( msg ),
|
||||
hash ) == 0 );
|
||||
|
||||
slen = sizeof(sig);
|
||||
mbedtls_ecp_set_max_ops( max_ops );
|
||||
|
||||
slen = sizeof( sig );
|
||||
cnt_restart = 0;
|
||||
do {
|
||||
ret = mbedtls_ecdsa_write_signature_restartable(&ctx,
|
||||
md_alg,
|
||||
hash->x,
|
||||
hash->len,
|
||||
sig,
|
||||
sizeof(sig),
|
||||
&slen,
|
||||
mbedtls_test_rnd_std_rand,
|
||||
NULL,
|
||||
&rs_ctx);
|
||||
} while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart);
|
||||
ret = mbedtls_ecdsa_write_signature_restartable( &ctx,
|
||||
md_alg, hash, hlen, sig, &slen, NULL, NULL, &rs_ctx );
|
||||
} while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart );
|
||||
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_ASSERT(slen == sig_check->len);
|
||||
TEST_ASSERT(memcmp(sig, sig_check->x, slen) == 0);
|
||||
TEST_ASSERT( ret == 0 );
|
||||
TEST_ASSERT( slen == sig_check->len );
|
||||
TEST_ASSERT( memcmp( sig, sig_check->x, slen ) == 0 );
|
||||
|
||||
TEST_ASSERT(cnt_restart >= min_restart);
|
||||
TEST_ASSERT(cnt_restart <= max_restart);
|
||||
TEST_ASSERT( cnt_restart >= min_restart );
|
||||
TEST_ASSERT( cnt_restart <= max_restart );
|
||||
|
||||
/* Do we leak memory when aborting an operation?
|
||||
* This test only makes sense when we actually restart */
|
||||
if (min_restart > 0) {
|
||||
ret = mbedtls_ecdsa_write_signature_restartable(&ctx,
|
||||
md_alg,
|
||||
hash->x,
|
||||
hash->len,
|
||||
sig,
|
||||
sizeof(sig),
|
||||
&slen,
|
||||
mbedtls_test_rnd_std_rand,
|
||||
NULL,
|
||||
&rs_ctx);
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS);
|
||||
if( min_restart > 0 )
|
||||
{
|
||||
ret = mbedtls_ecdsa_write_signature_restartable( &ctx,
|
||||
md_alg, hash, hlen, sig, &slen, NULL, NULL, &rs_ctx );
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_ecdsa_restart_free(&rs_ctx);
|
||||
mbedtls_ecdsa_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecdsa_verify(int grp_id, char *x, char *y, char *r, char *s, data_t *content, int expected)
|
||||
{
|
||||
mbedtls_ecdsa_context ctx;
|
||||
mbedtls_mpi sig_r, sig_s;
|
||||
|
||||
mbedtls_ecdsa_init(&ctx);
|
||||
mbedtls_mpi_init(&sig_r);
|
||||
mbedtls_mpi_init(&sig_s);
|
||||
|
||||
/* Prepare ECP group context */
|
||||
TEST_EQUAL(mbedtls_ecp_group_load(&ctx.grp, grp_id), 0);
|
||||
|
||||
/* Prepare public key */
|
||||
TEST_EQUAL(mbedtls_test_read_mpi(&ctx.Q.X, x), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi(&ctx.Q.Y, y), 0);
|
||||
TEST_EQUAL(mbedtls_mpi_lset(&ctx.Q.Z, 1), 0);
|
||||
|
||||
/* Prepare signature R & S */
|
||||
TEST_EQUAL(mbedtls_test_read_mpi(&sig_r, r), 0);
|
||||
TEST_EQUAL(mbedtls_test_read_mpi(&sig_s, s), 0);
|
||||
|
||||
/* Test whether public key has expected validity */
|
||||
TEST_EQUAL(mbedtls_ecp_check_pubkey(&ctx.grp, &ctx.Q),
|
||||
expected == MBEDTLS_ERR_ECP_INVALID_KEY ? MBEDTLS_ERR_ECP_INVALID_KEY : 0);
|
||||
|
||||
/* Verification */
|
||||
int result = mbedtls_ecdsa_verify(&ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s);
|
||||
|
||||
TEST_EQUAL(result, expected);
|
||||
exit:
|
||||
mbedtls_ecdsa_free(&ctx);
|
||||
mbedtls_mpi_free(&sig_r);
|
||||
mbedtls_mpi_free(&sig_s);
|
||||
mbedtls_ecdsa_restart_free( &rs_ctx );
|
||||
mbedtls_ecdsa_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -35,7 +35,7 @@ ECJPAKE round one: KKP1: first point is zero
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"0100":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round one: KKP1: unknown first point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round one: KKP1: nothing after first point
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -49,14 +49,14 @@ read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779
|
||||
ECJPAKE round one: KKP1: no second point data
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round one: KKP1: unknown second point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
ECJPAKE round one: KKP1: unknow second point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round one: KKP1: nothing after second point
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round one: KKP1: zero-length r
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51600":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51600":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round one: KKP1: no data for r
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51601":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -83,7 +83,7 @@ ECJPAKE round one: KKP2: first point is zero
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb120100":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round one: KKP2: unknown first point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round one: KKP2: nothing after first point
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -97,14 +97,14 @@ read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5
|
||||
ECJPAKE round one: KKP2: no second point data
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round one: KKP2: unknown second point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
ECJPAKE round one: KKP2: unknow second point format
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round one: KKP2: nothing after second point
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round one: KKP2: zero-length r
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51600":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51600":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round one: KKP2: no data for r
|
||||
read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb51601":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -149,7 +149,7 @@ ECJPAKE round two client: first point is zero
|
||||
read_round_two_cli:"0300170100":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round two client: unknown first point format
|
||||
read_round_two_cli:"03001741050fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_cli:"03001741050fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round two client: nothing after first point
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -164,13 +164,13 @@ ECJPAKE round two client: no second point data
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a60104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two client: unknown second point format
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641055516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641055516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round two client: nothing after second point
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641045516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two client: zero-length r
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641045516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c800":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641045516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c800":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round two client: no data for r
|
||||
read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641045516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c801":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -190,7 +190,7 @@ read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9
|
||||
ECJPAKE round two server: no data
|
||||
read_round_two_srv:"":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two server: length of first point too small
|
||||
ECJPAKE round two server: length of forst point too small
|
||||
read_round_two_srv:"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two server: length of first point too big
|
||||
@@ -203,7 +203,7 @@ ECJPAKE round two server: first point is zero
|
||||
read_round_two_srv:"0100":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round two server: unknown first point format
|
||||
read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round two server: nothing after first point
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
@@ -218,13 +218,13 @@ ECJPAKE round two server: no second point data
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two server: unknown second point format
|
||||
read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE
|
||||
|
||||
ECJPAKE round two server: nothing after second point
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
ECJPAKE round two server: zero-length r
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d00":MBEDTLS_ERR_ECP_INVALID_KEY
|
||||
|
||||
ECJPAKE round two server: no data for r
|
||||
read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d20":MBEDTLS_ERR_ECP_BAD_INPUT_DATA
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/ecjpake.h"
|
||||
|
||||
#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && defined(MBEDTLS_MD_CAN_SHA256)
|
||||
#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && defined(MBEDTLS_SHA256_C)
|
||||
static const unsigned char ecjpake_test_x1[] = {
|
||||
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
|
||||
0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
|
||||
@@ -63,34 +63,34 @@ static const unsigned char ecjpake_test_X4[] = {
|
||||
};
|
||||
|
||||
/* Load my private and public keys, and peer's public keys */
|
||||
static int ecjpake_test_load(mbedtls_ecjpake_context *ctx,
|
||||
const unsigned char *xm1, size_t len_xm1,
|
||||
const unsigned char *xm2, size_t len_xm2,
|
||||
const unsigned char *Xm1, size_t len_Xm1,
|
||||
const unsigned char *Xm2, size_t len_Xm2,
|
||||
const unsigned char *Xp1, size_t len_Xp1,
|
||||
const unsigned char *Xp2, size_t len_Xp2)
|
||||
static int ecjpake_test_load( mbedtls_ecjpake_context *ctx,
|
||||
const unsigned char *xm1, size_t len_xm1,
|
||||
const unsigned char *xm2, size_t len_xm2,
|
||||
const unsigned char *Xm1, size_t len_Xm1,
|
||||
const unsigned char *Xm2, size_t len_Xm2,
|
||||
const unsigned char *Xp1, size_t len_Xp1,
|
||||
const unsigned char *Xp2, size_t len_Xp2 )
|
||||
{
|
||||
int ret;
|
||||
|
||||
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm1, xm1, len_xm1));
|
||||
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm2, xm2, len_xm2));
|
||||
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len_xm1 ) );
|
||||
MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len_xm2 ) );
|
||||
|
||||
MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp,
|
||||
&ctx->Xm1, Xm1, len_Xm1));
|
||||
MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp,
|
||||
&ctx->Xm2, Xm2, len_Xm2));
|
||||
MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp,
|
||||
&ctx->Xp1, Xp1, len_Xp1));
|
||||
MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp,
|
||||
&ctx->Xp2, Xp2, len_Xp2));
|
||||
MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp,
|
||||
&ctx->Xm1, Xm1, len_Xm1 ) );
|
||||
MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp,
|
||||
&ctx->Xm2, Xm2, len_Xm2 ) );
|
||||
MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp,
|
||||
&ctx->Xp1, Xp1, len_Xp1 ) );
|
||||
MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp,
|
||||
&ctx->Xp2, Xp2, len_Xp2 ) );
|
||||
|
||||
cleanup:
|
||||
return ret;
|
||||
return( ret );
|
||||
}
|
||||
|
||||
#define ADD_SIZE(x) x, sizeof(x)
|
||||
#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && MBEDTLS_MD_CAN_SHA256 */
|
||||
#define ADD_SIZE( x ) x, sizeof( x )
|
||||
#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && MBEDTLS_SHA256_C */
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -98,145 +98,230 @@ cleanup:
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void ecjpake_invalid_param()
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void ecjpake_invalid_param( )
|
||||
{
|
||||
mbedtls_ecjpake_context ctx;
|
||||
unsigned char buf[42] = { 0 };
|
||||
size_t const len = sizeof(buf);
|
||||
size_t olen;
|
||||
size_t const len = sizeof( buf );
|
||||
mbedtls_ecjpake_role valid_role = MBEDTLS_ECJPAKE_SERVER;
|
||||
mbedtls_ecjpake_role invalid_role = (mbedtls_ecjpake_role) 42;
|
||||
mbedtls_md_type_t valid_md = MBEDTLS_MD_SHA256;
|
||||
mbedtls_ecp_group_id valid_group = MBEDTLS_ECP_DP_SECP256R1;
|
||||
|
||||
MD_PSA_INIT();
|
||||
TEST_INVALID_PARAM( mbedtls_ecjpake_init( NULL ) );
|
||||
TEST_VALID_PARAM( mbedtls_ecjpake_free( NULL ) );
|
||||
|
||||
mbedtls_ecjpake_init(&ctx);
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_setup( NULL,
|
||||
valid_role,
|
||||
valid_md,
|
||||
valid_group,
|
||||
buf, len ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_setup( &ctx,
|
||||
invalid_role,
|
||||
valid_md,
|
||||
valid_group,
|
||||
buf, len ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_setup( &ctx,
|
||||
valid_role,
|
||||
valid_md,
|
||||
valid_group,
|
||||
NULL, len ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_check( NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_one( NULL,
|
||||
buf, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_one( &ctx,
|
||||
NULL, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_one( &ctx,
|
||||
buf, len,
|
||||
NULL,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_one( &ctx,
|
||||
buf, len,
|
||||
&olen,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_two( NULL,
|
||||
buf, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_two( &ctx,
|
||||
NULL, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_two( &ctx,
|
||||
buf, len,
|
||||
NULL,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_write_round_two( &ctx,
|
||||
buf, len,
|
||||
&olen,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_read_round_one( NULL,
|
||||
buf, len ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_read_round_one( &ctx,
|
||||
NULL, len ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_read_round_two( NULL,
|
||||
buf, len ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_read_round_two( &ctx,
|
||||
NULL, len ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_derive_secret( NULL,
|
||||
buf, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_derive_secret( &ctx,
|
||||
NULL, len,
|
||||
&olen,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_derive_secret( &ctx,
|
||||
buf, len,
|
||||
NULL,
|
||||
rnd_std_rand,
|
||||
NULL ) );
|
||||
TEST_INVALID_PARAM_RET( MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_derive_secret( &ctx,
|
||||
buf, len,
|
||||
&olen,
|
||||
NULL,
|
||||
NULL ) );
|
||||
|
||||
TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA,
|
||||
mbedtls_ecjpake_setup(&ctx,
|
||||
invalid_role,
|
||||
valid_md,
|
||||
valid_group,
|
||||
buf, len));
|
||||
exit:
|
||||
MD_PSA_DONE();
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void ecjpake_selftest()
|
||||
void ecjpake_selftest( )
|
||||
{
|
||||
MD_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_self_test(1) == 0);
|
||||
|
||||
exit:
|
||||
MD_PSA_DONE();
|
||||
TEST_ASSERT( mbedtls_ecjpake_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256 */
|
||||
void read_bad_md(data_t *msg)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void read_bad_md( data_t *msg )
|
||||
{
|
||||
mbedtls_ecjpake_context corrupt_ctx;
|
||||
const unsigned char *pw = NULL;
|
||||
const unsigned char * pw = NULL;
|
||||
const size_t pw_len = 0;
|
||||
int any_role = MBEDTLS_ECJPAKE_CLIENT;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecjpake_init( &corrupt_ctx );
|
||||
TEST_ASSERT( mbedtls_ecjpake_setup( &corrupt_ctx, any_role,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 );
|
||||
corrupt_ctx.md_info = NULL;
|
||||
|
||||
mbedtls_ecjpake_init(&corrupt_ctx);
|
||||
TEST_ASSERT(mbedtls_ecjpake_setup(&corrupt_ctx, any_role,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw,
|
||||
pw_len) == 0);
|
||||
corrupt_ctx.md_type = MBEDTLS_MD_NONE;
|
||||
|
||||
TEST_EQUAL(mbedtls_ecjpake_read_round_one(&corrupt_ctx, msg->x,
|
||||
msg->len), MBEDTLS_ERR_MD_BAD_INPUT_DATA);
|
||||
TEST_ASSERT( mbedtls_ecjpake_read_round_one( &corrupt_ctx, msg->x,
|
||||
msg->len ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA );
|
||||
|
||||
exit:
|
||||
mbedtls_ecjpake_free(&corrupt_ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecjpake_free( &corrupt_ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256 */
|
||||
void read_round_one(int role, data_t *msg, int ref_ret)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void read_round_one( int role, data_t * msg, int ref_ret )
|
||||
{
|
||||
mbedtls_ecjpake_context ctx;
|
||||
const unsigned char *pw = NULL;
|
||||
const unsigned char * pw = NULL;
|
||||
const size_t pw_len = 0;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecjpake_init( &ctx );
|
||||
|
||||
mbedtls_ecjpake_init(&ctx);
|
||||
TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, role,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, role,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw,
|
||||
pw_len) == 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_read_round_one(&ctx, msg->x, msg->len) == ref_ret);
|
||||
TEST_ASSERT( mbedtls_ecjpake_read_round_one( &ctx, msg->x, msg->len ) == ref_ret );
|
||||
|
||||
exit:
|
||||
mbedtls_ecjpake_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecjpake_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256 */
|
||||
void read_round_two_cli(data_t *msg, int ref_ret)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void read_round_two_cli( data_t * msg, int ref_ret )
|
||||
{
|
||||
mbedtls_ecjpake_context ctx;
|
||||
const unsigned char *pw = NULL;
|
||||
const unsigned char * pw = NULL;
|
||||
const size_t pw_len = 0;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecjpake_init( &ctx );
|
||||
|
||||
mbedtls_ecjpake_init(&ctx);
|
||||
TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_CLIENT,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, MBEDTLS_ECJPAKE_CLIENT,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw,
|
||||
pw_len) == 0);
|
||||
TEST_ASSERT( ecjpake_test_load( &ctx,
|
||||
ADD_SIZE( ecjpake_test_x1 ), ADD_SIZE( ecjpake_test_x2 ),
|
||||
ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ),
|
||||
ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ) )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT(ecjpake_test_load(&ctx,
|
||||
ADD_SIZE(ecjpake_test_x1), ADD_SIZE(ecjpake_test_x2),
|
||||
ADD_SIZE(ecjpake_test_X1), ADD_SIZE(ecjpake_test_X2),
|
||||
ADD_SIZE(ecjpake_test_X3), ADD_SIZE(ecjpake_test_X4))
|
||||
== 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_read_round_two(&ctx, msg->x, msg->len) == ref_ret);
|
||||
TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg->x, msg->len ) == ref_ret );
|
||||
|
||||
exit:
|
||||
mbedtls_ecjpake_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecjpake_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_MD_CAN_SHA256 */
|
||||
void read_round_two_srv(data_t *msg, int ref_ret)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void read_round_two_srv( data_t * msg, int ref_ret )
|
||||
{
|
||||
mbedtls_ecjpake_context ctx;
|
||||
const unsigned char *pw = NULL;
|
||||
const unsigned char * pw = NULL;
|
||||
const size_t pw_len = 0;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_ecjpake_init( &ctx );
|
||||
|
||||
mbedtls_ecjpake_init(&ctx);
|
||||
TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_SERVER,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, MBEDTLS_ECJPAKE_SERVER,
|
||||
MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw,
|
||||
pw_len) == 0);
|
||||
TEST_ASSERT( ecjpake_test_load( &ctx,
|
||||
ADD_SIZE( ecjpake_test_x3 ), ADD_SIZE( ecjpake_test_x4 ),
|
||||
ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ),
|
||||
ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ) )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT(ecjpake_test_load(&ctx,
|
||||
ADD_SIZE(ecjpake_test_x3), ADD_SIZE(ecjpake_test_x4),
|
||||
ADD_SIZE(ecjpake_test_X3), ADD_SIZE(ecjpake_test_X4),
|
||||
ADD_SIZE(ecjpake_test_X1), ADD_SIZE(ecjpake_test_X2))
|
||||
== 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_ecjpake_read_round_two(&ctx, msg->x, msg->len) == ref_ret);
|
||||
TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg->x, msg->len ) == ref_ret );
|
||||
|
||||
exit:
|
||||
mbedtls_ecjpake_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_ecjpake_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
1941
externals/mbedtls/tests/suites/test_suite_ecp.data
vendored
1941
externals/mbedtls/tests/suites/test_suite_ecp.data
vendored
File diff suppressed because it is too large
Load Diff
2288
externals/mbedtls/tests/suites/test_suite_ecp.function
vendored
2288
externals/mbedtls/tests/suites/test_suite_ecp.function
vendored
File diff suppressed because it is too large
Load Diff
@@ -7,69 +7,48 @@ entropy_init_free:1
|
||||
Create NV seed_file
|
||||
nv_seed_file_create:
|
||||
|
||||
Entropy write/update seed file: good
|
||||
Entropy write/update seed file
|
||||
entropy_seed_file:"data_files/entropy_seed":0
|
||||
|
||||
Entropy write/update seed file: nonexistent
|
||||
Entropy write/update seed file
|
||||
entropy_seed_file:"no_such_dir/file":MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR
|
||||
|
||||
Entropy write/update seed file: base NV seed file
|
||||
entropy_write_base_seed_file:0
|
||||
|
||||
Entropy no sources
|
||||
entropy_no_sources:
|
||||
|
||||
Entropy too many sources
|
||||
entropy_too_many_sources:
|
||||
|
||||
Entropy output length: 0
|
||||
Entropy output length #1
|
||||
entropy_func_len:0:0
|
||||
|
||||
Entropy output length: 1
|
||||
Entropy output length #2
|
||||
entropy_func_len:1:0
|
||||
|
||||
Entropy output length: 2
|
||||
Entropy output length #3
|
||||
entropy_func_len:2:0
|
||||
|
||||
Entropy output length: 31
|
||||
Entropy output length #4
|
||||
entropy_func_len:31:0
|
||||
|
||||
Entropy output length: 65 > BLOCK_SIZE
|
||||
Entropy output length #5
|
||||
entropy_func_len:65:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Entropy failing source
|
||||
entropy_source_fail:"data_files/entropy_seed"
|
||||
|
||||
Entropy threshold: 16=2*8
|
||||
Entropy threshold #1
|
||||
entropy_threshold:16:2:8
|
||||
|
||||
Entropy threshold: 32=1*32
|
||||
Entropy threshold #2
|
||||
entropy_threshold:32:1:32
|
||||
|
||||
Entropy threshold: 0* never reaches the threshold
|
||||
Entropy threshold #3
|
||||
entropy_threshold:16:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Entropy threshold: 1024 never reached
|
||||
Entropy threshold #4
|
||||
entropy_threshold:1024:1:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED
|
||||
|
||||
Entropy calls: no strong
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_WEAK:MBEDTLS_ENTROPY_SOURCE_WEAK:1:MBEDTLS_ENTROPY_BLOCK_SIZE:MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE
|
||||
|
||||
Entropy calls: 1 strong, 1*BLOCK_SIZE
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_STRONG:MBEDTLS_ENTROPY_SOURCE_WEAK:1:MBEDTLS_ENTROPY_BLOCK_SIZE:1
|
||||
|
||||
Entropy calls: 1 strong, 2*(BLOCK_SIZE/2)
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_STRONG:MBEDTLS_ENTROPY_SOURCE_WEAK:1:(MBEDTLS_ENTROPY_BLOCK_SIZE+1)/2:2
|
||||
|
||||
Entropy calls: 1 strong, BLOCK_SIZE*1
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_STRONG:MBEDTLS_ENTROPY_SOURCE_WEAK:1:1:MBEDTLS_ENTROPY_BLOCK_SIZE
|
||||
|
||||
Entropy calls: 1 strong, 2*BLOCK_SIZE to reach threshold
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_STRONG:MBEDTLS_ENTROPY_SOURCE_WEAK:MBEDTLS_ENTROPY_BLOCK_SIZE+1:MBEDTLS_ENTROPY_BLOCK_SIZE:2
|
||||
|
||||
Entropy calls: 2 strong, BLOCK_SIZE/2 each
|
||||
entropy_calls:MBEDTLS_ENTROPY_SOURCE_STRONG:MBEDTLS_ENTROPY_SOURCE_WEAK:(MBEDTLS_ENTROPY_BLOCK_SIZE+1)/2:(MBEDTLS_ENTROPY_BLOCK_SIZE+1)/2:2
|
||||
|
||||
Check NV seed standard IO
|
||||
entropy_nv_seed_std_io:
|
||||
|
||||
@@ -83,4 +62,9 @@ Check NV seed manually #3
|
||||
entropy_nv_seed:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
||||
|
||||
Entropy self test
|
||||
depends_on:!MBEDTLS_TEST_NULL_ENTROPY
|
||||
entropy_selftest:0
|
||||
|
||||
Entropy self test (MBEDTLS_TEST_NULL_ENTROPY)
|
||||
depends_on:MBEDTLS_TEST_NULL_ENTROPY
|
||||
entropy_selftest:1
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/entropy.h"
|
||||
#include "entropy_poll.h"
|
||||
#include "mbedtls/entropy_poll.h"
|
||||
#include "mbedtls/md.h"
|
||||
#include "string.h"
|
||||
|
||||
typedef enum {
|
||||
DUMMY_CONSTANT_LENGTH, /* Output context->length bytes */
|
||||
DUMMY_REQUESTED_LENGTH, /* Output whatever length was requested */
|
||||
DUMMY_FAIL, /* Return an error code */
|
||||
} entropy_dummy_instruction;
|
||||
|
||||
typedef struct {
|
||||
entropy_dummy_instruction instruction;
|
||||
size_t length; /* Length to return for DUMMY_CONSTANT_LENGTH */
|
||||
size_t calls; /* Incremented at each call */
|
||||
} entropy_dummy_context;
|
||||
/*
|
||||
* Number of calls made to entropy_dummy_source()
|
||||
*/
|
||||
static size_t entropy_dummy_calls;
|
||||
|
||||
/*
|
||||
* Dummy entropy source
|
||||
@@ -22,27 +15,29 @@ typedef struct {
|
||||
* If data is NULL, write exactly the requested length.
|
||||
* Otherwise, write the length indicated by data or error if negative
|
||||
*/
|
||||
static int entropy_dummy_source(void *arg, unsigned char *output,
|
||||
size_t len, size_t *olen)
|
||||
static int entropy_dummy_source( void *data, unsigned char *output,
|
||||
size_t len, size_t *olen )
|
||||
{
|
||||
entropy_dummy_context *context = arg;
|
||||
++context->calls;
|
||||
entropy_dummy_calls++;
|
||||
|
||||
switch (context->instruction) {
|
||||
case DUMMY_CONSTANT_LENGTH:
|
||||
*olen = context->length;
|
||||
break;
|
||||
case DUMMY_REQUESTED_LENGTH:
|
||||
*olen = len;
|
||||
break;
|
||||
case DUMMY_FAIL:
|
||||
return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
|
||||
if( data == NULL )
|
||||
*olen = len;
|
||||
else
|
||||
{
|
||||
int *d = (int *) data;
|
||||
|
||||
if( *d < 0 )
|
||||
return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
else
|
||||
*olen = *d;
|
||||
}
|
||||
|
||||
memset(output, 0x2a, *olen);
|
||||
return 0;
|
||||
memset( output, 0x2a, *olen );
|
||||
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
#if defined(MBEDTLS_ENTROPY_NV_SEED)
|
||||
/*
|
||||
* Ability to clear entropy sources to allow testing with just predefined
|
||||
* entropy sources. This function or tests depending on it might break if there
|
||||
@@ -54,95 +49,84 @@ static int entropy_dummy_source(void *arg, unsigned char *output,
|
||||
* This might break memory checks in the future if sources need 'free-ing' then
|
||||
* as well.
|
||||
*/
|
||||
static void entropy_clear_sources(mbedtls_entropy_context *ctx)
|
||||
void entropy_clear_sources( mbedtls_entropy_context *ctx )
|
||||
{
|
||||
ctx->source_count = 0;
|
||||
}
|
||||
|
||||
#if defined(MBEDTLS_ENTROPY_NV_SEED)
|
||||
/*
|
||||
* NV seed read/write functions that use a buffer instead of a file
|
||||
*/
|
||||
static unsigned char buffer_seed[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
|
||||
int buffer_nv_seed_read(unsigned char *buf, size_t buf_len)
|
||||
int buffer_nv_seed_read( unsigned char *buf, size_t buf_len )
|
||||
{
|
||||
if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
return -1;
|
||||
}
|
||||
if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
memcpy(buf, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
return 0;
|
||||
memcpy( buf, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
int buffer_nv_seed_write(unsigned char *buf, size_t buf_len)
|
||||
int buffer_nv_seed_write( unsigned char *buf, size_t buf_len )
|
||||
{
|
||||
if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
return -1;
|
||||
}
|
||||
if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
memcpy(buffer_seed, buf, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
return 0;
|
||||
memcpy( buffer_seed, buf, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
/*
|
||||
* NV seed read/write helpers that fill the base seedfile
|
||||
*/
|
||||
static int write_nv_seed(unsigned char *buf, size_t buf_len)
|
||||
int write_nv_seed( unsigned char *buf, size_t buf_len )
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
return -1;
|
||||
}
|
||||
if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
if ((f = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w")) == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if( ( f = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w" ) ) == NULL )
|
||||
return( -1 );
|
||||
|
||||
if (fwrite(buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f) !=
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
if( fwrite( buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f ) !=
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
fclose(f);
|
||||
fclose( f );
|
||||
|
||||
return 0;
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
int read_nv_seed(unsigned char *buf, size_t buf_len)
|
||||
int read_nv_seed( unsigned char *buf, size_t buf_len )
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
return -1;
|
||||
}
|
||||
if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
if ((f = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb")) == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if( ( f = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb" ) ) == NULL )
|
||||
return( -1 );
|
||||
|
||||
if (fread(buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f) !=
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE) {
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
if( fread( buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f ) !=
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE )
|
||||
return( -1 );
|
||||
|
||||
fclose(f);
|
||||
fclose( f );
|
||||
|
||||
return 0;
|
||||
return( 0 );
|
||||
}
|
||||
#endif /* MBEDTLS_ENTROPY_NV_SEED */
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_ENTROPY_C:!MBEDTLS_PSA_INJECT_ENTROPY
|
||||
* depends_on:MBEDTLS_ENTROPY_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_init_free(int reinit)
|
||||
void entropy_init_free( int reinit )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
|
||||
@@ -150,13 +134,12 @@ void entropy_init_free(int reinit)
|
||||
* to call mbedtls_entropy_free() unconditionally on an error path without
|
||||
* checking whether it has already been called in the success path. */
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
mbedtls_entropy_free(&ctx);
|
||||
mbedtls_entropy_init( &ctx );
|
||||
mbedtls_entropy_free( &ctx );
|
||||
|
||||
if (reinit) {
|
||||
mbedtls_entropy_init(&ctx);
|
||||
}
|
||||
mbedtls_entropy_free(&ctx);
|
||||
if( reinit )
|
||||
mbedtls_entropy_init( &ctx );
|
||||
mbedtls_entropy_free( &ctx );
|
||||
|
||||
/* This test case always succeeds, functionally speaking. A plausible
|
||||
* bug might trigger an invalid pointer dereference or a memory leak. */
|
||||
@@ -165,305 +148,217 @@ void entropy_init_free(int reinit)
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */
|
||||
void entropy_seed_file(char *path, int ret)
|
||||
void entropy_seed_file( char * path, int ret )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
mbedtls_entropy_init(&ctx);
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, path ) == ret );
|
||||
TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, path ) == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */
|
||||
void entropy_write_base_seed_file(int ret)
|
||||
void entropy_write_base_seed_file( int ret )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
mbedtls_entropy_init(&ctx);
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE) == ret);
|
||||
TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE) == ret);
|
||||
TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE ) == ret );
|
||||
TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE ) == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_no_sources()
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
entropy_clear_sources(&ctx);
|
||||
TEST_EQUAL(mbedtls_entropy_func(&ctx, buf, sizeof(buf)),
|
||||
MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED);
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_too_many_sources()
|
||||
void entropy_too_many_sources( )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
size_t i;
|
||||
entropy_dummy_context dummy = { DUMMY_REQUESTED_LENGTH, 0, 0 };
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
/*
|
||||
* It's hard to tell precisely when the error will occur,
|
||||
* since we don't know how many sources were automatically added.
|
||||
*/
|
||||
for (i = 0; i < MBEDTLS_ENTROPY_MAX_SOURCES; i++) {
|
||||
(void) mbedtls_entropy_add_source(&ctx, entropy_dummy_source, &dummy,
|
||||
16, MBEDTLS_ENTROPY_SOURCE_WEAK);
|
||||
}
|
||||
for( i = 0; i < MBEDTLS_ENTROPY_MAX_SOURCES; i++ )
|
||||
(void) mbedtls_entropy_add_source( &ctx, entropy_dummy_source, NULL,
|
||||
16, MBEDTLS_ENTROPY_SOURCE_WEAK );
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, &dummy,
|
||||
16, MBEDTLS_ENTROPY_SOURCE_WEAK)
|
||||
== MBEDTLS_ERR_ENTROPY_MAX_SOURCES);
|
||||
TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, NULL,
|
||||
16, MBEDTLS_ENTROPY_SOURCE_WEAK )
|
||||
== MBEDTLS_ERR_ENTROPY_MAX_SOURCES );
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:ENTROPY_HAVE_STRONG */
|
||||
void entropy_func_len(int len, int ret)
|
||||
void entropy_func_len( int len, int ret )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE + 10] = { 0 };
|
||||
unsigned char acc[MBEDTLS_ENTROPY_BLOCK_SIZE + 10] = { 0 };
|
||||
size_t i, j;
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
/*
|
||||
* See comments in mbedtls_entropy_self_test()
|
||||
*/
|
||||
for (i = 0; i < 8; i++) {
|
||||
TEST_ASSERT(mbedtls_entropy_func(&ctx, buf, len) == ret);
|
||||
for (j = 0; j < sizeof(buf); j++) {
|
||||
for( i = 0; i < 8; i++ )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_entropy_func( &ctx, buf, len ) == ret );
|
||||
for( j = 0; j < sizeof( buf ); j++ )
|
||||
acc[j] |= buf[j];
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
for (j = 0; j < (size_t) len; j++) {
|
||||
TEST_ASSERT(acc[j] != 0);
|
||||
}
|
||||
}
|
||||
if( ret == 0 )
|
||||
for( j = 0; j < (size_t) len; j++ )
|
||||
TEST_ASSERT( acc[j] != 0 );
|
||||
|
||||
for (j = len; j < sizeof(buf); j++) {
|
||||
TEST_ASSERT(acc[j] == 0);
|
||||
}
|
||||
for( j = len; j < sizeof( buf ); j++ )
|
||||
TEST_ASSERT( acc[j] == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_source_fail(char *path)
|
||||
void entropy_source_fail( char * path )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
int fail = -1;
|
||||
unsigned char buf[16];
|
||||
entropy_dummy_context dummy = { DUMMY_FAIL, 0, 0 };
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
MD_PSA_INIT();
|
||||
TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source,
|
||||
&fail, 16,
|
||||
MBEDTLS_ENTROPY_SOURCE_WEAK )
|
||||
== 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source,
|
||||
&dummy, 16,
|
||||
MBEDTLS_ENTROPY_SOURCE_WEAK)
|
||||
== 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_func(&ctx, buf, sizeof(buf))
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED);
|
||||
TEST_ASSERT(mbedtls_entropy_gather(&ctx)
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED);
|
||||
TEST_ASSERT( mbedtls_entropy_func( &ctx, buf, sizeof( buf ) )
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
TEST_ASSERT( mbedtls_entropy_gather( &ctx )
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
#if defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_NV_SEED)
|
||||
TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, path)
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED);
|
||||
TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, path)
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED);
|
||||
TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, path )
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, path )
|
||||
== MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
|
||||
#else
|
||||
((void) path);
|
||||
#endif
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_threshold(int threshold, int chunk_size, int result)
|
||||
/* BEGIN_CASE depends_on:ENTROPY_HAVE_STRONG */
|
||||
void entropy_threshold( int threshold, int chunk_size, int result )
|
||||
{
|
||||
mbedtls_entropy_context ctx;
|
||||
entropy_dummy_context strong =
|
||||
{ DUMMY_CONSTANT_LENGTH, MBEDTLS_ENTROPY_BLOCK_SIZE, 0 };
|
||||
entropy_dummy_context weak = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 };
|
||||
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE] = { 0 };
|
||||
int ret;
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
entropy_clear_sources(&ctx);
|
||||
mbedtls_entropy_init( &ctx );
|
||||
|
||||
MD_PSA_INIT();
|
||||
TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source,
|
||||
&chunk_size, threshold,
|
||||
MBEDTLS_ENTROPY_SOURCE_WEAK ) == 0 );
|
||||
|
||||
/* Set strong source that reaches its threshold immediately and
|
||||
* a weak source whose threshold is a test parameter. */
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source,
|
||||
&strong, 1,
|
||||
MBEDTLS_ENTROPY_SOURCE_STRONG) == 0);
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source,
|
||||
&weak, threshold,
|
||||
MBEDTLS_ENTROPY_SOURCE_WEAK) == 0);
|
||||
entropy_dummy_calls = 0;
|
||||
ret = mbedtls_entropy_func( &ctx, buf, sizeof( buf ) );
|
||||
|
||||
ret = mbedtls_entropy_func(&ctx, buf, sizeof(buf));
|
||||
|
||||
if (result >= 0) {
|
||||
TEST_ASSERT(ret == 0);
|
||||
if( result >= 0 )
|
||||
{
|
||||
TEST_ASSERT( ret == 0 );
|
||||
#if defined(MBEDTLS_ENTROPY_NV_SEED)
|
||||
/* If the NV seed functionality is enabled, there are two entropy
|
||||
* updates: before and after updating the NV seed. */
|
||||
// Two times as much calls due to the NV seed update
|
||||
result *= 2;
|
||||
#endif
|
||||
TEST_ASSERT(weak.calls == (size_t) result);
|
||||
} else {
|
||||
TEST_ASSERT(ret == result);
|
||||
TEST_ASSERT( entropy_dummy_calls == (size_t) result );
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( ret == result );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void entropy_calls(int strength1, int strength2,
|
||||
int threshold, int chunk_size,
|
||||
int result)
|
||||
{
|
||||
/*
|
||||
* if result >= 0: result = expected number of calls to source 1
|
||||
* if result < 0: result = expected return code from mbedtls_entropy_func()
|
||||
*/
|
||||
|
||||
mbedtls_entropy_context ctx;
|
||||
entropy_dummy_context dummy1 = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 };
|
||||
entropy_dummy_context dummy2 = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 };
|
||||
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE] = { 0 };
|
||||
int ret;
|
||||
|
||||
mbedtls_entropy_init(&ctx);
|
||||
entropy_clear_sources(&ctx);
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source,
|
||||
&dummy1, threshold,
|
||||
strength1) == 0);
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source,
|
||||
&dummy2, threshold,
|
||||
strength2) == 0);
|
||||
|
||||
ret = mbedtls_entropy_func(&ctx, buf, sizeof(buf));
|
||||
|
||||
if (result >= 0) {
|
||||
TEST_ASSERT(ret == 0);
|
||||
#if defined(MBEDTLS_ENTROPY_NV_SEED)
|
||||
/* If the NV seed functionality is enabled, there are two entropy
|
||||
* updates: before and after updating the NV seed. */
|
||||
result *= 2;
|
||||
#endif
|
||||
TEST_ASSERT(dummy1.calls == (size_t) result);
|
||||
} else {
|
||||
TEST_ASSERT(ret == result);
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_entropy_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_entropy_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */
|
||||
void nv_seed_file_create()
|
||||
void nv_seed_file_create( )
|
||||
{
|
||||
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
|
||||
memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
TEST_ASSERT(write_nv_seed(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( write_nv_seed( buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO:MBEDTLS_PLATFORM_NV_SEED_ALT */
|
||||
void entropy_nv_seed_std_io()
|
||||
void entropy_nv_seed_std_io( )
|
||||
{
|
||||
unsigned char io_seed[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
unsigned char check_seed[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
|
||||
memset(io_seed, 1, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset(check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset( io_seed, 1, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memset( check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
mbedtls_platform_set_nv_seed(mbedtls_platform_std_nv_seed_read,
|
||||
mbedtls_platform_std_nv_seed_write);
|
||||
mbedtls_platform_set_nv_seed( mbedtls_platform_std_nv_seed_read,
|
||||
mbedtls_platform_std_nv_seed_write );
|
||||
|
||||
/* Check if platform NV read and write manipulate the same data */
|
||||
TEST_ASSERT(write_nv_seed(io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT(mbedtls_nv_seed_read(check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) ==
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
TEST_ASSERT( write_nv_seed( io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
TEST_ASSERT( mbedtls_nv_seed_read( check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) ==
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
TEST_ASSERT(memcmp(io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( memcmp( io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
|
||||
memset(check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset( check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
/* Check if platform NV write and raw read manipulate the same data */
|
||||
TEST_ASSERT(mbedtls_nv_seed_write(io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) ==
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
TEST_ASSERT(read_nv_seed(check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( mbedtls_nv_seed_write( io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) ==
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
TEST_ASSERT( read_nv_seed( check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( memcmp( io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_MD_LIGHT:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_PLATFORM_NV_SEED_ALT */
|
||||
void entropy_nv_seed(data_t *read_seed)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_MD_C:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_PLATFORM_NV_SEED_ALT */
|
||||
void entropy_nv_seed( data_t * read_seed )
|
||||
{
|
||||
#if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
|
||||
const mbedtls_md_info_t *md_info =
|
||||
mbedtls_md_info_from_type(MBEDTLS_MD_SHA512);
|
||||
mbedtls_md_info_from_type( MBEDTLS_MD_SHA512 );
|
||||
#elif defined(MBEDTLS_ENTROPY_SHA256_ACCUMULATOR)
|
||||
const mbedtls_md_info_t *md_info =
|
||||
mbedtls_md_info_from_type(MBEDTLS_MD_SHA256);
|
||||
mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 );
|
||||
#else
|
||||
#error "Unsupported entropy accumulator"
|
||||
#endif
|
||||
mbedtls_md_context_t accumulator;
|
||||
mbedtls_entropy_context ctx;
|
||||
int (*original_mbedtls_nv_seed_read)(unsigned char *buf, size_t buf_len) =
|
||||
int (*original_mbedtls_nv_seed_read)( unsigned char *buf, size_t buf_len ) =
|
||||
mbedtls_nv_seed_read;
|
||||
int (*original_mbedtls_nv_seed_write)(unsigned char *buf, size_t buf_len) =
|
||||
int (*original_mbedtls_nv_seed_write)( unsigned char *buf, size_t buf_len ) =
|
||||
mbedtls_nv_seed_write;
|
||||
|
||||
unsigned char header[2];
|
||||
@@ -473,88 +368,80 @@ void entropy_nv_seed(data_t *read_seed)
|
||||
unsigned char check_seed[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
unsigned char check_entropy[MBEDTLS_ENTROPY_BLOCK_SIZE];
|
||||
|
||||
memset(entropy, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset(empty, 0, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset(check_seed, 2, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset(check_entropy, 3, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memset( entropy, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memset( empty, 0, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memset( check_seed, 2, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memset( check_entropy, 3, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
// Make sure we read/write NV seed from our buffers
|
||||
mbedtls_platform_set_nv_seed(buffer_nv_seed_read, buffer_nv_seed_write);
|
||||
mbedtls_platform_set_nv_seed( buffer_nv_seed_read, buffer_nv_seed_write );
|
||||
|
||||
mbedtls_md_init(&accumulator);
|
||||
mbedtls_entropy_init(&ctx);
|
||||
entropy_clear_sources(&ctx);
|
||||
mbedtls_md_init( &accumulator );
|
||||
mbedtls_entropy_init( &ctx );
|
||||
entropy_clear_sources( &ctx );
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_add_source(&ctx, mbedtls_nv_seed_poll, NULL,
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
MBEDTLS_ENTROPY_SOURCE_STRONG) == 0);
|
||||
TEST_ASSERT( mbedtls_entropy_add_source( &ctx, mbedtls_nv_seed_poll, NULL,
|
||||
MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
MBEDTLS_ENTROPY_SOURCE_STRONG ) == 0 );
|
||||
|
||||
// Set the initial NV seed to read
|
||||
TEST_ASSERT(read_seed->len >= MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
memcpy(buffer_seed, read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE);
|
||||
TEST_ASSERT( read_seed->len >= MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
memcpy( buffer_seed, read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE );
|
||||
|
||||
// Do an entropy run
|
||||
TEST_ASSERT(mbedtls_entropy_func(&ctx, entropy, sizeof(entropy)) == 0);
|
||||
TEST_ASSERT( mbedtls_entropy_func( &ctx, entropy, sizeof( entropy ) ) == 0 );
|
||||
// Determine what should have happened with manual entropy internal logic
|
||||
|
||||
// Init accumulator
|
||||
header[1] = MBEDTLS_ENTROPY_BLOCK_SIZE;
|
||||
TEST_ASSERT(mbedtls_md_setup(&accumulator, md_info, 0) == 0);
|
||||
TEST_ASSERT( mbedtls_md_setup( &accumulator, md_info, 0 ) == 0 );
|
||||
|
||||
// First run for updating write_seed
|
||||
header[0] = 0;
|
||||
TEST_ASSERT(mbedtls_md_starts(&accumulator) == 0);
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0);
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator,
|
||||
read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT(mbedtls_md_finish(&accumulator, buf) == 0);
|
||||
TEST_ASSERT( mbedtls_md_starts( &accumulator ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator,
|
||||
read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_finish( &accumulator, buf ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_md_starts(&accumulator) == 0);
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator,
|
||||
buf, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( mbedtls_md_starts( &accumulator ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator,
|
||||
buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_md(md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
check_seed) == 0);
|
||||
TEST_ASSERT( mbedtls_md( md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
check_seed ) == 0 );
|
||||
|
||||
// Second run for actual entropy (triggers mbedtls_entropy_update_nv_seed)
|
||||
header[0] = MBEDTLS_ENTROPY_SOURCE_MANUAL;
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0);
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator,
|
||||
empty, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator,
|
||||
empty, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
|
||||
header[0] = 0;
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0);
|
||||
TEST_ASSERT(mbedtls_md_update(&accumulator,
|
||||
check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT(mbedtls_md_finish(&accumulator, buf) == 0);
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_update( &accumulator,
|
||||
check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
TEST_ASSERT( mbedtls_md_finish( &accumulator, buf ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_md(md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
check_entropy) == 0);
|
||||
TEST_ASSERT( mbedtls_md( md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE,
|
||||
check_entropy ) == 0 );
|
||||
|
||||
// Check result of both NV file and entropy received with the manual calculations
|
||||
TEST_ASSERT(memcmp(check_seed, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT(memcmp(check_entropy, entropy, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0);
|
||||
TEST_ASSERT( memcmp( check_seed, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
TEST_ASSERT( memcmp( check_entropy, entropy, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_md_free(&accumulator);
|
||||
mbedtls_entropy_free(&ctx);
|
||||
mbedtls_md_free( &accumulator );
|
||||
mbedtls_entropy_free( &ctx );
|
||||
mbedtls_nv_seed_read = original_mbedtls_nv_seed_read;
|
||||
mbedtls_nv_seed_write = original_mbedtls_nv_seed_write;
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:ENTROPY_HAVE_STRONG:MBEDTLS_SELF_TEST */
|
||||
void entropy_selftest(int result)
|
||||
void entropy_selftest( int result )
|
||||
{
|
||||
MD_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_entropy_self_test(1) == result);
|
||||
|
||||
exit:
|
||||
MD_PSA_DONE();
|
||||
TEST_ASSERT( mbedtls_entropy_self_test( 1 ) == result );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void error_strerror(int code, char *result_str)
|
||||
void error_strerror( int code, char * result_str )
|
||||
{
|
||||
char buf[500];
|
||||
|
||||
memset(buf, 0, sizeof(buf));
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
|
||||
mbedtls_strerror(code, buf, 500);
|
||||
mbedtls_strerror( code, buf, 500 );
|
||||
|
||||
TEST_ASSERT(strcmp(buf, result_str) == 0);
|
||||
TEST_ASSERT( strcmp( buf, result_str ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,215 +1,215 @@
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #1 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"":"000000000000000000000000":"":"":128:"f5574acc3148dfcb9015200631024df9":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #2 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"00000000000000000000000000000000":"000000000000000000000000":"":"defe3e0b5c54c94b4f2a0f5a46f6210d":128:"f672b94d192266c7c8c8dbb427cc989a":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #3 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":"cafebabefacedbaddecaf888":"":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f8260614bab815":128:"86e318012dd8329dc9dae6a170f61b24":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #4 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f82606":128:"9f458869431576ea6a095456ec6b8101":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #5 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"28fd7434d5cd424a5353818fc21a982460d20cf632eb1e6c4fbfca17d5abcf6a52111086162fe9570e7774c7a912aca3dfa10067ddaad40688645bdd":128:"e86f8f2e730c49d536f00fb5225d28b1":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #6 (128-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"2e582b8417c93f2ff4f6f7ee3c361e4496e710ee12433baa964987d02f42953e402e6f4af407fe08cd2f35123696014c34db19128df4056faebcd647":128:"ceae5569b2af8641572622731aed3e53":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #7 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"":"000000000000000000000000":"":"":128:"ba9ae89fddce4b51131e17c4d65ce587":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #8 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"000000000000000000000000":"":"8f9c0aa2549714c88bb2665e8af86d41":128:"783cff5c5aca7197320658a74279ab37":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #9 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":"cafebabefacedbaddecaf888":"":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6a60bb2e9":128:"8d645a0b0e48d3c3b60a014157cb49b4":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #10 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6":128:"01b15bb5ab6fac0c422014e91eacbf2b":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #11 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"678b3dcb270faa206dc5f6fbb5014996e86d6f3e35cdcdfeb03b37b9b06ff4ff2682248823bd3c84124dc76af7bde3dd440c228b5efbc795dd80dfb6":128:"f876143d933214a5035ff0bb96ff650b":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #12 (192-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"9733ea567c3bad2259ccd63ef7012f5de709e50b1fdc31f1a16db02ede1b66f11dcc4d953f2d4d4671587b65882afbf9545fdb6deab22413d091b703":128:"4b72e520b2521e63d240ed5c903216fa":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #13 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000000":"":"000000000000000000000000":"":"":128:"9cdb269b5d293bc5db9c55b057d9b591":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #14 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"000000000000000000000000":"":"3d4b2cde666761ba5dfb305178e667fb":128:"284b63bb143c40ce100fb4dea6bb617b":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #15 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":"cafebabefacedbaddecaf888":"":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4948d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b776549e092":128:"c912686270a2b9966415fca3be75c468":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #16 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4948d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b77":128:"4e4b178d8fe26fdc95e2e7246dd94bec":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #17 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"6ca95fbb7d16577a9ef2fded94dc85b5d40c629f6bef2c649888e3cbb0ededc7810c04b12c2983bbbbc482e16e45c9215ae12c15c55f2f4809d06652":128:"e6472b8ebd331bfcc7c0fa63ce094461":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #18 (256-en)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_encrypt_and_tag:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":"e0cddd7564d09c4dc522dd65949262bbf9dcdb07421cf67f3032becb7253c284a16e5bf0f556a308043f53fab9eebb526be7f7ad33d697ac77c67862":128:"5791883f822013f8bd136fc36fb9946b":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #1 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"":"000000000000000000000000":"":128:"f5574acc3148dfcb9015200631024df9":"":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #2 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"defe3e0b5c54c94b4f2a0f5a46f6210d":"000000000000000000000000":"":128:"f672b94d192266c7c8c8dbb427cc989a":"":"00000000000000000000000000000000":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #3 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f8260614bab815":"cafebabefacedbaddecaf888":"":128:"86e318012dd8329dc9dae6a170f61b24":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #4 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f82606":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"9f458869431576ea6a095456ec6b8101":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #5 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"28fd7434d5cd424a5353818fc21a982460d20cf632eb1e6c4fbfca17d5abcf6a52111086162fe9570e7774c7a912aca3dfa10067ddaad40688645bdd":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"e86f8f2e730c49d536f00fb5225d28b1":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #6 (128-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"2e582b8417c93f2ff4f6f7ee3c361e4496e710ee12433baa964987d02f42953e402e6f4af407fe08cd2f35123696014c34db19128df4056faebcd647":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"ceae5569b2af8641572622731aed3e53":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #7 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"":"000000000000000000000000":"":128:"ba9ae89fddce4b51131e17c4d65ce587":"":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #8 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"8f9c0aa2549714c88bb2665e8af86d41":"000000000000000000000000":"":128:"783cff5c5aca7197320658a74279ab37":"":"00000000000000000000000000000000":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #9 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6a60bb2e9":"cafebabefacedbaddecaf888":"":128:"8d645a0b0e48d3c3b60a014157cb49b4":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #10 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"01b15bb5ab6fac0c422014e91eacbf2b":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #11 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"678b3dcb270faa206dc5f6fbb5014996e86d6f3e35cdcdfeb03b37b9b06ff4ff2682248823bd3c84124dc76af7bde3dd440c228b5efbc795dd80dfb6":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"f876143d933214a5035ff0bb96ff650b":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #12 (192-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"9733ea567c3bad2259ccd63ef7012f5de709e50b1fdc31f1a16db02ede1b66f11dcc4d953f2d4d4671587b65882afbf9545fdb6deab22413d091b703":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"4b72e520b2521e63d240ed5c903216fa":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #13 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000000":"":"000000000000000000000000":"":128:"9cdb269b5d293bc5db9c55b057d9b591":"":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #14 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000000":"3d4b2cde666761ba5dfb305178e667fb":"000000000000000000000000":"":128:"284b63bb143c40ce100fb4dea6bb617b":"":"00000000000000000000000000000000":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #15 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4948d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b776549e092":"cafebabefacedbaddecaf888":"":128:"c912686270a2b9966415fca3be75c468":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b391aafd255":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #16 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4948d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b77":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"4e4b178d8fe26fdc95e2e7246dd94bec":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #17 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"6ca95fbb7d16577a9ef2fded94dc85b5d40c629f6bef2c649888e3cbb0ededc7810c04b12c2983bbbbc482e16e45c9215ae12c15c55f2f4809d06652":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"e6472b8ebd331bfcc7c0fa63ce094461":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #18 (256-de)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"e0cddd7564d09c4dc522dd65949262bbf9dcdb07421cf67f3032becb7253c284a16e5bf0f556a308043f53fab9eebb526be7f7ad33d697ac77c67862":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"5791883f822013f8bd136fc36fb9946b":"":"d9313225f88406e5a55909c5aff5269a86a7a9531534f7da2e4c303d8a318a721c3c0c95956809532fcf0e2449a6b525b16aedf5aa0de657ba637b39":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #1 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"":"000000000000000000000000":"":128:"f5574acc3148dfcb9015200631024df8":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #2 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"00000000000000000000000000000000":"defe3e0b5c54c94b4f2a0f5a46f7210d":"000000000000000000000000":"":128:"f672b94d192266c7c8c8dbb427cc989a":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #3 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f8260614bab815":"cafebabefacedbaddecaf889":"":128:"86e318012dd8329dc9dae6a170f61b24":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #4 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"d0d94a13b632f337a0cc9955b94fa020c815f903aab12f1efaf2fe9d90f729a6cccbfa986ef2ff2c33de418d9a2529091cf18fe652c1cfde13f82606":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"9f458869431576ea6a095456ec6b8100":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #5 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"28fd7434d5cd424a5353818fc21a982460d20cf632eb1e6c4fbfca17d5abcf6a52111086162fe9570e7774c7a912aca3dfa10067ddaad40688645bdd":"cafebabefacedbad":"feedfadedeadbeeffeedfacedeadbeefabaddad2":128:"e86f8f2e730c49d536f00fb5225d28b1":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #6 (128-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308":"2e582b8417c83f2ff4f6f7ee3c361e4496e710ee12433baa964987d02f42953e402e6f4af407fe08cd2f35123696014c34db19128df4056faebcd647":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"ceae5569b2af8641572622731aed3e53":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #7 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"":"000000000000000000000000":"":128:"ba9ae89fddce4b51131e17c4d65ce586":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #8 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"000000000000000000000000000000000000000000000000":"8f9c0aa2549714c88bb2665e8af86d42":"000000000000000000000000":"":128:"783cff5c5aca7197320658a74279ab37":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #9 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"ffffe9928665731c6d6a8f9467308308feffe9928665731c":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6a60bb2e9":"cafebabefacedbaddecaf888":"":128:"8d645a0b0e48d3c3b60a014157cb49b4":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #10 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"0f009e88410d84ad93c90d55efbe20ffa855492f4dfd0fb485c4f02f536feffbb4d967729e5c67f1de0750255cc500716ba483eb3b0a2bf607af28f6":"cafebabefacedbaddecaf888":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"11b15bb5ab6fac0c422014e91eacbf2b":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #11 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"678b3dcb270faa206dc5f6fbb5014996e86d6f3e35cdcdfeb03b37b9b06ff4ff2682248823bd3c84124dc76af7bde3dd440c228b5efbc795dd80dfb6":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad3":128:"f876143d933214a5035ff0bb96ff650b":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #12 (192-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c":"9733ea567c3bad2259ccd63ef7012f5de709e50b1fdc31f1a16db02ede1b66f11dcc4d953f2d4d4671587b65882afbf9545fdb6deab22413d091b703":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a328a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"4b72e520b2521e63d240ed5c903216fa":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #13 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000001":"":"000000000000000000000000":"":128:"9cdb269b5d293bc5db9c55b057d9b591":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #14 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"0000000000000000000000000000000000000000000000000000000000000000":"3d4b2cde666761ba5dfb305178e667fb":"000000000000000000000001":"":128:"284b63bb143c40ce100fb4dea6bb617b":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #15 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4949d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b776549e092":"cafebabefacedbaddecaf888":"":128:"c912686270a2b9966415fca3be75c468":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #16 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"ad142c11579dd95e41f3c1f324dabc255864d920f1b65759d8f560d4948d447758dfdcf77aa9f62581c7ff572a037f810cb1a9c4b3ca6ed638179b77":"cafebabefacedbaddecaf888":"ffedfacedeadbeeffeedfacedeadbeefabaddad2":128:"4e4b178d8fe26fdc95e2e7246dd94bec":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #17 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308":"6ca95fbb7d16577a9ef2fded94dc85b5d40c629f6bef2c649888e3cbb0ededc7810c04b12c2983bbbbc482e16e45c9215ae12c15c55f2f4809d06652":"cafebabefacedbad":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"e6472b8ebd331bfcc7c0fa63ce094462":"FAIL":"":0
|
||||
|
||||
Camellia-GCM test vect draft-kato-ipsec-camellia-gcm #18 (256-bad)
|
||||
depends_on:MBEDTLS_CCM_GCM_CAN_CAMELLIA
|
||||
depends_on:MBEDTLS_CAMELLIA_C
|
||||
gcm_decrypt_and_verify:MBEDTLS_CIPHER_ID_CAMELLIA:"feffe9928665731c6d6a9f9467308308feffe9928665731c6d6a8f9467308308":"e0cddd7564d09c4dc522dd65949262bbf9dcdb07421cf67f3032becb7253c284a16e5bf0f556a308043f53fab9eebb526be7f7ad33d697ac77c67862":"9313225df88406e555909c5aff5269aa6a7a9538534f7da1e4c303d2a318a728c3c0c95156809539fcf0e2429a6b525416aedbf5a0de6a57a637b39b":"feedfacedeadbeeffeedfacedeadbeefabaddad2":128:"5791883f822013f8bd136fc36fb9946b":"FAIL":"":0
|
||||
|
||||
@@ -1,173 +1,5 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/gcm.h"
|
||||
|
||||
/* Use the multipart interface to process the encrypted data in two parts
|
||||
* and check that the output matches the expected output.
|
||||
* The context must have been set up with the key. */
|
||||
static int check_multipart(mbedtls_gcm_context *ctx,
|
||||
int mode,
|
||||
const data_t *iv,
|
||||
const data_t *add,
|
||||
const data_t *input,
|
||||
const data_t *expected_output,
|
||||
const data_t *tag,
|
||||
size_t n1,
|
||||
size_t n1_add)
|
||||
{
|
||||
int ok = 0;
|
||||
uint8_t *output = NULL;
|
||||
size_t n2 = input->len - n1;
|
||||
size_t n2_add = add->len - n1_add;
|
||||
size_t olen;
|
||||
|
||||
/* Sanity checks on the test data */
|
||||
TEST_ASSERT(n1 <= input->len);
|
||||
TEST_ASSERT(n1_add <= add->len);
|
||||
TEST_EQUAL(input->len, expected_output->len);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode,
|
||||
iv->x, iv->len));
|
||||
TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x, n1_add));
|
||||
TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x + n1_add, n2_add));
|
||||
|
||||
/* Allocate a tight buffer for each update call. This way, if the function
|
||||
* tries to write beyond the advertised required buffer size, this will
|
||||
* count as an overflow for memory sanitizers and static checkers. */
|
||||
TEST_CALLOC(output, n1);
|
||||
olen = 0xdeadbeef;
|
||||
TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x, n1, output, n1, &olen));
|
||||
TEST_EQUAL(n1, olen);
|
||||
TEST_MEMORY_COMPARE(output, olen, expected_output->x, n1);
|
||||
mbedtls_free(output);
|
||||
output = NULL;
|
||||
|
||||
TEST_CALLOC(output, n2);
|
||||
olen = 0xdeadbeef;
|
||||
TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x + n1, n2, output, n2, &olen));
|
||||
TEST_EQUAL(n2, olen);
|
||||
TEST_MEMORY_COMPARE(output, olen, expected_output->x + n1, n2);
|
||||
mbedtls_free(output);
|
||||
output = NULL;
|
||||
|
||||
TEST_CALLOC(output, tag->len);
|
||||
TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len));
|
||||
TEST_EQUAL(0, olen);
|
||||
TEST_MEMORY_COMPARE(output, tag->len, tag->x, tag->len);
|
||||
mbedtls_free(output);
|
||||
output = NULL;
|
||||
|
||||
ok = 1;
|
||||
exit:
|
||||
mbedtls_free(output);
|
||||
return ok;
|
||||
}
|
||||
|
||||
static void check_cipher_with_empty_ad(mbedtls_gcm_context *ctx,
|
||||
int mode,
|
||||
const data_t *iv,
|
||||
const data_t *input,
|
||||
const data_t *expected_output,
|
||||
const data_t *tag,
|
||||
size_t ad_update_count)
|
||||
{
|
||||
size_t n;
|
||||
uint8_t *output = NULL;
|
||||
size_t olen;
|
||||
|
||||
/* Sanity checks on the test data */
|
||||
TEST_EQUAL(input->len, expected_output->len);
|
||||
|
||||
TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode,
|
||||
iv->x, iv->len));
|
||||
|
||||
for (n = 0; n < ad_update_count; n++) {
|
||||
TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, NULL, 0));
|
||||
}
|
||||
|
||||
/* Allocate a tight buffer for each update call. This way, if the function
|
||||
* tries to write beyond the advertised required buffer size, this will
|
||||
* count as an overflow for memory sanitizers and static checkers. */
|
||||
TEST_CALLOC(output, input->len);
|
||||
olen = 0xdeadbeef;
|
||||
TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x, input->len, output, input->len, &olen));
|
||||
TEST_EQUAL(input->len, olen);
|
||||
TEST_MEMORY_COMPARE(output, olen, expected_output->x, input->len);
|
||||
mbedtls_free(output);
|
||||
output = NULL;
|
||||
|
||||
TEST_CALLOC(output, tag->len);
|
||||
TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len));
|
||||
TEST_EQUAL(0, olen);
|
||||
TEST_MEMORY_COMPARE(output, tag->len, tag->x, tag->len);
|
||||
|
||||
exit:
|
||||
mbedtls_free(output);
|
||||
}
|
||||
|
||||
static void check_empty_cipher_with_ad(mbedtls_gcm_context *ctx,
|
||||
int mode,
|
||||
const data_t *iv,
|
||||
const data_t *add,
|
||||
const data_t *tag,
|
||||
size_t cipher_update_count)
|
||||
{
|
||||
size_t olen;
|
||||
size_t n;
|
||||
uint8_t *output_tag = NULL;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode, iv->x, iv->len));
|
||||
TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x, add->len));
|
||||
|
||||
for (n = 0; n < cipher_update_count; n++) {
|
||||
olen = 0xdeadbeef;
|
||||
TEST_EQUAL(0, mbedtls_gcm_update(ctx, NULL, 0, NULL, 0, &olen));
|
||||
TEST_EQUAL(0, olen);
|
||||
}
|
||||
|
||||
TEST_CALLOC(output_tag, tag->len);
|
||||
TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen,
|
||||
output_tag, tag->len));
|
||||
TEST_EQUAL(0, olen);
|
||||
TEST_MEMORY_COMPARE(output_tag, tag->len, tag->x, tag->len);
|
||||
|
||||
exit:
|
||||
mbedtls_free(output_tag);
|
||||
}
|
||||
|
||||
static void check_no_cipher_no_ad(mbedtls_gcm_context *ctx,
|
||||
int mode,
|
||||
const data_t *iv,
|
||||
const data_t *tag)
|
||||
{
|
||||
uint8_t *output = NULL;
|
||||
size_t olen = 0;
|
||||
|
||||
TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode,
|
||||
iv->x, iv->len));
|
||||
TEST_CALLOC(output, tag->len);
|
||||
TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len));
|
||||
TEST_EQUAL(0, olen);
|
||||
TEST_MEMORY_COMPARE(output, tag->len, tag->x, tag->len);
|
||||
|
||||
exit:
|
||||
mbedtls_free(output);
|
||||
}
|
||||
|
||||
static void gcm_reset_ctx(mbedtls_gcm_context *ctx, const uint8_t *key,
|
||||
size_t key_bits, const uint8_t *iv, size_t iv_len,
|
||||
int starts_ret)
|
||||
{
|
||||
int mode = MBEDTLS_GCM_ENCRYPT;
|
||||
mbedtls_cipher_id_t valid_cipher = MBEDTLS_CIPHER_ID_AES;
|
||||
|
||||
mbedtls_gcm_init(ctx);
|
||||
TEST_EQUAL(mbedtls_gcm_setkey(ctx, valid_cipher, key, key_bits), 0);
|
||||
TEST_EQUAL(starts_ret, mbedtls_gcm_starts(ctx, mode, iv, iv_len));
|
||||
exit:
|
||||
/* empty */
|
||||
return;
|
||||
}
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -176,440 +8,277 @@ exit:
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_bad_parameters(int cipher_id, int direction,
|
||||
data_t *key_str, data_t *src_str,
|
||||
data_t *iv_str, data_t *add_str,
|
||||
int tag_len_bits, int gcm_result)
|
||||
void gcm_bad_parameters( int cipher_id, int direction,
|
||||
data_t *key_str, data_t *src_str,
|
||||
data_t *iv_str, data_t *add_str,
|
||||
int tag_len_bits, int gcm_result )
|
||||
{
|
||||
unsigned char output[128];
|
||||
unsigned char tag_output[16];
|
||||
mbedtls_gcm_context ctx;
|
||||
size_t tag_len = tag_len_bits / 8;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
mbedtls_gcm_init( &ctx );
|
||||
|
||||
memset(output, 0x00, sizeof(output));
|
||||
memset(tag_output, 0x00, sizeof(tag_output));
|
||||
memset( output, 0x00, sizeof( output ) );
|
||||
memset( tag_output, 0x00, sizeof( tag_output ) );
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
TEST_ASSERT(mbedtls_gcm_crypt_and_tag(&ctx, direction, src_str->len, iv_str->x, iv_str->len,
|
||||
add_str->x, add_str->len, src_str->x, output, tag_len,
|
||||
tag_output) == gcm_result);
|
||||
TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_gcm_crypt_and_tag( &ctx, direction, src_str->len, iv_str->x, iv_str->len,
|
||||
add_str->x, add_str->len, src_str->x, output, tag_len, tag_output ) == gcm_result );
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
mbedtls_gcm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_encrypt_and_tag(int cipher_id, data_t *key_str,
|
||||
data_t *src_str, data_t *iv_str,
|
||||
data_t *add_str, data_t *dst,
|
||||
int tag_len_bits, data_t *tag,
|
||||
int init_result)
|
||||
void gcm_encrypt_and_tag( int cipher_id, data_t * key_str,
|
||||
data_t * src_str, data_t * iv_str,
|
||||
data_t * add_str, data_t * dst,
|
||||
int tag_len_bits, data_t * tag,
|
||||
int init_result )
|
||||
{
|
||||
unsigned char output[128];
|
||||
unsigned char tag_output[16];
|
||||
mbedtls_gcm_context ctx;
|
||||
size_t tag_len = tag_len_bits / 8;
|
||||
size_t n1;
|
||||
size_t n1_add;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
mbedtls_gcm_init( &ctx );
|
||||
|
||||
memset(output, 0x00, 128);
|
||||
memset(tag_output, 0x00, 16);
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == init_result);
|
||||
if (init_result == 0) {
|
||||
TEST_ASSERT(mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_ENCRYPT, src_str->len, iv_str->x,
|
||||
iv_str->len, add_str->x, add_str->len, src_str->x,
|
||||
output, tag_len, tag_output) == 0);
|
||||
TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == init_result );
|
||||
if( init_result == 0 )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_gcm_crypt_and_tag( &ctx, MBEDTLS_GCM_ENCRYPT, src_str->len, iv_str->x, iv_str->len, add_str->x, add_str->len, src_str->x, output, tag_len, tag_output ) == 0 );
|
||||
|
||||
TEST_MEMORY_COMPARE(output, src_str->len, dst->x, dst->len);
|
||||
TEST_MEMORY_COMPARE(tag_output, tag_len, tag->x, tag->len);
|
||||
|
||||
for (n1 = 0; n1 <= src_str->len; n1 += 1) {
|
||||
for (n1_add = 0; n1_add <= add_str->len; n1_add += 1) {
|
||||
mbedtls_test_set_step(n1 * 10000 + n1_add);
|
||||
if (!check_multipart(&ctx, MBEDTLS_GCM_ENCRYPT,
|
||||
iv_str, add_str, src_str,
|
||||
dst, tag,
|
||||
n1, n1_add)) {
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x,
|
||||
src_str->len, dst->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( tag_output, tag->x,
|
||||
tag_len, tag->len ) == 0 );
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
mbedtls_gcm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_decrypt_and_verify(int cipher_id, data_t *key_str,
|
||||
data_t *src_str, data_t *iv_str,
|
||||
data_t *add_str, int tag_len_bits,
|
||||
data_t *tag_str, char *result,
|
||||
data_t *pt_result, int init_result)
|
||||
void gcm_decrypt_and_verify( int cipher_id, data_t * key_str,
|
||||
data_t * src_str, data_t * iv_str,
|
||||
data_t * add_str, int tag_len_bits,
|
||||
data_t * tag_str, char * result,
|
||||
data_t * pt_result, int init_result )
|
||||
{
|
||||
unsigned char output[128];
|
||||
mbedtls_gcm_context ctx;
|
||||
int ret;
|
||||
size_t tag_len = tag_len_bits / 8;
|
||||
size_t n1;
|
||||
size_t n1_add;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
mbedtls_gcm_init( &ctx );
|
||||
|
||||
memset(output, 0x00, 128);
|
||||
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == init_result);
|
||||
if (init_result == 0) {
|
||||
ret = mbedtls_gcm_auth_decrypt(&ctx,
|
||||
src_str->len,
|
||||
iv_str->x,
|
||||
iv_str->len,
|
||||
add_str->x,
|
||||
add_str->len,
|
||||
tag_str->x,
|
||||
tag_len,
|
||||
src_str->x,
|
||||
output);
|
||||
TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == init_result );
|
||||
if( init_result == 0 )
|
||||
{
|
||||
ret = mbedtls_gcm_auth_decrypt( &ctx, src_str->len, iv_str->x, iv_str->len, add_str->x, add_str->len, tag_str->x, tag_len, src_str->x, output );
|
||||
|
||||
if (strcmp("FAIL", result) == 0) {
|
||||
TEST_ASSERT(ret == MBEDTLS_ERR_GCM_AUTH_FAILED);
|
||||
} else {
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_MEMORY_COMPARE(output, src_str->len, pt_result->x, pt_result->len);
|
||||
if( strcmp( "FAIL", result ) == 0 )
|
||||
{
|
||||
TEST_ASSERT( ret == MBEDTLS_ERR_GCM_AUTH_FAILED );
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST_ASSERT( ret == 0 );
|
||||
|
||||
for (n1 = 0; n1 <= src_str->len; n1 += 1) {
|
||||
for (n1_add = 0; n1_add <= add_str->len; n1_add += 1) {
|
||||
mbedtls_test_set_step(n1 * 10000 + n1_add);
|
||||
if (!check_multipart(&ctx, MBEDTLS_GCM_DECRYPT,
|
||||
iv_str, add_str, src_str,
|
||||
pt_result, tag_str,
|
||||
n1, n1_add)) {
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
TEST_ASSERT( mbedtls_test_hexcmp( output, pt_result->x,
|
||||
src_str->len,
|
||||
pt_result->len ) == 0 );
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
mbedtls_gcm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_decrypt_and_verify_empty_cipher(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *add_str,
|
||||
data_t *tag_str,
|
||||
int cipher_update_calls)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_empty_cipher_with_ad(&ctx, MBEDTLS_GCM_DECRYPT,
|
||||
iv_str, add_str, tag_str,
|
||||
cipher_update_calls);
|
||||
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_decrypt_and_verify_empty_ad(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *src_str,
|
||||
data_t *tag_str,
|
||||
data_t *pt_result,
|
||||
int ad_update_calls)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_cipher_with_empty_ad(&ctx, MBEDTLS_GCM_DECRYPT,
|
||||
iv_str, src_str, pt_result, tag_str,
|
||||
ad_update_calls);
|
||||
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_decrypt_and_verify_no_ad_no_cipher(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *tag_str)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_no_cipher_no_ad(&ctx, MBEDTLS_GCM_DECRYPT,
|
||||
iv_str, tag_str);
|
||||
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_encrypt_and_tag_empty_cipher(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *add_str,
|
||||
data_t *tag_str,
|
||||
int cipher_update_calls)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_empty_cipher_with_ad(&ctx, MBEDTLS_GCM_ENCRYPT,
|
||||
iv_str, add_str, tag_str,
|
||||
cipher_update_calls);
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_encrypt_and_tag_empty_ad(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *src_str,
|
||||
data_t *dst,
|
||||
data_t *tag_str,
|
||||
int ad_update_calls)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_cipher_with_empty_ad(&ctx, MBEDTLS_GCM_ENCRYPT,
|
||||
iv_str, src_str, dst, tag_str,
|
||||
ad_update_calls);
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_encrypt_and_verify_no_ad_no_cipher(int cipher_id,
|
||||
data_t *key_str,
|
||||
data_t *iv_str,
|
||||
data_t *tag_str)
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
|
||||
TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0);
|
||||
check_no_cipher_no_ad(&ctx, MBEDTLS_GCM_ENCRYPT,
|
||||
iv_str, tag_str);
|
||||
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_invalid_param()
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void gcm_invalid_param( )
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
unsigned char valid_buffer[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
|
||||
mbedtls_cipher_id_t valid_cipher = MBEDTLS_CIPHER_ID_AES;
|
||||
int invalid_bitlen = 1;
|
||||
int valid_mode = MBEDTLS_GCM_ENCRYPT;
|
||||
int valid_len = sizeof(valid_buffer);
|
||||
int valid_bitlen = 128, invalid_bitlen = 1;
|
||||
|
||||
mbedtls_gcm_init(&ctx);
|
||||
mbedtls_gcm_init( &ctx );
|
||||
|
||||
/* mbedtls_gcm_init() */
|
||||
TEST_INVALID_PARAM( mbedtls_gcm_init( NULL ) );
|
||||
|
||||
/* mbedtls_gcm_setkey */
|
||||
TEST_EQUAL(
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_setkey(&ctx, valid_cipher, valid_buffer, invalid_bitlen));
|
||||
mbedtls_gcm_setkey( NULL, valid_cipher, valid_buffer, valid_bitlen ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_setkey( &ctx, valid_cipher, NULL, valid_bitlen ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_setkey( &ctx, valid_cipher, valid_buffer, invalid_bitlen ) );
|
||||
|
||||
/* mbedtls_gcm_crypt_and_tag() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( NULL, valid_mode, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_len, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( &ctx, valid_mode, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_len, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( &ctx, valid_mode, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_len, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( &ctx, valid_mode, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer,
|
||||
valid_len, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( &ctx, valid_mode, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL,
|
||||
valid_len, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_crypt_and_tag( &ctx, valid_mode, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_len, NULL ) );
|
||||
|
||||
/* mbedtls_gcm_auth_decrypt() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( &ctx, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL) );
|
||||
|
||||
/* mbedtls_gcm_starts() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_starts( NULL, valid_mode,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_starts( &ctx, valid_mode,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len ) );
|
||||
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_starts( &ctx, valid_mode,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len ) );
|
||||
|
||||
/* mbedtls_gcm_update() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_update( NULL, valid_len,
|
||||
valid_buffer, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_update( &ctx, valid_len,
|
||||
NULL, valid_buffer ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_update( &ctx, valid_len,
|
||||
valid_buffer, NULL ) );
|
||||
|
||||
/* mbedtls_gcm_finish() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_finish( NULL, valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT,
|
||||
mbedtls_gcm_finish( &ctx, NULL, valid_len ) );
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
mbedtls_gcm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_update_output_buffer_too_small(int cipher_id, int mode,
|
||||
data_t *key_str, const data_t *input,
|
||||
const data_t *iv)
|
||||
void gcm_valid_param( )
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
uint8_t *output = NULL;
|
||||
size_t olen = 0;
|
||||
size_t output_len = input->len - 1;
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
mbedtls_gcm_init(&ctx);
|
||||
TEST_EQUAL(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8), 0);
|
||||
TEST_EQUAL(0, mbedtls_gcm_starts(&ctx, mode, iv->x, iv->len));
|
||||
|
||||
TEST_CALLOC(output, output_len);
|
||||
TEST_EQUAL(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL,
|
||||
mbedtls_gcm_update(&ctx, input->x, input->len, output, output_len, &olen));
|
||||
|
||||
TEST_VALID_PARAM( mbedtls_gcm_free( NULL ) );
|
||||
exit:
|
||||
mbedtls_free(output);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
/* NISP SP 800-38D, Section 5.2.1.1 requires that bit length of IV should
|
||||
* satisfy 1 <= bit_len(IV) <= 2^64 - 1. */
|
||||
void gcm_invalid_iv_len(void)
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void gcm_selftest( )
|
||||
{
|
||||
mbedtls_gcm_context ctx;
|
||||
mbedtls_gcm_init(&ctx);
|
||||
uint8_t b16[16] = { 0 };
|
||||
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
|
||||
// Invalid IV length 0
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, 0, MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
|
||||
// Only testable on platforms where sizeof(size_t) >= 8.
|
||||
#if SIZE_MAX >= UINT64_MAX
|
||||
// Invalid IV length 2^61
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, 1ULL << 61, MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
#endif
|
||||
|
||||
goto exit; /* To suppress error that exit is defined but not used */
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_add_len_too_long(void)
|
||||
{
|
||||
// Only testable on platforms where sizeof(size_t) >= 8.
|
||||
#if SIZE_MAX >= UINT64_MAX
|
||||
mbedtls_gcm_context ctx;
|
||||
mbedtls_gcm_init(&ctx);
|
||||
uint8_t b16[16] = { 0 };
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
|
||||
/* NISP SP 800-38D, Section 5.2.1.1 requires that bit length of AD should
|
||||
* be <= 2^64 - 1, ie < 2^64. This is the minimum invalid length in bytes. */
|
||||
uint64_t len_max = 1ULL << 61;
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Feed AD that just exceeds the length limit
|
||||
TEST_EQUAL(mbedtls_gcm_update_ad(&ctx, b16, len_max),
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Feed AD that just exceeds the length limit in two calls
|
||||
TEST_EQUAL(mbedtls_gcm_update_ad(&ctx, b16, 1), 0);
|
||||
TEST_EQUAL(mbedtls_gcm_update_ad(&ctx, b16, len_max - 1),
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Test if potential total AD length overflow is handled properly
|
||||
TEST_EQUAL(mbedtls_gcm_update_ad(&ctx, b16, 1), 0);
|
||||
TEST_EQUAL(mbedtls_gcm_update_ad(&ctx, b16, UINT64_MAX), MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
#endif
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void gcm_input_len_too_long(void)
|
||||
{
|
||||
// Only testable on platforms where sizeof(size_t) >= 8
|
||||
#if SIZE_MAX >= UINT64_MAX
|
||||
mbedtls_gcm_context ctx;
|
||||
uint8_t b16[16] = { 0 };
|
||||
uint8_t out[1];
|
||||
size_t out_len;
|
||||
mbedtls_gcm_init(&ctx);
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
|
||||
/* NISP SP 800-38D, Section 5.2.1.1 requires that bit length of input should
|
||||
* be <= 2^39 - 256. This is the maximum valid length in bytes. */
|
||||
uint64_t len_max = (1ULL << 36) - 32;
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Feed input that just exceeds the length limit
|
||||
TEST_EQUAL(mbedtls_gcm_update(&ctx, b16, len_max + 1, out, len_max + 1,
|
||||
&out_len),
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Feed input that just exceeds the length limit in two calls
|
||||
TEST_EQUAL(mbedtls_gcm_update(&ctx, b16, 1, out, 1, &out_len), 0);
|
||||
TEST_EQUAL(mbedtls_gcm_update(&ctx, b16, len_max, out, len_max, &out_len),
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
mbedtls_gcm_free(&ctx);
|
||||
|
||||
gcm_reset_ctx(&ctx, b16, sizeof(b16) * 8, b16, sizeof(b16), 0);
|
||||
// Test if potential total input length overflow is handled properly
|
||||
TEST_EQUAL(mbedtls_gcm_update(&ctx, b16, 1, out, 1, &out_len), 0);
|
||||
TEST_EQUAL(mbedtls_gcm_update(&ctx, b16, UINT64_MAX, out, UINT64_MAX,
|
||||
&out_len),
|
||||
MBEDTLS_ERR_GCM_BAD_INPUT);
|
||||
|
||||
exit:
|
||||
mbedtls_gcm_free(&ctx);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
#endif
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_CCM_GCM_CAN_AES */
|
||||
void gcm_selftest()
|
||||
{
|
||||
BLOCK_CIPHER_PSA_INIT();
|
||||
TEST_ASSERT(mbedtls_gcm_self_test(1) == 0);
|
||||
BLOCK_CIPHER_PSA_DONE();
|
||||
TEST_ASSERT( mbedtls_gcm_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
GCM - Invalid parameters
|
||||
gcm_invalid_param:
|
||||
|
||||
GCM - Invalid IV length
|
||||
depends_on:MBEDTLS_GCM_C:MBEDTLS_CCM_GCM_CAN_AES
|
||||
gcm_invalid_iv_len:
|
||||
|
||||
GCM - Additional data length too long
|
||||
depends_on:MBEDTLS_GCM_C:MBEDTLS_CCM_GCM_CAN_AES
|
||||
gcm_add_len_too_long:
|
||||
|
||||
GCM - Input length too long
|
||||
depends_on:MBEDTLS_GCM_C:MBEDTLS_CCM_GCM_CAN_AES
|
||||
gcm_input_len_too_long:
|
||||
GCM - Valid parameters
|
||||
gcm_valid_param:
|
||||
|
||||
@@ -14,85 +14,85 @@ HKDF expand fails with okm_len / hash_len > 255
|
||||
test_hkdf_expand_ret:32:32:8192:MBEDTLS_ERR_HKDF_BAD_INPUT_DATA
|
||||
|
||||
HKDF RFC5869 Test Vector #1
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf:MBEDTLS_MD_SHA256:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":"3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf:6:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":"3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865"
|
||||
|
||||
HKDF RFC5869 Test Vector #2
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf:MBEDTLS_MD_SHA256:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf:6:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87"
|
||||
|
||||
HKDF RFC5869 Test Vector #3
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf:MBEDTLS_MD_SHA256:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"":"8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf:6:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"":"8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8"
|
||||
|
||||
HKDF RFC5869 Test Vector #4
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf:MBEDTLS_MD_SHA1:"0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":"085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf:4:"0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":"085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896"
|
||||
|
||||
HKDF RFC5869 Test Vector #5
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf:MBEDTLS_MD_SHA1:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf:4:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4"
|
||||
|
||||
HKDF RFC5869 Test Vector #6
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf:MBEDTLS_MD_SHA1:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"":"0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf:4:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"":"0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918"
|
||||
|
||||
HKDF RFC5869 Test Vector #7
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf:MBEDTLS_MD_SHA1:"0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c":"":"":"2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf:4:"0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c":"":"":"2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48"
|
||||
|
||||
HKDF RFC5869 Test Vector #1 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA256:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_extract:6:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5"
|
||||
|
||||
HKDF RFC5869 Test Vector #2 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA256:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_extract:6:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244"
|
||||
|
||||
HKDF RFC5869 Test Vector #3 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA256:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_extract:6:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04"
|
||||
|
||||
HKDF RFC5869 Test Vector #4 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA1:"0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_extract:4:"0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243"
|
||||
|
||||
HKDF RFC5869 Test Vector #5 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA1:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"8adae09a2a307059478d309b26c4115a224cfaf6"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_extract:4:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f":"606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf":"8adae09a2a307059478d309b26c4115a224cfaf6"
|
||||
|
||||
HKDF RFC5869 Test Vector #6 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA1:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"da8c8a73c7fa77288ec6f5e7c297786aa0d32d01"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_extract:4:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"":"da8c8a73c7fa77288ec6f5e7c297786aa0d32d01"
|
||||
|
||||
HKDF RFC5869 Test Vector #7 Extract
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_extract:MBEDTLS_MD_SHA1:"0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c":"":"2adccada18779e7c2077ad2eb19d3f3e731385dd"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_extract:4:"0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c":"":"2adccada18779e7c2077ad2eb19d3f3e731385dd"
|
||||
|
||||
HKDF RFC5869 Test Vector #1 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA256:"f0f1f2f3f4f5f6f7f8f9":"077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5":"3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_expand:6:"f0f1f2f3f4f5f6f7f8f9":"077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5":"3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865"
|
||||
|
||||
HKDF RFC5869 Test Vector #2 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA256:"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244":"b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_expand:6:"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244":"b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87"
|
||||
|
||||
HKDF RFC5869 Test Vector #3 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA256:"":"19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04":"8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8"
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
test_hkdf_expand:6:"":"19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04":"8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8"
|
||||
|
||||
HKDF RFC5869 Test Vector #4 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA1:"f0f1f2f3f4f5f6f7f8f9":"9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243":"085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_expand:4:"f0f1f2f3f4f5f6f7f8f9":"9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243":"085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896"
|
||||
|
||||
HKDF RFC5869 Test Vector #5 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA1:"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"8adae09a2a307059478d309b26c4115a224cfaf6":"0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_expand:4:"b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff":"8adae09a2a307059478d309b26c4115a224cfaf6":"0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4"
|
||||
|
||||
HKDF RFC5869 Test Vector #6 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA1:"":"da8c8a73c7fa77288ec6f5e7c297786aa0d32d01":"0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_expand:4:"":"da8c8a73c7fa77288ec6f5e7c297786aa0d32d01":"0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918"
|
||||
|
||||
HKDF RFC5869 Test Vector #7 Expand
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
test_hkdf_expand:MBEDTLS_MD_SHA1:"":"2adccada18779e7c2077ad2eb19d3f3e731385dd":"2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48"
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
test_hkdf_expand:4:"":"2adccada18779e7c2077ad2eb19d3f3e731385dd":"2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/hkdf.h"
|
||||
#include "md_wrap.h"
|
||||
#include "mbedtls/md_internal.h"
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
@@ -9,95 +9,98 @@
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_hkdf(int md_alg, data_t *ikm, data_t *salt, data_t *info,
|
||||
data_t *expected_okm)
|
||||
void test_hkdf( int md_alg, data_t *ikm, data_t *salt, data_t *info,
|
||||
data_t *expected_okm )
|
||||
{
|
||||
int ret;
|
||||
unsigned char okm[128] = { '\0' };
|
||||
|
||||
MD_PSA_INIT();
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md != NULL );
|
||||
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md != NULL);
|
||||
TEST_ASSERT( expected_okm->len <= sizeof( okm ) );
|
||||
|
||||
TEST_ASSERT(expected_okm->len <= sizeof(okm));
|
||||
ret = mbedtls_hkdf( md, salt->x, salt->len, ikm->x, ikm->len,
|
||||
info->x, info->len, okm, expected_okm->len );
|
||||
TEST_ASSERT( ret == 0 );
|
||||
|
||||
ret = mbedtls_hkdf(md, salt->x, salt->len, ikm->x, ikm->len,
|
||||
info->x, info->len, okm, expected_okm->len);
|
||||
TEST_ASSERT(ret == 0);
|
||||
|
||||
TEST_MEMORY_COMPARE(okm, expected_okm->len,
|
||||
expected_okm->x, expected_okm->len);
|
||||
|
||||
exit:
|
||||
MD_PSA_DONE();
|
||||
ASSERT_COMPARE( okm , expected_okm->len,
|
||||
expected_okm->x, expected_okm->len );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_hkdf_extract(int md_alg,
|
||||
data_t *ikm,
|
||||
data_t *salt,
|
||||
data_t *prk)
|
||||
void test_hkdf_extract( int md_alg, char *hex_ikm_string,
|
||||
char *hex_salt_string, char *hex_prk_string )
|
||||
{
|
||||
int ret;
|
||||
unsigned char *ikm = NULL;
|
||||
unsigned char *salt = NULL;
|
||||
unsigned char *prk = NULL;
|
||||
unsigned char *output_prk = NULL;
|
||||
size_t output_prk_len;
|
||||
size_t ikm_len, salt_len, prk_len, output_prk_len;
|
||||
|
||||
MD_PSA_INIT();
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md != NULL );
|
||||
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md != NULL);
|
||||
output_prk_len = mbedtls_md_get_size( md );
|
||||
output_prk = mbedtls_calloc( 1, output_prk_len );
|
||||
|
||||
output_prk_len = mbedtls_md_get_size(md);
|
||||
TEST_CALLOC(output_prk, output_prk_len);
|
||||
ikm = unhexify_alloc( hex_ikm_string, &ikm_len );
|
||||
salt = unhexify_alloc( hex_salt_string, &salt_len );
|
||||
prk = unhexify_alloc( hex_prk_string, &prk_len );
|
||||
|
||||
ret = mbedtls_hkdf_extract(md, salt->x, salt->len,
|
||||
ikm->x, ikm->len, output_prk);
|
||||
TEST_ASSERT(ret == 0);
|
||||
ret = mbedtls_hkdf_extract( md, salt, salt_len, ikm, ikm_len, output_prk );
|
||||
TEST_ASSERT( ret == 0 );
|
||||
|
||||
TEST_MEMORY_COMPARE(output_prk, output_prk_len, prk->x, prk->len);
|
||||
ASSERT_COMPARE( output_prk, output_prk_len, prk, prk_len );
|
||||
|
||||
exit:
|
||||
mbedtls_free(ikm);
|
||||
mbedtls_free(salt);
|
||||
mbedtls_free(prk);
|
||||
mbedtls_free(output_prk);
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_hkdf_expand(int md_alg,
|
||||
data_t *info,
|
||||
data_t *prk,
|
||||
data_t *okm)
|
||||
void test_hkdf_expand( int md_alg, char *hex_info_string,
|
||||
char *hex_prk_string, char *hex_okm_string )
|
||||
{
|
||||
enum { OKM_LEN = 1024 };
|
||||
int ret;
|
||||
unsigned char *info = NULL;
|
||||
unsigned char *prk = NULL;
|
||||
unsigned char *okm = NULL;
|
||||
unsigned char *output_okm = NULL;
|
||||
size_t info_len, prk_len, okm_len;
|
||||
|
||||
MD_PSA_INIT();
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md != NULL );
|
||||
|
||||
const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md != NULL);
|
||||
output_okm = mbedtls_calloc( OKM_LEN, 1 );
|
||||
|
||||
TEST_CALLOC(output_okm, OKM_LEN);
|
||||
prk = unhexify_alloc( hex_prk_string, &prk_len );
|
||||
info = unhexify_alloc( hex_info_string, &info_len );
|
||||
okm = unhexify_alloc( hex_okm_string, &okm_len );
|
||||
TEST_ASSERT( prk_len == mbedtls_md_get_size( md ) );
|
||||
TEST_ASSERT( okm_len < OKM_LEN );
|
||||
|
||||
TEST_ASSERT(prk->len == mbedtls_md_get_size(md));
|
||||
TEST_ASSERT(okm->len < OKM_LEN);
|
||||
|
||||
ret = mbedtls_hkdf_expand(md, prk->x, prk->len,
|
||||
info->x, info->len,
|
||||
output_okm, OKM_LEN);
|
||||
TEST_ASSERT(ret == 0);
|
||||
TEST_MEMORY_COMPARE(output_okm, okm->len, okm->x, okm->len);
|
||||
ret = mbedtls_hkdf_expand( md, prk, prk_len, info, info_len,
|
||||
output_okm, OKM_LEN );
|
||||
TEST_ASSERT( ret == 0 );
|
||||
ASSERT_COMPARE( output_okm, okm_len, okm, okm_len );
|
||||
|
||||
exit:
|
||||
mbedtls_free(info);
|
||||
mbedtls_free(prk);
|
||||
mbedtls_free(okm);
|
||||
mbedtls_free(output_okm);
|
||||
MD_PSA_DONE();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_hkdf_extract_ret(int hash_len, int ret)
|
||||
void test_hkdf_extract_ret( int hash_len, int ret )
|
||||
{
|
||||
int output_ret;
|
||||
unsigned char *salt = NULL;
|
||||
@@ -106,17 +109,17 @@ void test_hkdf_extract_ret(int hash_len, int ret)
|
||||
size_t salt_len, ikm_len;
|
||||
struct mbedtls_md_info_t fake_md_info;
|
||||
|
||||
memset(&fake_md_info, 0, sizeof(fake_md_info));
|
||||
memset( &fake_md_info, 0, sizeof( fake_md_info ) );
|
||||
fake_md_info.type = MBEDTLS_MD_NONE;
|
||||
fake_md_info.size = hash_len;
|
||||
|
||||
TEST_CALLOC(prk, MBEDTLS_MD_MAX_SIZE);
|
||||
prk = mbedtls_calloc( MBEDTLS_MD_MAX_SIZE, 1 );
|
||||
salt_len = 0;
|
||||
ikm_len = 0;
|
||||
|
||||
output_ret = mbedtls_hkdf_extract(&fake_md_info, salt, salt_len,
|
||||
ikm, ikm_len, prk);
|
||||
TEST_ASSERT(output_ret == ret);
|
||||
output_ret = mbedtls_hkdf_extract( &fake_md_info, salt, salt_len,
|
||||
ikm, ikm_len, prk );
|
||||
TEST_ASSERT( output_ret == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_free(prk);
|
||||
@@ -124,7 +127,7 @@ exit:
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void test_hkdf_expand_ret(int hash_len, int prk_len, int okm_len, int ret)
|
||||
void test_hkdf_expand_ret( int hash_len, int prk_len, int okm_len, int ret )
|
||||
{
|
||||
int output_ret;
|
||||
unsigned char *info = NULL;
|
||||
@@ -133,23 +136,21 @@ void test_hkdf_expand_ret(int hash_len, int prk_len, int okm_len, int ret)
|
||||
size_t info_len;
|
||||
struct mbedtls_md_info_t fake_md_info;
|
||||
|
||||
memset(&fake_md_info, 0, sizeof(fake_md_info));
|
||||
memset( &fake_md_info, 0, sizeof( fake_md_info ) );
|
||||
fake_md_info.type = MBEDTLS_MD_NONE;
|
||||
fake_md_info.size = hash_len;
|
||||
|
||||
info_len = 0;
|
||||
|
||||
if (prk_len > 0) {
|
||||
TEST_CALLOC(prk, prk_len);
|
||||
}
|
||||
if (prk_len > 0)
|
||||
prk = mbedtls_calloc( prk_len, 1 );
|
||||
|
||||
if (okm_len > 0) {
|
||||
TEST_CALLOC(okm, okm_len);
|
||||
}
|
||||
if (okm_len > 0)
|
||||
okm = mbedtls_calloc( okm_len, 1 );
|
||||
|
||||
output_ret = mbedtls_hkdf_expand(&fake_md_info, prk, prk_len,
|
||||
info, info_len, okm, okm_len);
|
||||
TEST_ASSERT(output_ret == ret);
|
||||
output_ret = mbedtls_hkdf_expand( &fake_md_info, prk, prk_len,
|
||||
info, info_len, okm, okm_len );
|
||||
TEST_ASSERT( output_ret == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_free(prk);
|
||||
|
||||
@@ -2,25 +2,25 @@
|
||||
#include "mbedtls/hmac_drbg.h"
|
||||
#include "string.h"
|
||||
|
||||
typedef struct {
|
||||
typedef struct
|
||||
{
|
||||
unsigned char *p;
|
||||
size_t len;
|
||||
} entropy_ctx;
|
||||
|
||||
static int mbedtls_test_entropy_func(void *data, unsigned char *buf, size_t len)
|
||||
static int mbedtls_test_entropy_func( void *data, unsigned char *buf, size_t len )
|
||||
{
|
||||
entropy_ctx *ctx = (entropy_ctx *) data;
|
||||
|
||||
if (len > ctx->len) {
|
||||
return -1;
|
||||
}
|
||||
if( len > ctx->len )
|
||||
return( -1 );
|
||||
|
||||
memcpy(buf, ctx->p, len);
|
||||
memcpy( buf, ctx->p, len );
|
||||
|
||||
ctx->p += len;
|
||||
ctx->len -= len;
|
||||
|
||||
return 0;
|
||||
return( 0 );
|
||||
}
|
||||
/* END_HEADER */
|
||||
|
||||
@@ -30,128 +30,113 @@ static int mbedtls_test_entropy_func(void *data, unsigned char *buf, size_t len)
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac_drbg_entropy_usage(int md_alg)
|
||||
void hmac_drbg_entropy_usage( int md_alg )
|
||||
{
|
||||
unsigned char out[16];
|
||||
unsigned char buf[1024];
|
||||
const mbedtls_md_info_t *md_info;
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
entropy_ctx entropy;
|
||||
size_t i, reps = 10;
|
||||
size_t default_entropy_len;
|
||||
size_t expected_consumed_entropy = 0;
|
||||
size_t last_len, i, reps = 10;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
memset( out, 0, sizeof( out ) );
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
memset(buf, 0, sizeof(buf));
|
||||
memset(out, 0, sizeof(out));
|
||||
|
||||
entropy.len = sizeof(buf);
|
||||
entropy.len = sizeof( buf );
|
||||
entropy.p = buf;
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
if (mbedtls_md_get_size(md_info) <= 20) {
|
||||
default_entropy_len = 16;
|
||||
} else if (mbedtls_md_get_size(md_info) <= 28) {
|
||||
default_entropy_len = 24;
|
||||
} else {
|
||||
default_entropy_len = 32;
|
||||
}
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
/* Set reseed interval before seed */
|
||||
mbedtls_hmac_drbg_set_reseed_interval(&ctx, 2 * reps);
|
||||
mbedtls_hmac_drbg_set_reseed_interval( &ctx, 2 * reps );
|
||||
|
||||
/* Init must use entropy */
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &entropy,
|
||||
NULL, 0) == 0);
|
||||
/* default_entropy_len of entropy, plus half as much for the nonce */
|
||||
expected_consumed_entropy += default_entropy_len * 3 / 2;
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
last_len = entropy.len;
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &entropy,
|
||||
NULL, 0 ) == 0 );
|
||||
TEST_ASSERT( entropy.len < last_len );
|
||||
|
||||
/* By default, PR is off, and reseed interval was set to
|
||||
* 2 * reps so the next few calls should not use entropy */
|
||||
for (i = 0; i < reps; i++) {
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out) - 4) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, out, sizeof(out) - 4,
|
||||
buf, 16) == 0);
|
||||
last_len = entropy.len;
|
||||
for( i = 0; i < reps; i++ )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) - 4 ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, out, sizeof( out ) - 4,
|
||||
buf, 16 ) == 0 );
|
||||
}
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
TEST_ASSERT( entropy.len == last_len );
|
||||
|
||||
/* While at it, make sure we didn't write past the requested length */
|
||||
TEST_ASSERT(out[sizeof(out) - 4] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 3] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 2] == 0);
|
||||
TEST_ASSERT(out[sizeof(out) - 1] == 0);
|
||||
TEST_ASSERT( out[sizeof( out ) - 4] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 3] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 2] == 0 );
|
||||
TEST_ASSERT( out[sizeof( out ) - 1] == 0 );
|
||||
|
||||
/* There have been 2 * reps calls to random. The next call should reseed */
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_consumed_entropy += default_entropy_len;
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( entropy.len < last_len );
|
||||
|
||||
/* Set reseed interval after seed */
|
||||
mbedtls_hmac_drbg_set_reseed_interval(&ctx, 4 * reps + 1);
|
||||
mbedtls_hmac_drbg_set_reseed_interval( &ctx, 4 * reps + 1);
|
||||
|
||||
/* The new few calls should not reseed */
|
||||
for (i = 0; i < (2 * reps); i++) {
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, out, sizeof(out),
|
||||
buf, 16) == 0);
|
||||
last_len = entropy.len;
|
||||
for( i = 0; i < (2 * reps); i++ )
|
||||
{
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, out, sizeof( out ) ,
|
||||
buf, 16 ) == 0 );
|
||||
}
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
TEST_ASSERT( entropy.len == last_len );
|
||||
|
||||
/* Now enable PR, so the next few calls should all reseed */
|
||||
mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_consumed_entropy += default_entropy_len;
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( entropy.len < last_len );
|
||||
|
||||
/* Finally, check setting entropy_len */
|
||||
mbedtls_hmac_drbg_set_entropy_len(&ctx, 42);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_consumed_entropy += 42;
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
mbedtls_hmac_drbg_set_entropy_len( &ctx, 42 );
|
||||
last_len = entropy.len;
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( (int) last_len - entropy.len == 42 );
|
||||
|
||||
mbedtls_hmac_drbg_set_entropy_len(&ctx, 13);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
expected_consumed_entropy += 13;
|
||||
TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy);
|
||||
mbedtls_hmac_drbg_set_entropy_len( &ctx, 13 );
|
||||
last_len = entropy.len;
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
TEST_ASSERT( (int) last_len - entropy.len == 13 );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */
|
||||
void hmac_drbg_seed_file(int md_alg, char *path, int ret)
|
||||
void hmac_drbg_seed_file( int md_alg, char * path, int ret )
|
||||
{
|
||||
const mbedtls_md_info_t *md_info;
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, rnd_std_rand, NULL,
|
||||
NULL, 0 ) == 0 );
|
||||
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info,
|
||||
mbedtls_test_rnd_std_rand, NULL,
|
||||
NULL, 0) == 0);
|
||||
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_write_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_update_seed_file(&ctx, path) == ret);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_write_seed_file( &ctx, path ) == ret );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_update_seed_file( &ctx, path ) == ret );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac_drbg_buf(int md_alg)
|
||||
void hmac_drbg_buf( int md_alg )
|
||||
{
|
||||
unsigned char out[16];
|
||||
unsigned char buf[100];
|
||||
@@ -159,34 +144,30 @@ void hmac_drbg_buf(int md_alg)
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
size_t i;
|
||||
|
||||
MD_PSA_INIT();
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
memset( buf, 0, sizeof( buf ) );
|
||||
memset( out, 0, sizeof( out ) );
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
memset(buf, 0, sizeof(buf));
|
||||
memset(out, 0, sizeof(out));
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed_buf(&ctx, md_info, buf, sizeof(buf)) == 0);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed_buf( &ctx, md_info, buf, sizeof( buf ) ) == 0 );
|
||||
|
||||
/* Make sure it never tries to reseed (would segfault otherwise) */
|
||||
mbedtls_hmac_drbg_set_reseed_interval(&ctx, 3);
|
||||
mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON);
|
||||
mbedtls_hmac_drbg_set_reseed_interval( &ctx, 3 );
|
||||
mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON );
|
||||
|
||||
for (i = 0; i < 30; i++) {
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0);
|
||||
}
|
||||
for( i = 0; i < 30; i++ )
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac_drbg_no_reseed(int md_alg, data_t *entropy,
|
||||
data_t *custom, data_t *add1,
|
||||
data_t *add2, data_t *output)
|
||||
void hmac_drbg_no_reseed( int md_alg, data_t * entropy,
|
||||
data_t * custom, data_t * add1,
|
||||
data_t * add2, data_t * output )
|
||||
{
|
||||
unsigned char data[1024];
|
||||
unsigned char my_output[512];
|
||||
@@ -194,125 +175,111 @@ void hmac_drbg_no_reseed(int md_alg, data_t *entropy,
|
||||
const mbedtls_md_info_t *md_info;
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
|
||||
p_entropy.p = entropy->x;
|
||||
p_entropy.len = entropy->len;
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
/* Test the simplified buffer-based variant */
|
||||
memcpy(data, entropy->x, p_entropy.len);
|
||||
memcpy(data + p_entropy.len, custom->x, custom->len);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed_buf(&ctx, md_info,
|
||||
data, p_entropy.len + custom->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add1->x, add1->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add2->x, add2->len) == 0);
|
||||
memcpy( data, entropy->x, p_entropy.len );
|
||||
memcpy( data + p_entropy.len, custom->x, custom->len );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed_buf( &ctx, md_info,
|
||||
data, p_entropy.len + custom->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add1->x, add1->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add2->x, add2->len ) == 0 );
|
||||
|
||||
/* Reset context for second run */
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
|
||||
TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0);
|
||||
TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 );
|
||||
|
||||
/* And now the normal entropy-based variant */
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add1->x, add1->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add2->x, add2->len) == 0);
|
||||
TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add1->x, add1->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add2->x, add2->len ) == 0 );
|
||||
TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac_drbg_nopr(int md_alg, data_t *entropy, data_t *custom,
|
||||
data_t *add1, data_t *add2, data_t *add3,
|
||||
data_t *output)
|
||||
void hmac_drbg_nopr( int md_alg, data_t * entropy, data_t * custom,
|
||||
data_t * add1, data_t * add2, data_t * add3,
|
||||
data_t * output )
|
||||
{
|
||||
unsigned char my_output[512];
|
||||
entropy_ctx p_entropy;
|
||||
const mbedtls_md_info_t *md_info;
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
|
||||
p_entropy.p = entropy->x;
|
||||
p_entropy.len = entropy->len;
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_reseed(&ctx, add1->x, add1->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add2->x, add2->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add3->x, add3->len) == 0);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_reseed( &ctx, add1->x, add1->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add2->x, add2->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add3->x, add3->len ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0);
|
||||
TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void hmac_drbg_pr(int md_alg, data_t *entropy, data_t *custom,
|
||||
data_t *add1, data_t *add2, data_t *output)
|
||||
void hmac_drbg_pr( int md_alg, data_t * entropy, data_t * custom,
|
||||
data_t * add1, data_t * add2, data_t * output )
|
||||
{
|
||||
unsigned char my_output[512];
|
||||
entropy_ctx p_entropy;
|
||||
const mbedtls_md_info_t *md_info;
|
||||
mbedtls_hmac_drbg_context ctx;
|
||||
|
||||
MD_PSA_INIT();
|
||||
|
||||
mbedtls_hmac_drbg_init(&ctx);
|
||||
mbedtls_hmac_drbg_init( &ctx );
|
||||
|
||||
p_entropy.p = entropy->x;
|
||||
p_entropy.len = entropy->len;
|
||||
|
||||
md_info = mbedtls_md_info_from_type(md_alg);
|
||||
TEST_ASSERT(md_info != NULL);
|
||||
md_info = mbedtls_md_info_from_type( md_alg );
|
||||
TEST_ASSERT( md_info != NULL );
|
||||
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len) == 0);
|
||||
mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add1->x, add1->len) == 0);
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len,
|
||||
add2->x, add2->len) == 0);
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy,
|
||||
custom->x, custom->len ) == 0 );
|
||||
mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add1->x, add1->len ) == 0 );
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len,
|
||||
add2->x, add2->len ) == 0 );
|
||||
|
||||
TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0);
|
||||
TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 );
|
||||
|
||||
exit:
|
||||
mbedtls_hmac_drbg_free(&ctx);
|
||||
MD_PSA_DONE();
|
||||
mbedtls_hmac_drbg_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
|
||||
void hmac_drbg_selftest()
|
||||
void hmac_drbg_selftest( )
|
||||
{
|
||||
MD_PSA_INIT();
|
||||
|
||||
TEST_ASSERT(mbedtls_hmac_drbg_self_test(1) == 0);
|
||||
|
||||
exit:
|
||||
MD_PSA_DONE();
|
||||
TEST_ASSERT( mbedtls_hmac_drbg_self_test( 1 ) == 0 );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
@@ -1,146 +1,82 @@
|
||||
HMAC_DRBG entropy usage SHA-1
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA1
|
||||
|
||||
HMAC_DRBG entropy usage SHA-224
|
||||
depends_on:MBEDTLS_MD_CAN_SHA224
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA224
|
||||
|
||||
HMAC_DRBG entropy usage SHA-256
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA256
|
||||
|
||||
HMAC_DRBG entropy usage SHA-384
|
||||
depends_on:MBEDTLS_MD_CAN_SHA384
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA384
|
||||
|
||||
HMAC_DRBG entropy usage SHA-512
|
||||
depends_on:MBEDTLS_MD_CAN_SHA512
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA512
|
||||
|
||||
HMAC_DRBG entropy usage SHA3-224
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_224
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA3_224
|
||||
|
||||
HMAC_DRBG entropy usage SHA3-256
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_256
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA3_256
|
||||
|
||||
HMAC_DRBG entropy usage SHA3-384
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_384
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA3_384
|
||||
|
||||
HMAC_DRBG entropy usage SHA3-512
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_512
|
||||
hmac_drbg_entropy_usage:MBEDTLS_MD_SHA3_512
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-1 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
HMAC_DRBG write/update seed file SHA-1
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA1:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-1 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
HMAC_DRBG write/update seed file SHA-1
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA1:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-224 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA224
|
||||
HMAC_DRBG write/update seed file SHA-224
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA224:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-224 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA224
|
||||
HMAC_DRBG write/update seed file SHA-224
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA224:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-256 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
HMAC_DRBG write/update seed file SHA-256
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA256:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-256 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
HMAC_DRBG write/update seed file SHA-256
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA256:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-384 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA384
|
||||
HMAC_DRBG write/update seed file SHA-384
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA384:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-384 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA384
|
||||
HMAC_DRBG write/update seed file SHA-384
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA384:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-512 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA512
|
||||
HMAC_DRBG write/update seed file SHA-512
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA512:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA-512 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA512
|
||||
HMAC_DRBG write/update seed file SHA-512
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA512:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-224 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_224
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_224:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-224 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_224
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_224:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-256 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_256
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_256:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-256 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_256
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_256:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-384 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_384
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_384:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-384 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_384
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_384:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-512 [#1]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_512
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_512:"data_files/hmac_drbg_seed":0
|
||||
|
||||
HMAC_DRBG write/update seed file SHA3-512 [#2]
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_512
|
||||
hmac_drbg_seed_file:MBEDTLS_MD_SHA3_512:"no_such_dir/file":MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR
|
||||
|
||||
HMAC_DRBG from buffer SHA-1
|
||||
depends_on:MBEDTLS_MD_CAN_SHA1
|
||||
depends_on:MBEDTLS_SHA1_C
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA1
|
||||
|
||||
HMAC_DRBG from buffer SHA-224
|
||||
depends_on:MBEDTLS_MD_CAN_SHA224
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA224
|
||||
|
||||
HMAC_DRBG from buffer SHA-256
|
||||
depends_on:MBEDTLS_MD_CAN_SHA256
|
||||
depends_on:MBEDTLS_SHA256_C
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA256
|
||||
|
||||
HMAC_DRBG from buffer SHA-384
|
||||
depends_on:MBEDTLS_MD_CAN_SHA384
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA384
|
||||
|
||||
HMAC_DRBG from buffer SHA-512
|
||||
depends_on:MBEDTLS_MD_CAN_SHA512
|
||||
depends_on:MBEDTLS_SHA512_C
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA512
|
||||
|
||||
HMAC_DRBG from buffer SHA3-224
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_224
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA3_224
|
||||
|
||||
HMAC_DRBG from buffer SHA3-256
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_256
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA3_256
|
||||
|
||||
HMAC_DRBG from buffer SHA3-384
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_384
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA3_384
|
||||
|
||||
HMAC_DRBG from buffer SHA3-512
|
||||
depends_on:MBEDTLS_MD_CAN_SHA3_512
|
||||
hmac_drbg_buf:MBEDTLS_MD_SHA3_512
|
||||
|
||||
HMAC_DRBG self test
|
||||
hmac_drbg_selftest:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user