如何从ECDSA签名中提取公钥

时间:2018-03-13 02:31:23

标签: java cryptography bouncycastle bitcoin

根据https://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-signature-work,  如果我有签名并且正在签名的消息,我应该能够恢复ECDSA公钥。有没有关于如何使用BouncyCastle和Java获取此信息的示例?如果没有,有人可以告诉我如何实现它的基础知识吗?

如果有帮助,这就是我签署消息的方式:

public static String signData(PrivateKey privateKey, String in) {
    Security.addProvider(new BouncyCastleProvider());
    String out;
    Signature sig;
    try {
        sig = Signature.getInstance("SHA256withECDSA","BC");
        sig.initSign(privateKey);
        byte[] inBytes = in.getBytes();
        sig.update(inBytes);
        byte[] sigFinal = sig.sign();
        out = getHex(sigFinal);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    return out;
}

我想我最大的问题是我不知道java Signatures是如何编码和输出的。如果有人能够阐明它,那将是值得赞赏的。

0 个答案:

没有答案