Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.05.2012(UTC) Сообщений: 174 Откуда: Екатеринбург
Сказал(а) «Спасибо»: 47 раз Поблагодарили: 23 раз в 19 постах
|
Имеем: подпись с двумя CaDES-BES внутри. Вызов CadesMsgEnhanceSignature почему-то расширяет всегда последнюю подпись, вне зависимости от dwSignatureIndex. Если индекс указать вне границ (0..1), справедливо выдает ошибку. CadesMsgEnhanceSignatureAll работает правильно, расширяя обе подписи. Версия ЭЦП SDK 2.0.15273 (хотя пробовал и на более ранних, поведение такое же). Это я что-то не так делаю, или проблема имеет место?
|
|
|
|
Статус: Администратор
Группы: Участники
Зарегистрирован: 01.03.2017(UTC) Сообщений: 130  Откуда: Москва Сказал(а) «Спасибо»: 8 раз Поблагодарили: 55 раз в 40 постах
|
Добрый день! Пока проблему не подтверждаем. Воспроизвели ваш сценарий - поведение ожидаемое, улучшается подпись с соответствующим индексом. Как вы проверяли, что улучшается всегда последняя подпись? Можете приложить примеры улучшенных подписей для индексов 0 и 1?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.05.2012(UTC) Сообщений: 174 Откуда: Екатеринбург
Сказал(а) «Спасибо»: 47 раз Поблагодарили: 23 раз в 19 постах
|
Добрый день. Кейс такой - подпись с двумя SignerInfo, CADES-BES. Попытка улучшить первую подпись (индекс 0) до CADES-T приводит к улучшению последней (индекс 1) т.е. вызов CadesMsgEnhanceSignature(handle,0,¶m) не улучшает подпись с индексом 0. Дополнительно выяснилась такая особенность- вызов CadesMsgEnhanceSignature(handle,0,¶m) улучшает последнюю НЕ улучшенную подпись. т.е. для двух подписей последовательный вызов функции с индексом 0 улучшит обе подписи. Пример результата отправлю в личку.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 933  Откуда: Крипто-Про Поблагодарили: 109 раз в 100 постах
|
Здравствуйте!
Индекс подписи в сообщении вещь непостоянная. Если подпись изменилась - её индекс тоже может измениться. Дело в том, что список SignerInfo в SignedData объявлен как SET. А SET по правилам кодирования DER упорядочивается лексикографически.
Допустим, у вас были в сообщении 2 подписи A и B. И лежат они именно в таким порядке - сначала A, потом B. Вы "улучшаете" подпись А. Подпись А меняется, становится больше и её место в сообщении может измениться. Порядок может стать B, потом A.
|
 2 пользователей поблагодарили Новожилова Елена за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.05.2012(UTC) Сообщений: 174 Откуда: Екатеринбург
Сказал(а) «Спасибо»: 47 раз Поблагодарили: 23 раз в 19 постах
|
Автор: Новожилова Елена  Здравствуйте!
Индекс подписи в сообщении вещь непостоянная. Если подпись изменилась - её индекс тоже может измениться. Дело в том, что список SignerInfo в SignedData объявлен как SET. А SET по правилам кодирования DER упорядочивается лексикографически.
Допустим, у вас были в сообщении 2 подписи A и B. И лежат они именно в таким порядке - сначала A, потом B. Вы "улучшаете" подпись А. Подпись А меняется, становится больше и её место в сообщении может измениться. Порядок может стать B, потом A. Спасибо! Это именно оно. Меня ввело в заблуждение то, что SignerInfo были визуально неотличимы. Подписал двумя разными подписями - сразу стало заметно. Вопрос снимается.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close