#include #include #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; }