Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2011(UTC) Сообщений: 78
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 5 раз в 2 постах
|
Мне нужно на C# подписать текстовые данные, которые формируются программой, и сохранить полученную подпись Вот мой код Цитата: Certificate с= null; string thumbprint = "c04df368291f8045c377f37feefb44f06d80a01f";
string textData = "someText";
Store store = new Store(); store.Open(); //поиск сертификата foreach (Certificate cert in store.Certificates) { if (string.Compare(cert.Thumbprint, thumbprint, StringComparison.InvariantCultureIgnoreCase) == 0) { с = cert; break; } }
CPSigner cpSigner = new CPSigner(); cpSigner.Certificate = с; //поиск сертификата
CadesSignedData signedData = new CadesSignedData(); signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY; signedData.Content = Convert.ToBase64String(Encoding.GetEncoding(1251).GetBytes(textData)); //вот здесь скорей всего ошибка, так же пробовал UTF8.GetBytes
CADESCOM_CADES_TYPE cadesType; cadesType = CADESCOM_CADES_TYPE.CADESCOM_CADES_BES;
string signatureBase64 = signedData.SignCades(cpSigner, cadesType, true);
//сохранение текстового файла и подписи
File.WriteAllText("source.txt", testData); File.WriteAllBytes("source.txt.sig", Convert.FromBase64String(signatureBase64);
Пробую проверить в подпись в КриптоАрм и получаю ошибку "Подпись математически неверна" Мне кажется, я не так заполняю signedData.Content, отсюда и несоответствие Как правильно кодировать текстовые данные для передачи в signedData.Content? Подскажите, где ошибка?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2011(UTC) Сообщений: 78
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 5 раз в 2 постах
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Мне кажется, я не так заполняю signedData.Content, отсюда и несоответствие Как правильно кодировать текстовые данные для передачи в signedData.Content?
Подскажите, где ошибка? Скорее всего Вы правы. Для диагностики сделайте присоединенную подпись, проверьте ее с помощью КриптоАРМ или csptest, а затем получившиеся данные после снятия сравните с исходными. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 07.12.2011(UTC) Сообщений: 78
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 5 раз в 2 постах
|
Дело было в неверной кодировке самого сохраняемого документа. Проблема решена.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close