Статус: Новичок
Группы: Участники
Зарегистрирован: 02.07.2014(UTC) Сообщений: 1
|
Привет всем!
Суть в следующем - есть xml файл и подпись на флешке. При помощи КриптоПро вручную прикрепляем (шифруем?) файл xml и получаем xml.sig Подскажите (хотябы направление) где почитать, мож пример есть, для создания кода на дельфях для прикрепления подписи. Может есть уже готовыя прога для этого. Programmer_guide есть, но там все на си, и я так понимаю нужна библиотека, где взять?
Спасибо!
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
На этом форуме есть код, искать просто - название IDE ввести.. ну или "по-русски искаверканое слово" хотя найдется уже не то,что нужно |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Здравствуйте, делаю небольшую программку подписалку для ФСРАР. Шифрование проходит нормально, а вот подписание не очень - ставлю подпись на файл, подпись прикрепленная получается file.xml.sig , подпись распознается в Крипто-АРМ, но когда загружаю на портал пишет - что подпись не действительная, есть подозрение что где-то нужно указать правильный алгоритм подписания, ниже фрагмент кода подписания, что я делаю не так: 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(); System.IO.File.WriteAllBytes(_path + ".sig", encodedMsg); }
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: raubtier  Здравствуйте, делаю небольшую программку подписалку для ФСРАР. Шифрование проходит нормально, а вот подписание не очень - ставлю подпись на файл, подпись прикрепленная получается file.xml.sig , подпись распознается в Крипто-АРМ, но когда загружаю на портал пишет - что подпись не действительная, есть подозрение что где-то нужно указать правильный алгоритм подписания, ниже фрагмент кода подписания, что я делаю не так: 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(); System.IO.File.WriteAllBytes(_path + ".sig", encodedMsg); } Если КриптоАРМ проверяет, то вопрос уже не к коду. Какие требования у ФСРАР? Присоединенная\отделенная подпись? DER\Base64? |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Присоединенная подпись, Base64 ...
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: raubtier  Присоединенная подпись, Base64 ... Ну так осталось закодировать... |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Т.е. перед записью файла на диск содержимое BYTE закодировать в base64, или на каком моменте, я маленько делетант )))
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
|
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 03.04.2013(UTC) Сообщений: 25   Откуда: Улан-Удэ Сказал «Спасибо»: 3 раз
|
Не работает, на портале возвращается теперь другая ошибка - что файл некорректно уже подписан, раньше ошибка была - подпись не действительна Возможно как-то не так кодирую, т.к. у меня размер подписанного файла примерно 9КБ, а подписываю в Крипто-АРМ размер становиться 4 КБ Вот что получилось:
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; }
// 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 постах
|
Автор: Андрей *  Автор: raubtier  Присоединенная подпись, Base64 ... Ну так осталось закодировать...  Присоединенная? Base64? Так не бывает. Если имеется ввиду - Весь ASN1 конгломерат, документ и подпись передавать в виде Б64, тогда да. PS: И нужно внимательно почитать что требуется? Если речь идет о XML, то возможно и подписывать надо его, со всеми калоканализациями и прочими вкусностями. Тут уже допустимо говорить про Б64. А оперировать с XML как просто фалом - этого ли хочет получатель? Отредактировано пользователем 29 июня 2015 г. 9:07:19(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close