Итак, я пытаюсь сгенерировать подпись ECDSAwithHA256 в Java, и для этого я использую провайдера BouncyCastle. Кривая является secp521r1.
Для инициализации подписывающего лица, которым я пользуюсь:
public static final String SIGNATURE_ALGORITHEM = "SHA256withECDSA";
public void init() {
signer = Signature.getInstance(SIGNATURE_ALGORITHEM, BouncyCastleProvider.PROVIDER_NAME);
signer.initSign(privKey);
}
И для подписи я использую
public byte[] sign(byte[] bytes) throws SignatureException {
signer.update(bytes);
byte[] signature = signer.sign();
System.out.println("Signature lenght is " + signature.length);
return signature;
}
Единственная проблема сейчас заключается в том, что когда я запускаю код, я получаю подписи длиной от 137 до 139 байт. Но я ожидал получить всегда одинаковое количество байтов. Кто-нибудь знает, что я должен изменить, что у меня всегда одинаковая длина подписи, но все еще стандартизированный формат подписи?