Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 703 раз в 664 постах
|
Передайте в getInstance значение signOid, для хеширования - аналогично можно извлечь oid алгоритма хеширования. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 21.09.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 9 раз
|
Автор: Евгений Афанасьев Передайте в getInstance значение signOid, для хеширования - аналогично можно извлечь oid алгоритма хеширования. getInstance принимает только строковые значения. если вызывать так: Signature.getInstance(info.signatureAlgorithm.algorithm.toString() ..., то получим ошибку: java.security.NoSuchAlgorithmException: no such algorithm: { 1 2 643 7 1 1 1 1 } for provider JCP //строковое значение info.signatureAlgorithm.algorithm = "{ 1 2 643 7 1 1 1 1 }" Впрочем даже если передавать стоку "1.2.643.7.1.1.1.1", то все равно та же ошибка: java.security.NoSuchAlgorithmException: no such algorithm: 1.2.643.7.1.1.1.1 for provider JCP Евгений, я наверное туплю, не могли бы вы расписать алгоритм подробней? Отредактировано пользователем 24 сентября 2018 г. 13:43:48(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 703 раз в 664 постах
|
Прошу прощения, там оид алгоритма ключа. Есть варианты: 1) вы делаете if (oid == <gost_2001_oid>) { return sig_alg_2001; } else if (...) и т.д. для всех трех oid'ов, чтобы получить правильный алгоритм подписи, зная oid ключа из signatureAlgorithm; 2) рекомендуемый - попробуйте склеить <digest_oid> и <key_oid> из подписи (поля digestAlgorithm и signatureAlgorithm из elements[0], т.е. SignerInfo) через with, т.е. получится <digest_oid>with<key_oid>, такая пара должна быть в провайдере зарегистрирована. Получится, например, "1.2.643.7.1.1.2.2with1.2.643.7.1.1.1.1", т.е., фактически, "GOST3411_2012_256withGOST3410_2012_256"; 3) рекомендуемый - в последней сборке на сайте было изменено определение алгоритма в Signature, он будет определен по алгоритму ключа, переданному в initSign/initVerify, потому значение в getInstance некритично. Отредактировано пользователем 24 сентября 2018 г. 14:28:19(UTC)
| Причина: Не указана |
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 21.09.2018(UTC) Сообщений: 24 Сказал(а) «Спасибо»: 9 раз
|
Евгений, огромное спасибо, 2-й вариант отлично сработал!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close