Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Юрий  
#1 Оставлено : 17 июня 2013 г. 12:37:10(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Возможно, что существует ошибка в реализации функции CryptMsgGetParam в Linux.

При первичной загрузке корректного криптографического сообщения (CryptMsgOpenToDecode -> CryptMsgUpdate) с типом CMSG_SIGNED (signed data) последующий вызов:

CryptMsgGetParam( ...CMSG_VERSION_PARAM... )

приводит к ошибке 0x80091004 (Недопустимый тип криптографического сообщения).

Вместе с тем вызов CryptMsgGetParam( ...CMSG_TYPE_PARAM... ) заканчивается корректно и возвращает 2 (CMSG_SIGNED). Ошибка воспроизводится на абсолютно любой присоединённой подписи.
Тот же самый код в Windows прекрасно работает.

Прошу проверить наличие/отсутствие ошибки в реализации CryptMsgGetParam от Крипто-ПРО.
С уважением,
Юрий Строжевский
Offline cross  
#2 Оставлено : 21 июня 2013 г. 18:20:44(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Действительно, реализации этого параметра для SignedMessage не было :(.
В следующей версии будет исправлено. Спасибо за сообщение об ошибке.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Юрий  
#3 Оставлено : 22 июня 2013 г. 21:01:44(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Также скорее всего точно такая же ошибка есть и для другого параметра:

CryptMsgGetParam( ...CMSG_SIGNER_HASH_ALGORITHM_PARAM... )

Опять же ошибка появляется на сообщении типа CMSG_SIGNED (присоединённая подпись).
С уважением,
Юрий Строжевский
Offline Юрий  
#4 Оставлено : 23 июня 2013 г. 8:46:23(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Напишу сюда же, ибо опять ошибка в Linux и опять с SignedMessage.

При создании контекста криптографического сообщения с помощью явного задания типа загружаемого контента

CryptMsgOpenToDecode( ...dwMsgType = CMSG_SIGNED... )

и последующей загрузкой присоединённой подписи с помощью CryptMsgUpdate (загрузка производится блоками по 1024 байта, если это важно) при загрузке финального (именно только одного блока, предыдущие загружаются без ошибок) блока функция CryptMsgUpdate возвращает ошибку 0x57 (Неверный параметр). В случае же когда в CryptMsgOpenToDecode используется автоопределение типа загружаемого контента (то есть dwMsgType = 0) вся загрузка присоединённой подписи проходит отлично.
С уважением,
Юрий Строжевский
Offline cross  
#5 Оставлено : 24 июня 2013 г. 13:59:48(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Цитата:
CryptMsgGetParam( ...CMSG_SIGNER_HASH_ALGORITHM_PARAM... )

Ни разу не возникало потребности в этом параметре. Его реализации нет, и скорее всего в ближайшее время не будет.
Цитата:
Напишу сюда же, ибо опять ошибка в Linux и опять с SignedMessage.

При создании контекста криптографического сообщения с помощью явного задания типа загружаемого контента

CryptMsgOpenToDecode( ...dwMsgType = CMSG_SIGNED... )

и последующей загрузкой присоединённой подписи с помощью CryptMsgUpdate (загрузка производится блоками по 1024 байта, если это важно) при загрузке финального (именно только одного блока, предыдущие загружаются без ошибок) блока функция CryptMsgUpdate возвращает ошибку 0x57 (Неверный параметр). В случае же когда в CryptMsgOpenToDecode используется автоопределение типа загружаемого контента (то есть dwMsgType = 0) вся загрузка присоединённой подписи проходит отлично.

Это не ошибка. При указании типа сообщения явно в CryptOpenToDecode, функция CryptMsgUpdate ожидает на входе получить сообщение с обрезанным Content Type. Соответственно, если его подать туда целиком, получится ошибка декодирования.
Надо отдать должное, из описания на MSDN, это можно понять только телепатически.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Юрий  
#6 Оставлено : 25 июня 2013 г. 11:43:44(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Точно такая же проблема с получение информации по CRL из SignedMessage.

То есть завершаются с ошибками вызовы:

CryptMsgGetParam( ...CMSG_CRL_COUNT_PARAM.. )
CryptMsgGetParam( ...CMSG_CRL_PARAM.. )
С уважением,
Юрий Строжевский
Offline Юрий  
#7 Оставлено : 25 июня 2013 г. 11:57:29(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Автор: cross Перейти к цитате

Это не ошибка. При указании типа сообщения явно в CryptOpenToDecode, функция CryptMsgUpdate ожидает на входе получить сообщение с обрезанным Content Type. Соответственно, если его подать туда целиком, получится ошибка декодирования.
Надо отдать должное, из описания на MSDN, это можно понять только телепатически.

Что значит "с обрезанным Content Type"? Если имеется в виду "attached\detached" то для этого у CryptMsgOpenToDecode есть отдельный флаг.

С уважением,
Юрий Строжевский
Offline cross  
#8 Оставлено : 1 июля 2013 г. 14:56:21(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Цитата:
Что значит "с обрезанным Content Type"? Если имеется в виду "attached\detached" то для этого у CryptMsgOpenToDecode есть отдельный флаг.

Обычное сообщение начинается примерно вот так
Код:
    <30 82 19 8C 06 09 2A 86 48 86 F7 0D 01 07 02 A0 82 19 7D 30 82 19 79 02>
   0 6540: SEQUENCE {
    <06 09 2A 86 48 86 F7 0D 01 07 02>
   4    9:   OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)
    <A0 82 19 7D 30 82 19 79 02 01 01 31 0C 30 0A 06 06 2A 85 03 02 02 09 05>
  15 6525:   [0] {
    <30 82 19 79 02 01 01 31 0C 30 0A 06 06 2A 85 03 02 02 09 05 00 30 1F 06>
  19 6521:     SEQUENCE {
    <02 01 01>
  23    1:       INTEGER 1
    <31 0C 30 0A 06 06 2A 85 03 02 02 09 05 00>
  26   12:       SET {
    <30 0A 06 06 2A 85 03 02 02 09 05 00>
  28   10:         SEQUENCE {
    <06 06 2A 85 03 02 02 09>

CryptMsgUpdate при явном указании типа при открытии хочет что бы первых n байт с
<06 09 2A 86 48 86 F7 0D 01 07 02>
OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) не было.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Юрий  
#9 Оставлено : 1 июля 2013 г. 15:07:28(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 93 раз в 67 постах
Ок, спасибо за разъяснения.
На будущее - в документации к Crypto API то, что вы описали, называют "inner content".
С уважением,
Юрий Строжевский
Offline cross  
#10 Оставлено : 10 июля 2013 г. 15:39:28(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Цитата:

Точно такая же проблема с получение информации по CRL из SignedMessage.

То есть завершаются с ошибками вызовы:

CryptMsgGetParam( ...CMSG_CRL_COUNT_PARAM.. )
CryptMsgGetParam( ...CMSG_CRL_PARAM.. )

Вот эти две функции должны работать. Юрий можно от вас получить небольшой примерчик который воспроизводит ошибку?
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.