Отладка Ошибка проверки подписи - PullRequest
0 голосов
/ 02 декабря 2009

Использование 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. Поскольку он работает с одним набором ключей, а не с другим, я предполагаю, что это должна быть ключевая проблема какого-то рода.

Любые дополнительные мысли о том, как я могу проверить правильность пары ключей? Я не хочу убивать себя, ища ошибки кодирования, просто чтобы выяснить, что ключи были источником проблемы.

Я рад поделиться источником по запросу - я просто не хочу запутывать проблему до тех пор, пока она не понадобится.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2009

Оказалось, совершенно не связаны. Процедура БД повреждала значение ключа.

0 голосов
/ 02 декабря 2009

Формат ключа по умолчанию - PEM. Вам нужно добавить этот параметр, чтобы использовать DER,

  -keyform DER
...