0

我正在尝试使用私钥签署消息。它运作良好,但签名以DER encoding. 我想要的是在BER encoding. 这是用于签名的方法:

public static byte[] sign(String plainText, String privateKeyPath) throws 
Exception {
    PrivateKey privateKey = getPrivate(privateKeyPath);
    System.out.println(privateKey.getAlgorithm());
    Signature ecdsaSign = Signature.getInstance("SHA256withECDSA", "BC");
    ecdsaSign.initSign(privateKey);
    ecdsaSign.update(plainText.getBytes("UTF-8"));
    byte[] signature = ecdsaSign.sign();
    return signature;
}

我在用着BouncyCastle library

4

1 回答 1

0

DER 编码是有效的 BER 编码

来自维基百科中的 X.690 摘要

DER(可区分编码规则)是 BER 的一种受限变体,用于为 ASN.1 描述的数据结构生成明确的传输语法。与 CER 一样,DER 编码是有效的 BER 编码。DER 与 BER 相同,除了一个发件人的选项外,其他所有选项都被删除。

于 2018-12-28T10:34:31.767 回答