Files
kunlun/sp/boot/crypto/test/keypair.c
2024-09-28 14:24:04 +08:00

65 lines
2.2 KiB
C

#include <stdio.h>
#include <stdbool.h>
#include "iot_config.h"
#include "keypair.h"
#include "log.h"
static bool
_test_create_fail()
{
if (IOTELIC_OK == keypair_create(KEY_SLOT_0, KEYPAIR_INVALID)) {
LOG("Success result with wrong intup data. So, it's bug.");
return false;
}
return true;
}
static bool
_test_create_key(KEYSTORAGE_SLOT key_slot, KEYPAIR_TYPE keypair_type)
{
if (IOTELIC_OK != keypair_create(key_slot, keypair_type)) {
LOG("%s keypair can't be created", keypair_name(keypair_type));
return false;
} else {
LOG(" %s keypair created successfully", keypair_name(keypair_type));
}
return true;
}
static bool
_test_key_get_nist256r1_pass()
{
uint8_t public_key[128];
size_t public_key_sz;
KEYPAIR_TYPE type = KEYPAIR_INVALID;
if (IOTELIC_OK == keypair_create(KEY_SLOT_1, KEYPAIR_EC_SECP256R1)) {
return IOTELIC_OK == keypair_get_pubkey(KEY_SLOT_1, public_key, sizeof(public_key), &public_key_sz, &type)
&& public_key_sz
&& KEYPAIR_EC_SECP256R1 == type;
}
return false;
}
bool
test_keypair(void)
{
if (!_test_create_key(KEY_SLOT_1, KEYPAIR_EC_ED25519)) return false;
if (!_test_create_key(KEY_SLOT_2, KEYPAIR_EC_SECP192R1)) return false;
if (!_test_create_key(KEY_SLOT_3, KEYPAIR_EC_SECP256R1)) return false;
if (!_test_create_key(KEY_SLOT_0, KEYPAIR_EC_SECP384R1)) return false;
if (!_test_create_key(KEY_SLOT_1, KEYPAIR_EC_SECP521R1)) return false;
if (!_test_create_key(KEY_SLOT_2, KEYPAIR_EC_SECP192K1)) return false;
if (!_test_create_key(KEY_SLOT_3, KEYPAIR_EC_SECP224K1)) return false;
if (!_test_create_key(KEY_SLOT_0, KEYPAIR_EC_SECP256K1)) return false;
if (!_test_create_key(KEY_SLOT_1, KEYPAIR_EC_SECP256K1)) return false;
if (!_test_create_key(KEY_SLOT_2, KEYPAIR_EC_CURVE25519)) return false;
if (!_test_key_get_nist256r1_pass()) return false;
if (!_test_create_fail()) return false;
#if (TARGET_VERSION == TARGET_KUNLUN3)
if (!_test_create_key(KEY_SLOT_1, KEYPAIR_RSA_2048)) return false;
if (!_test_create_key(KEY_SLOT_2, KEYPAIR_RSA_3072)) return false;
if (!_test_create_key(KEY_SLOT_1, KEYPAIR_RSA_4096)) return false;
#endif
return true;
}