Add PKCS12 tests
Only regression tests for the empty password bugs for now. Further tests will follow later. Signed-off-by: Paul Elliott <paul.elliott@arm.com>
This commit is contained in:
parent
4086bdbe37
commit
d663543004
3 changed files with 106 additions and 0 deletions
|
@ -216,6 +216,7 @@ add_test_suite(pk)
|
|||
add_test_suite(pkcs1_v15)
|
||||
add_test_suite(pkcs1_v21)
|
||||
add_test_suite(pkcs5)
|
||||
add_test_suite(pkcs12)
|
||||
add_test_suite(pkparse)
|
||||
add_test_suite(pkwrite)
|
||||
add_test_suite(poly1305)
|
||||
|
|
33
tests/suites/test_suite_pkcs12.data
Normal file
33
tests/suites/test_suite_pkcs12.data
Normal file
|
@ -0,0 +1,33 @@
|
|||
Pkcs12 derive key : Zero length password and hash
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"":1:"":1:3:0
|
||||
|
||||
Pkcs12 derive key: NULL password and hash
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"":0:"":0:3:0
|
||||
|
||||
Pkcs12 derive key: Zero length password
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"":1:"0123456789abcdef":1:3:0
|
||||
|
||||
Pkcs12 derive key: NULL password
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"":0:"0123456789abcdef":1:3:0
|
||||
|
||||
Pkcs12 derive key: Invalid length NULL password
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"0123456789abcdef":2:"0123456789abcdef":1:3:MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA
|
||||
|
||||
Pkcs12 derive key: Zero length hash
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"0123456789abcdef":1:"":1:3:0
|
||||
|
||||
Pkcs12 derive key: NULL hash
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"0123456789abcdef":1:"":0:3:0
|
||||
|
||||
Pkcs12 derive key: Invalid length NULL hash
|
||||
depends_on:MBEDTLS_ASN1_PARSE_C:MBEDTLS_MD5_C
|
||||
pkcs12_derive_key_test:MBEDTLS_MD_MD5:48:"0123456789abcdef":1:"0123456789abcdef":2:3:MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA
|
||||
|
||||
|
72
tests/suites/test_suite_pkcs12.function
Normal file
72
tests/suites/test_suite_pkcs12.function
Normal file
|
@ -0,0 +1,72 @@
|
|||
/* BEGIN_HEADER */
|
||||
#include "mbedtls/pkcs12.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
USE_NULL_INPUT = 0,
|
||||
USE_GIVEN_INPUT = 1,
|
||||
USE_NULL_INPUT_WITH_SIZE = 2,
|
||||
} input_usage_method_t;
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* depends_on:MBEDTLS_ASN1_PARSE_C
|
||||
* END_DEPENDENCIES
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void pkcs12_derive_key_test( int md_type, int key_size_arg,
|
||||
data_t *password_arg, int password_usage,
|
||||
data_t *salt_arg, int salt_usage,
|
||||
int iterations, int expected_status )
|
||||
|
||||
{
|
||||
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||
unsigned char *output_data = NULL;
|
||||
|
||||
unsigned char *password = NULL;
|
||||
size_t password_len = 0;
|
||||
unsigned char *salt = NULL;
|
||||
size_t salt_len = 0;
|
||||
size_t key_size = key_size_arg;
|
||||
|
||||
if( password_usage == USE_GIVEN_INPUT )
|
||||
{
|
||||
password = password_arg->x;
|
||||
password_len = password_arg->len;
|
||||
}
|
||||
else if( password_usage == USE_NULL_INPUT_WITH_SIZE )
|
||||
{
|
||||
password_len = password_arg->len;
|
||||
}
|
||||
|
||||
if( salt_usage == USE_GIVEN_INPUT )
|
||||
{
|
||||
salt = salt_arg->x;
|
||||
salt_len = salt_arg->len;
|
||||
}
|
||||
else if( salt_usage == USE_NULL_INPUT_WITH_SIZE )
|
||||
{
|
||||
salt_len = salt_arg->len;
|
||||
}
|
||||
|
||||
ASSERT_ALLOC( output_data, key_size );
|
||||
|
||||
ret = mbedtls_pkcs12_derivation( output_data,
|
||||
key_size,
|
||||
password,
|
||||
password_len,
|
||||
salt,
|
||||
salt_len,
|
||||
md_type,
|
||||
MBEDTLS_PKCS12_DERIVE_KEY,
|
||||
iterations );
|
||||
|
||||
TEST_EQUAL( ret, expected_status );
|
||||
|
||||
exit:
|
||||
mbedtls_free( output_data );
|
||||
|
||||
}
|
||||
/* END_CASE */
|
Loading…
Reference in a new issue