static int ecc_rng(uint8_t *dest, unsignedsize)
{
generateRandomNum((uint16_t)size, dest);
return0;
}
void test_key_gen(void)
{
uint8_t pri1[64];
uint8_t pub1[64];
uint8_t pri2[64];
uint8_t pub2[64];
uint8_t secret[32];
uint8_t is_success = 0;
memset(pri1, 0, sizeof(pri1));
memset(pub1, 0, sizeof(pub1));
memset(pri2, 0, sizeof(pri2));
memset(pub2, 0, sizeof(pub2));
memset(secret, 0, sizeof(secret));
swECC_set_rng(uecc_rng);
is_success = swECC_make_key(pub1, pri1, ECC_use_secp256r1);
printf("private key: %d\n", is_success);
array_printf(pri1, sizeof(pri1));
printf("public key:\n");
array_printf(pub1, sizeof(pub1));
is_success = swECC_make_key(pub2, pri2, ECC_use_secp256r1);
printf("private key 2: %d:\n", is_success);
array_printf(pri2, sizeof(pri2));
printf("public key 2:\n");
array_printf(pub2, sizeof(pub2));
is_success = swECC_shared_secret(pub2, pri1, secret, ECC_use_secp256r1);
printf("secret: %d\n");
array_printf(secret, sizeof(secret));
}
swECC_set_rng(uecc_rng);
这个里面直接设置你代码顶部的ecc_rng
@TL_bloom5 不好意思 这个是粘贴代码时,字符丢失了。 代码顶部的函数是 static int uecc_rng(uint8_t *dest, unsignedsize)。所以调用的函数是对的,但是也是一直输出0
swECC_set_rng(uecc_rng);
这个里面直接设置你代码顶部的ecc_rng
@TL_bloom5 不好意思 这个是粘贴代码时,字符丢失了。 代码顶部的函数是 static int uecc_rng(uint8_t *dest, unsignedsize)。所以调用的函数是对的,但是也是一直输出0
你再回去看看代码吧,swECC_make_key这个函数SDK里只有两个参数
@TL_bloom5 两个参数?
你用的是什么版本的SDK?
@TL_bloom5 这个版本的: