Мне нужно подписать 32-байтовое сообщение с помощью Ed25519PrivateKey. Подписанное сообщение проверяется встроенным контроллером. Поэтому мне нужно сопоставить реализацию этого контроллера. Требование состоит в том, что 32-байтовое сообщение должно иметь 64-байтовую подпись. Пока все хорошо, но встроенный контроллер хочет использовать pureEdDSA. Насколько я понял, pureEdDSA генерирует подпись без предварительного хеширования сообщения. Все реализации Bouncycastle, которые я смог найти, хешируют сообщение с помощью SHA-512 и впоследствии подписывают его.
Может ли кто-нибудь показать мне, как подписать 32-байтовое сообщение без предварительного хеширования?
Может ли кто-нибудь показать мне, как подписать 32-байтовое сообщение без предварительного хеширования?
p>
Сейчас у меня есть следующий код, который генерирует 64-байтовую подпись, но она отличается от той, которую ожидает контроллер:
val signatureProvider: Signature = Signature.getInstance("ed25519", "BC")
// Init the provider with the private key
signatureProvider.initSign(privateKey)
// Get the message as byteArray with 32 bytes
val message = byteArrayOf(...)
// Update the provider with the message
signatureProvider.update(message)
// Create signature, which is a 64Byte array
val signature = signatureProvider.sign()
Подробнее здесь: https://stackoverflow.com/questions/793 ... uncycastle
Одноразовое подписание pureEdDSA с Bouncycastle ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение