我正在尝试在 c# 中签署比特币交易。我有 2 位代码要完成。我可以使用 Bouncy castle 创建一组私钥和公钥。我可以将其转换为钱包导入格式。
我还可以从 ECDSA 公钥生成比特币地址。
但是,我想签署一笔交易,而我所拥有的只是我的私钥。我不想导入钱包并签名。那么如何生成公钥,只给私钥呢?
我找到了一个执行此操作的 javascript 方法:
ecparams.getG().multiply(this.priv).getEncoded();
我在 Bouncy Castle 中看到的唯一方法是生成一个随机对。
private static AsymmetricCipherKeyPair GenerateKeys(int keySize)
{
ECKeyPairGenerator gen = new ECKeyPairGenerator();
SecureRandom secureRandom = new SecureRandom();
KeyGenerationParameters keyGenParam = new KeyGenerationParameters(secureRandom, keySize);
gen.Init(keyGenParam);
return gen.GenerateKeyPair();
}