Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Данная тема уже поднималась на форуме в том или ином виде, но все же окрою новую ветку. Исходные данные: Метод аутентификации внешнего ПО возвращает зашифрованный ключ сессии. Шифрование проходит на моем открытом ключе (передан сертификат). В ответ приходит cms (envelopedData), созданное на той стороне с помощью ms crypto api, на c#. Проблема: Ни одним их доступных примеров (как из комплекта JCP, так и аналогичные, работающие, методы аутентификации в других системах) мне не удалось расшифровать сообщение... Все время упираюсь в ошибку InvalidKeyException: Wrapped key is invalid при попытке выполнить unwrap. Перепробовал все комбинации алгоритмов и режимов cipher. Само сообщение нормально разбирается (sv и iv по 8 байт). Мой ключ - 3410DH. Подскажите, в чем может быть проблема.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Автор: afev Спасибо, обязательно попробую и отпишусь о результате. Хотел только заметить, чо в версии 2.0.37283 класса EnvelopedSignature нет, поэтому упоминание о версии JCP 2.0 в приведенном посте не совсем корректно.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Автор: pashko79 Автор: afev Спасибо, обязательно попробую и отпишусь о результате. Хотел только заметить, чо в версии 2.0.37283 класса EnvelopedSignature нет, поэтому упоминание о версии JCP 2.0 в приведенном посте не совсем корректно. Попробовал пример по ссылке: ru.CryptoPro.CAdES.exception.EnvelopedInvalidRecipientException Какие дополнииельные данные я могу привести? Хочу сказать, что зашифрованное сообщение генерируется очень крупным спец. оператором ЭДО, их api многократно проверено и ежедневно используется.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: pashko79 Хотел только заметить, чо в версии 2.0.37283 класса EnvelopedSignature нет, поэтому упоминание о версии JCP 2.0 в приведенном посте не совсем корректно. В посте говорится о версии 2.0 вообще. Последняя на сайте - 38150. Автор: pashko79 ru.CryptoPro.CAdES.exception.EnvelopedInvalidRecipientException
Включите логирование для JCPLogger уровня FINE (см. https://support.cryptopr...irovnija-kriptopro-jcp). Видимо, не удалось использовать указанный сертификат в качестве получателя ни для одного блока данных. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Автор: afev Да, при включенном логировании вывелось сообщение: FINE: Skip certificate sn 7297b66200000000170f, subjec <далее subjectDN> Сертификат соответствует закрытому ключу.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Такое сообщение может быть, если сертификат не соответствует recipient id из RecipientInformation: Код:
RecipientId recipientId = recipient.getRID();
... recipientId.match(recipientCertificate) ...
Можете декодировать сообщение в каком-нибудь asn1-декодировщике и посмотреть поля получателей - есть ли среди них ваш сертификат (поля "серийный номер", "издатель" и т.п.). + можете попробовать проверить, например, с помощью csptest от CSP. Отредактировано пользователем 10 мая 2015 г. 14:46:16(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Автор: afev Такое сообщение может быть, если сертификат не соответствует recipient id из RecipientInformation: Код:
RecipientId recipientId = recipient.getRID();
... recipientId.match(recipientCertificate) ...
Можете декодировать сообщение в каком-нибудь asn1-декодировщике и посмотреть поля получателей - есть ли среди них ваш сертификат (поля "серийный номер", "издатель" и т.п.). + можете попробовать проверить, например, с помощью csptest от CSP. Попробовал csptest (версия csp 3.9), результат: A CSP has been acquired. Default Provider will be used with CryptMsgOpenToEncode. The message to decode has been opened. An error occurred in running the program. .\cryptlo.c:583:Decode MsgUpdate failed Error number 0x8009310b (2148086027). Встречено неверное значение тега ASN1. Total: SYS: 0,047 sec USR: 0,047 sec UTC: 0,096 sec [ErrorCode: 0x8009310b] Вообще asn1 декодером сообщение открывется... могу скинуть файлом в бейс64.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: pashko79 Попробовал csptest Как попробовали? Какая команда? Как сохранено сообщение (der)? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 06.05.2015(UTC) Сообщений: 14 Откуда: Москва Сказал(а) «Спасибо»: 1 раз
|
Автор: afev Автор: pashko79 Попробовал csptest Как попробовали? Какая команда? Как сохранено сообщение (der)? Сообщение приходит в бинарном виде, в http ответе. Как говорил - могу переслать сообщение в файле, в кодировке бейс64. Дешифрование выполняд командой: csptest.exe -lowenc -decrypt -in "encoded_base64.txt" -my "E=mail@mail.ru" -password 54321 >> 1.txt
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close