mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-03 11:54:02 +00:00
test: add support for DER format in pkwrite tests
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
This commit is contained in:
parent
8959095e87
commit
c60bc5e700
@ -3,11 +3,12 @@
|
|||||||
#include "mbedtls/pem.h"
|
#include "mbedtls/pem.h"
|
||||||
#include "mbedtls/oid.h"
|
#include "mbedtls/oid.h"
|
||||||
|
|
||||||
static void pk_write_check_common(char *key_file, int is_public_key)
|
static void pk_write_check_common(char *key_file, int is_public_key, int is_der)
|
||||||
{
|
{
|
||||||
mbedtls_pk_context key;
|
mbedtls_pk_context key;
|
||||||
unsigned char *buf = NULL;
|
unsigned char *buf = NULL;
|
||||||
unsigned char *check_buf = NULL;
|
unsigned char *check_buf = NULL;
|
||||||
|
unsigned char *start_buf;
|
||||||
size_t check_buf_len;
|
size_t check_buf_len;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -21,17 +22,30 @@ static void pk_write_check_common(char *key_file, int is_public_key)
|
|||||||
mbedtls_pk_init(&key);
|
mbedtls_pk_init(&key);
|
||||||
if (is_public_key) {
|
if (is_public_key) {
|
||||||
TEST_ASSERT(mbedtls_pk_parse_public_keyfile(&key, key_file) == 0);
|
TEST_ASSERT(mbedtls_pk_parse_public_keyfile(&key, key_file) == 0);
|
||||||
ret = mbedtls_pk_write_pubkey_pem(&key, buf, check_buf_len);
|
if (is_der) {
|
||||||
|
ret = mbedtls_pk_write_pubkey_der(&key, buf, check_buf_len);
|
||||||
|
} else {
|
||||||
|
ret = mbedtls_pk_write_pubkey_pem(&key, buf, check_buf_len);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
TEST_ASSERT(mbedtls_pk_parse_keyfile(&key, key_file, NULL,
|
TEST_ASSERT(mbedtls_pk_parse_keyfile(&key, key_file, NULL,
|
||||||
mbedtls_test_rnd_std_rand, NULL) == 0);
|
mbedtls_test_rnd_std_rand, NULL) == 0);
|
||||||
ret = mbedtls_pk_write_key_pem(&key, buf, check_buf_len);
|
if (is_der) {
|
||||||
|
ret = mbedtls_pk_write_key_der(&key, buf, check_buf_len);
|
||||||
|
} else {
|
||||||
|
ret = mbedtls_pk_write_key_pem(&key, buf, check_buf_len);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
TEST_ASSERT(ret == 0);
|
|
||||||
|
|
||||||
/* check_buf_len also includes the NULL termination char */
|
if (is_der) {
|
||||||
TEST_EQUAL(check_buf_len - 1, strlen((char *) buf));
|
TEST_ASSERT(ret > 0);
|
||||||
TEST_ASSERT(memcmp((char *) buf, (char *) check_buf, check_buf_len) == 0);
|
start_buf = buf + check_buf_len - ret;
|
||||||
|
} else {
|
||||||
|
TEST_ASSERT(ret == 0);
|
||||||
|
start_buf = buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_ASSERT(memcmp((char *) start_buf, (char *) check_buf, check_buf_len) == 0);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
mbedtls_free(buf);
|
mbedtls_free(buf);
|
||||||
@ -46,17 +60,17 @@ exit:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */
|
/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */
|
||||||
void pk_write_pubkey_check(char *key_file)
|
void pk_write_pubkey_check(char *key_file, int is_der)
|
||||||
{
|
{
|
||||||
pk_write_check_common(key_file, 1);
|
pk_write_check_common(key_file, 1, is_der);
|
||||||
goto exit; /* make the compiler happy */
|
goto exit; /* make the compiler happy */
|
||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
|
||||||
/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */
|
/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */
|
||||||
void pk_write_key_check(char *key_file)
|
void pk_write_key_check(char *key_file, int is_der)
|
||||||
{
|
{
|
||||||
pk_write_check_common(key_file, 0);
|
pk_write_check_common(key_file, 0, is_der);
|
||||||
goto exit; /* make the compiler happy */
|
goto exit; /* make the compiler happy */
|
||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user