Какой алгоритм подписи может обрабатывать ключи RSA? - PullRequest
0 голосов
/ 09 июня 2019

Я разработал приложение Java RMI.Я уже внедрил гибридное шифрование для всех коммуникаций между различными клиентами и серверами.Для моих асимметричных ключей я использую RSA.Сейчас я пытаюсь реализовать подписи, используя класс SignedObject .В качестве третьего параметра при создании нового SignedObject я должен передать алгоритм подписи.У меня вопрос, какой алгоритм подписи совместим для работы с моими уже реализованными ключами RSA?

В настоящее время я использую алгоритм подписи DSA по умолчанию, как указано в документации.Однако при запуске приложения я сталкиваюсь со следующей ошибкой:

TweetClient exception (publish): java.security.InvalidKeyException: No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl
java.security.InvalidKeyException: No installed provider supports this key: sun.security.rsa.RSAPrivateCrtKeyImpl
    at java.security.Signature$Delegate.chooseProvider(Signature.java:1138)
    at java.security.Signature$Delegate.engineInitSign(Signature.java:1179)
    at java.security.Signature.initSign(Signature.java:530)
    at java.security.SignedObject.sign(SignedObject.java:240)
    at java.security.SignedObject.<init>(SignedObject.java:160)
    at be.vub.parallellism.solutions.encryption.EncryptionUnit.encryptWithSecretKey(EncryptionUnit.java:80)
    at be.vub.parallellism.solutions.TweetClient.publish(TweetClient.java:137)
    at be.vub.parallellism.solutions.TweetClient.access$000(TweetClient.java:25)
    at be.vub.parallellism.solutions.TweetClient$1.run(TweetClient.java:126)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

1 Ответ

0 голосов
/ 09 июня 2019

Найден ответ, «SHA256 с RSA» можно использовать для ключей RSA размером 256 байт.

...