Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Автор: Boris@Serezhkin.com  Автор: Андрей *  Если верить заголовку и посмотрев на начало "MIA...", то можно глубокомысленно заявить что это нормальная ASN1 структура в кодировке Б64, и может быть она даже содержит присоединенную подпись. Это надо декодировать и смотреть... Я же говорил про другое, что "присоединенная подпись в формате Б64" это нонсенс. А вот CMS с присоединенной подписью в кодировке Б64 имеет право налево, Что и продемонстрировано в примере... Как эту cms правильно сделать, не хватает знаний, .sig добавить вроде просто, у многих видел реализовано ... что интересно крипто программы понимают подписанный файл нормально, а портал ненормально
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: raubtier  Сертификат в архиве был отозван УЦ.
Прискорбный факт, но проверке математической корректности подписи не препятствует И даже подписать им можно, технически, правда юридической силы иметь не будет. А для отладки почему бы и нет? Автор: raubtier  Вроде все сделал добавил надписи служебные, ошибка осталась, меня смущает размер подписанного файла, он всегда больше чем должен быть ...
А какой он должен быть? В присоединенную подпись помимо подписи добавляется и сам сертификат, и сама ASN1 структура тоже не нулевой длины. А кодировка Б64 тоже дает прирост в 8/6 Ничего удивительного.
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Дело в том что тем же Крипто_АРМ подписываю размер становиться к примеру 4900 КБ, а когда в свеой проге подписываю размер уже 9000 кб с лишним, что не так делаю ...
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: raubtier  Дело в том что тем же Крипто_АРМ подписываю размер становиться к примеру 4900 КБ, а когда в свеой проге подписываю размер уже 9000 кб с лишним, что не так делаю ... Если не затруднит, то подпиши файлик из ста единичек в Криптоарме и у себя и выклади что получается. PS: дурная мысль. А не происходит ли двойного кодирования в Б64? сохрани в файл не только base64String но и в отдельный файл encodedMsg и посмотри на них глазками... PS2: Смущает меня Convert.ToBase64String Ну не люблю я неявных преобразований к юникоду... Попробуй Convert.ToBase64CharArray Отредактировано пользователем 29 июня 2015 г. 13:25:42(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: raubtier  https://drive.google.com/file/d/0Bw9HDMCyY0LVNnFfMkRjaktHRFE/view?usp=sharing - вот можно скачать, в архиве есть две папки арм и мой АРМ по умолчанию включил только сертификат подписанта. А в программе вкладывается еще и цепочка. Код:
cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly;
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: raubtier  Сертификат в архиве был отозван УЦ.
Вроде все сделал добавил надписи служебные, ошибка осталась, меня смущает размер подписанного файла, он всегда больше чем должен быть ... Конкретика не помешает. Код\Текст полностью. Приложенный пример - корректен. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: Андрей *  Автор: raubtier  https://drive.google.com/file/d/0Bw9HDMCyY0LVNnFfMkRjaktHRFE/view?usp=sharing - вот можно скачать, в архиве есть две папки арм и мой АРМ по умолчанию включил только сертификат подписанта. А в программе вкладывается еще и цепочка. Код:
cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly;
В твоем примере: добавляются 3 сертификата с серийными номерами: Цитата: 3C822519000000000018 - УЦ 2 ИС ГУЦ 64291A540000000001E4 - CAekey.ru63 009511 - сертификат подписанта.
В примере с АРМ: Цитата: 009511 - сертификат подписанта.
|
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Как выясняется включение в подпись цепочки сертификатов приводит к неадекватной работе портала? Я бы подготовил два сообщения с подписью от криптоарма и с подписью от программы и если одно проходит, а другое нет, то это повод для письма о некорректной работе ПО портала. Скорее всего если не включать цепочку сертификатов в подпись то все будет работать. Но это неправильно. Один человек наступил на грабли, другой тоже наступит (цепочка по умолчанию включается)...
|
 1 пользователь поблагодарил Boris@Serezhkin.com за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Спасибо большое за помощь, как это сразу не догадался про цепочку, в общем получилось так и все работает на портале, никакого base 64 кодирования и служебок не надо: public static void Sign(string _path, X509Certificate2 cert) { byte[] msgBytes = System.IO.File.ReadAllBytes(_path); ContentInfo contentInfo = new ContentInfo(msgBytes); SignedCms signedCms = new SignedCms(contentInfo); CmsSigner cmsSigner = new CmsSigner(cert); //{DigestAlgorithm = cert.SignatureAlgorithm}; cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime()); cmsSigner.IncludeOption = X509IncludeOption.EndCertOnly; signedCms.ComputeSignature(cmsSigner); byte[] encodedMsg = signedCms.Encode(); System.IO.File.WriteAllBytes(_path + ".sig", encodedMsg); } Отредактировано пользователем 30 июня 2015 г. 10:27:06(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close