| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /* BEGIN_HEADER */
- #include "mbedtls/pkcs12.h"
- #include "common.h"
- #include "mbedtls/legacy_or_psa.h"
- typedef enum {
- USE_NULL_INPUT = 0,
- USE_GIVEN_INPUT = 1,
- } input_usage_method_t;
- /* END_HEADER */
- /* BEGIN_DEPENDENCIES
- * depends_on:MBEDTLS_PKCS12_C
- * END_DEPENDENCIES
- */
- /* BEGIN_CASE */
- void pkcs12_derive_key(int md_type, int key_size_arg,
- data_t *password_arg, int password_usage,
- data_t *salt_arg, int salt_usage,
- int iterations,
- data_t *expected_output, int expected_status)
- {
- 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;
- if (salt_usage == USE_GIVEN_INPUT) {
- salt = salt_arg->x;
- }
- salt_len = salt_arg->len;
- ASSERT_ALLOC(output_data, key_size);
- int 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);
- if (expected_status == 0) {
- ASSERT_COMPARE(expected_output->x, expected_output->len,
- output_data, key_size);
- }
- exit:
- mbedtls_free(output_data);
- }
- /* END_CASE */
|