Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Автор: Boris@Serezhkin.com  И нужно внимательно почитать что требуется? Если речь идет о XML, то возможно и подписывать надо его, со всеми калоканализациями и прочими вкусностями. Тут уже допустимо говорить про Б64.
А оперировать с XML как просто фалом - этого ли хочет получатель?
Тут как обычно делают, если это Крипто-АРМ используют команду подписать и зашифровать, получается файл report.xml превращается в report.xml.sig.zip.enc, вот у меня заархивировать и зашифровать zip.enc получается, а подпись sig не проходет, эта же подпись sig проходет через Крипто-АРМ ... Такие дела
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: Boris@Serezhkin.com  Автор: Андрей *  Автор: raubtier  Присоединенная подпись, Base64 ... Ну так осталось закодировать...  Присоединенная? Base64? Так не бывает. Если имеется ввиду - Весь ASN1 конгломерат, документ и подпись передавать в виде Б64, тогда да.PS: И нужно внимательно почитать что требуется? Если речь идет о XML, то возможно и подписывать надо его, со всеми калоканализациями и прочими вкусностями. Тут уже допустимо говорить про Б64. А оперировать с XML как просто фалом - этого ли хочет получатель? Присоединенная подпись - включает подписанные данные. Весь ASN1 конгломерат - да. Мы же не оперируем понятием - "значение электронной подписи"? |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
ToBase64String - что делает? Кодирует в base64.
А на сайте ждут присоединенную CMS в base64. Необходимо еще добавить служебную часть: ----- .... А base64 ----- .... Б
А и Б - напишу чуть позже
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
для подписи: ----- BEGIN PKCS7 SIGNED ----- base64 ----- END PKCS7 SIGNED -----
для зашифрованных данных: ----- BEGIN PKCS7 ENCRYPTED ----- base64 ----- END PKCS7 ENCRYPTED -----
|
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: Андрей *  А на сайте ждут присоединенную CMS в base64. Необходимо еще добавить служебную часть: ----- .... А base64 ----- .... Б
Тогда это не присоединенная подпись. Это detached в форме Б64, которую механически приписывают к данным.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: Boris@Serezhkin.com  Автор: Андрей *  А на сайте ждут присоединенную CMS в base64. Необходимо еще добавить служебную часть: ----- .... А base64 ----- .... Б
Тогда это не присоединенная подпись. Это detached в форме Б64, которую механически приписывают к данным. Нет. |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
|
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Сертификат в архиве был отозван УЦ.
Вроде все сделал добавил надписи служебные, ошибка осталась, меня смущает размер подписанного файла, он всегда больше чем должен быть ... 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());
signedCms.ComputeSignature(cmsSigner); byte[] encodedMsg = signedCms.Encode(); string base64String; try { base64String = System.Convert.ToBase64String(encodedMsg, 0, encodedMsg.Length); } catch (System.ArgumentNullException) { System.Console.WriteLine("Binary data array is null."); return; }
//----- BEGIN PKCS7 SIGNED ----- base64String = "----- BEGIN PKCS7 SIGNED -----" + "\r\n" + base64String; //----- END PKCS7 SIGNED ----- base64String = base64String + "\r\n" + "----- END PKCS7 SIGNED -----";
// Write the UUEncoded version to the output file. System.IO.StreamWriter outFile; try { outFile = new System.IO.StreamWriter(_path + ".sig", false, System.Text.Encoding.ASCII); outFile.Write(base64String); outFile.Close(); } catch (System.Exception exp) { // Error creating stream or writing to it. System.Console.WriteLine("{0}", exp.Message); }
}
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: Андрей *  Если верить заголовку и посмотрев на начало "MIA...", то можно глубокомысленно заявить что это нормальная ASN1 структура в кодировке Б64, и может быть она даже содержит присоединенную подпись. Это надо декодировать и смотреть... Я же говорил про другое, что "присоединенная подпись в формате Б64" это нонсенс. А вот CMS с присоединенной подписью в кодировке Б64 имеет право налево, Что и продемонстрировано в примере...
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close