Есть ли способ установить формат подписи для ECDSA в кодировку BER в Java? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь подписать сообщение закрытым ключом.Работает хорошо, но подпись закодирована в 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

1 Ответ

0 голосов
/ 28 декабря 2018

DER-кодировка является действительной кодировкой BER

Из сводки X.690 в Википедии

DER (Distinguished Encoding Rules) является ограниченным вариантом BER длясоздание однозначного синтаксиса передачи для структур данных, описанных в ASN.1.Как и CER, кодировки DER являются действительными кодировками BER.DER - то же самое, что и BER, при этом удалены все параметры, кроме одного отправителя.

...