【发布时间】:2020-11-23 08:25:09
【问题描述】:
我只是使用secp256k1 C lib编写一个小测试程序,目标是生成各种随机ecdsa密钥对,通过使用secp256k1-zkp API,只需跟进tests.c中的一些示例。
然而,有点惊讶的是,我发现我无法获得不同的密钥对,每次运行测试程序时,我都会得到完全相同的私钥(之后是相同的公钥)。
这没有意义,但我不知道问题出在哪里,有人可以提供帮助和建议吗?
以下是我正在使用的示例代码:
random_scalar_order_test(&rand);
secp256k1_scalar_get_b32(privkey, &rand);
CHECK(secp256k1_ec_seckey_verify(ctx, privkey) == 1);
CHECK(secp256k1_ec_pubkey_create(ctx, pubkey, &pubkeylen,
privkey, (secp256k1_rand32() & 3) != 0) == 1);
编译后看,每次我运行测试,前两行代码总是提供完全相同的私钥,所以公钥也会固定。 是否有任何 rand seed API 可用于每次调用时生成不同的私钥?
【问题讨论】:
标签: private-key public-key ecdsa secp256k1