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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Пономаренко  
#1 Оставлено : 22 августа 2025 г. 10:15:10(UTC)
Евгений Пономаренко

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

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 174
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 23 раз в 19 постах
Имеем: подпись с двумя CaDES-BES внутри.
Вызов CadesMsgEnhanceSignature почему-то расширяет всегда последнюю подпись, вне зависимости от dwSignatureIndex.
Если индекс указать вне границ (0..1), справедливо выдает ошибку.
CadesMsgEnhanceSignatureAll работает правильно, расширяя обе подписи.
Версия ЭЦП SDK 2.0.15273 (хотя пробовал и на более ранних, поведение такое же).
Это я что-то не так делаю, или проблема имеет место?
Online Ситдиков Денис  
#2 Оставлено : 22 августа 2025 г. 14:30:04(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 131
Российская Федерация
Откуда: Москва

Сказал(а) «Спасибо»: 8 раз
Поблагодарили: 55 раз в 40 постах
Добрый день!
Пока проблему не подтверждаем. Воспроизвели ваш сценарий - поведение ожидаемое, улучшается подпись с соответствующим индексом.
Как вы проверяли, что улучшается всегда последняя подпись? Можете приложить примеры улучшенных подписей для индексов 0 и 1?
Offline Евгений Пономаренко  
#3 Оставлено : 22 августа 2025 г. 14:58:14(UTC)
Евгений Пономаренко

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

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 174
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 23 раз в 19 постах
Добрый день.
Кейс такой - подпись с двумя SignerInfo, CADES-BES.
Попытка улучшить первую подпись (индекс 0) до CADES-T приводит к улучшению последней (индекс 1)
т.е. вызов CadesMsgEnhanceSignature(handle,0,&param) не улучшает подпись с индексом 0.
Дополнительно выяснилась такая особенность-
вызов CadesMsgEnhanceSignature(handle,0,&param) улучшает последнюю НЕ улучшенную подпись.
т.е. для двух подписей последовательный вызов функции с индексом 0 улучшит обе подписи.
Пример результата отправлю в личку.
Offline Новожилова Елена  
#4 Оставлено : 22 августа 2025 г. 17:28:55(UTC)
Новожилова Елена

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

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 933
Женщина
Откуда: Крипто-Про

Поблагодарили: 109 раз в 100 постах
Здравствуйте!

Индекс подписи в сообщении вещь непостоянная. Если подпись изменилась - её индекс тоже может измениться.
Дело в том, что список SignerInfo в SignedData объявлен как SET. А SET по правилам кодирования DER упорядочивается лексикографически.

Допустим, у вас были в сообщении 2 подписи A и B. И лежат они именно в таким порядке - сначала A, потом B. Вы "улучшаете" подпись А. Подпись А меняется, становится больше и её место в сообщении может измениться. Порядок может стать B, потом A.
thanks 2 пользователей поблагодарили Новожилова Елена за этот пост.
Ситдиков Денис оставлено 22.08.2025(UTC), Евгений Пономаренко оставлено 23.08.2025(UTC)
Offline Евгений Пономаренко  
#5 Оставлено : 23 августа 2025 г. 8:45:07(UTC)
Евгений Пономаренко

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

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 174
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 23 раз в 19 постах
Автор: Новожилова Елена Перейти к цитате
Здравствуйте!

Индекс подписи в сообщении вещь непостоянная. Если подпись изменилась - её индекс тоже может измениться.
Дело в том, что список SignerInfo в SignedData объявлен как SET. А SET по правилам кодирования DER упорядочивается лексикографически.

Допустим, у вас были в сообщении 2 подписи A и B. И лежат они именно в таким порядке - сначала A, потом B. Вы "улучшаете" подпись А. Подпись А меняется, становится больше и её место в сообщении может измениться. Порядок может стать B, потом A.


Спасибо! Это именно оно. Меня ввело в заблуждение то, что SignerInfo были визуально неотличимы. Подписал двумя разными подписями - сразу стало заметно.
Вопрос снимается.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.