Использование Java 1.4.2 с установленными файлами политики неограниченной юрисдикции.
У меня есть класс, который успешно подписывает и проверяет. Однако теперь я изменил ключи, и внезапно проверка не удалась.
Ключи были сгенерированы с:
openssl genrsa -aes256 -out production_private.pem 2048
openssl pkcs8 -topk8 -nocrypt -in production_private.pem -outform der -out production_private.der
openssl rsa -in production_private.pem -pubout -outform DER -out production_public.der
Я сделал проверку, используя ключи PEM и openssl, используя:
openssl dgst -sha1 -sign production_private.pem -out test.txt.sha1 test.txt
Enter pass phrase for production_private.pem:
openssl dgst -sha1 -verify production_public.pem -signature test.txt.sha1 test.txt
Verified OK
Но не похоже, что вы можете сделать это с помощью клавиш DER.
Ошибок нет. Signature.verify просто возвращает false. Поскольку он работает с одним набором ключей, а не с другим, я предполагаю, что это должна быть ключевая проблема какого-то рода.
Любые дополнительные мысли о том, как я могу проверить правильность пары ключей? Я не хочу убивать себя, ища ошибки кодирования, просто чтобы выяснить, что ключи были источником проблемы.
Я рад поделиться источником по запросу - я просто не хочу запутывать проблему до тех пор, пока она не понадобится.