Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проверка подписи не по данным а по хешу данных
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Автор: Юрий Два момента: 1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;
Ок. Убрал флаг за ненадобностью. Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями. Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая. |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Юрий Автор: dmishin Автор: Юрий Два момента: 1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;
Ок. Убрал флаг за ненадобностью. Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями. Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая. Из той информации, что мне попадалась я понял, что отличие только в наличии самих данных в одном из атрибутов CMS?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Автор: Юрий Автор: dmishin Автор: Юрий Два момента: 1) CMSG_DETACHED_FLAG - это значит, что подпись отделённая и для проверки нужно загружать данные, для которых делалась подпись. Это делается с помощью отдельного вызова CryptMsgUpdate;
Ок. Убрал флаг за ненадобностью. Подпись присоединённая и подпись отсоединённая - это как говориться "две большие разницы" и флаг CMSG_DETACHED_FLAG очень важен для работы с подписями. Так что проверьте перед верификацией подписи что подпись у вас действительно отсоединённая. Из той информации, что мне попадалась я понял, что отличие только в наличии самих данных в одном из атрибутов CMS? Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652. |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Юрий Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652.
Раз отправляете в RFC дали бы ссылку на конкретный пункт. При беглом осмотре нашел только то, что при наличии подписанных атрибутов для подписи берется хеш от этих атрибутов. Поиск по слову detached тоже ничего не дал.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Автор: Юрий Отличается как структура подписи, так и процессы создания и проверки подписи. Почитайте лучше стандарт RFC5652.
Раз отправляете в RFC дали бы ссылку на конкретный пункт. При беглом осмотре нашел только то, что при наличии подписанных атрибутов для подписи берется хеш от этих атрибутов. Поиск по слову detached тоже ничего не дал. 5.2. EncapsulatedContentInfo Type 5.4. Message Digest Calculation Process 5.6. Signature Verification Process |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Юрий 5.2. EncapsulatedContentInfo Type 5.4. Message Digest Calculation Process 5.6. Signature Verification Process
Сравнение хеша с вычисленным хешом от вложенных данных? Или что-то еще?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Вернулся к задаче и сейчас застрял на получении хеша сообщения:
CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);
Под win работает, а под linux выдает ошибку: 0x80091004
В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Вернулся к задаче и сейчас застрял на получении хеша сообщения:
CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);
Под win работает, а под linux выдает ошибку: 0x80091004
В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами? Предположения: 1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING"; 2) Отсутствует вызов "CryptMsgUpdate"; |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.08.2012(UTC) Сообщений: 123
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 6 раз в 6 постах
|
Автор: Юрий Автор: dmishin Вернулся к задаче и сейчас застрял на получении хеша сообщения:
CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);
Под win работает, а под linux выдает ошибку: 0x80091004
В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами? Предположения: 1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING"; 2) Отсутствует вызов "CryptMsgUpdate"; 1 - не помогло 2 - исключаю, т.к. под win не повторяется П.С. Подстановка произвольного значения вместо типа сообщения никак не влияет на работу программы под linux, а вот под win выдает ошибку. Отредактировано пользователем 20 ноября 2013 г. 14:05:47(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671 Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Автор: dmishin Автор: Юрий Автор: dmishin Вернулся к задаче и сейчас застрял на получении хеша сообщения:
CryptMsgGetParam(cmsObject, CMSG_COMPUTED_HASH_PARAM, 0, attrHashData, &cmsParamLen);
Под win работает, а под linux выдает ошибку: 0x80091004
В чем может быть причина такого поведения и есть ли способ вытащить хеш под linux другими способами? Предположения: 1) Используется совместный тип сообщения. То есть указывается "CryptMsgOpenToDecode(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)". А надо только "PKCS_7_ASN_ENCODING"; 2) Отсутствует вызов "CryptMsgUpdate"; 1 - не помогло 2 - исключаю, т.к. под win не повторяется П.С. Подстановка произвольного значения вместо типа сообщения никак не влияет на работу программы под linux, а вот под win выдает ошибку. Тогда как вариант можно вытащить хэш раскодированием ASN.1 сообщения (CryptDecodeObject). |
С уважением, Юрий Строжевский |
|
|
|
Форум КриптоПро
»
Устаревшие продукты
»
КриптоПро CSP 3.6
»
Проверка подписи не по данным а по хешу данных
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close