Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2018(UTC) Сообщений: 11 Откуда: Москва Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте! Может кто знает или может подсказать куда копать. У клиента используется примерно следующий код для формирования выйла с подписью
byte[] data = Cryptography.GetSign(dataToSign, true);
public static byte[] GetSign(byte[] bytesToSign, bool detached) { try { byte[] data = SignBytes(bytesToSign, detached); return data; } catch (Exception) { } } private static byte[] SignBytes(byte[] bytesToSign, bool detached) { CheckCertificateException(Global.X509Certificate); CPSigner cpSigner = new CPSigner(); cpSigner.Certificate = Global.X509CertificateCapicom; cpSigner.TSAAddress = Global.Config.TSAAddress; CadesSignedData signedData = new CAdESCOM.CadesSignedDataClass(); signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY; signedData.Content = Convert.ToBase64String(bytesToSign); CADESCOM_CADES_TYPE cadesType = Global.Config.UseOCSP ? CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1 : CADESCOM_CADES_TYPE.CADESCOM_CADES_T; var signData = signedData.SignCades(cpSigner, cadesType, detached); return Convert.FromBase64String(signData); } Со слов клиента используется стандартное подписывание файла. При проверке подписи все время валится ошибка. Проверяю стандартным примером проверки подписи для файлов из SDK Криптопро .Net.
public static bool VerifySignedFile(Byte[] msg, byte[] encodedSignature) { // Создаем объект ContentInfo по сообщению. // Это необходимо для создания объекта SignedCms. ContentInfo contentInfo = new ContentInfo(msg);
// Создаем SignedCms для декодирования и проверки. SignedCms signedCms = new SignedCms(contentInfo, true); // Декодируем подпись signedCms.Decode(encodedSignature);
try { signedCms.CheckSignature(true); } catch (CryptographicException ce) { return false; } catch (Exception ex) { return false; } return true; }
И в продолжение, подскажите пожалуйста как подписать файл с использованием сервера времени для получения штампа времени с помошью библиотеки Криптопро .Net. Ни как не могу найти пример. Заранее благодарю за любой ответ. Если есть ссылка на пример буду в двойне благодарен.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Здравствуйте. >При проверке подписи все время валится ошибка. Какая ошибка возникает? Какой тип подписи используется? Ошибка возникает на том же рабочем месте? Выполняются требования при проверке подписи? >как подписать файл с использованием сервера времени Код у Вас есть в примере, вызвать с: cadesType = CADESCOM_CADES_T; - подпись и штамп времени. |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2018(UTC) Сообщений: 11 Откуда: Москва Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей Писарев Здравствуйте. >При проверке подписи все время валится ошибка. Какая ошибка возникает? Какой тип подписи используется? Ошибка возникает на том же рабочем месте? Выполняются требования при проверке подписи? >как подписать файл с использованием сервера времени Код у Вас есть в примере, вызвать с: cadesType = CADESCOM_CADES_T; - подпись и штамп времени. Ответы по порядку: Сегодня в течении дня выложу. ГОСТ 2001 и 2012. Судя по коду отсоедененная. Нет на сервере где проверяется подпись. Создается на клиентской машине. Все перепроверю, но не совсем понятно зачем при проверке подписи такие жесткие условия. Если я правильно понимаю подпись должна проверяться в любом случае, а создание подписи должно цдовлетворять условиям. Как подписать файл - Вопрос не в том как его подписать и проверить подпись используя библиотеку Криптопро ЭЦП, а как это сделать используя Криптопро .Net. Т.к. во первых этот компонент используется на сервере. Во вторых на него приобритается платная лицензия, и тога встает вопрос для чего ее приобритать если она не реализует все требования, в случае если не поддерживает CADESCOM. Собственно самый главный, на текущий момент, вопрос это как подписать и проверить подпись по стандартам CADESCOM с использованием Криптопро .Net? Это в принципе возможно, или для этого необходимо устанавливать библиотеку?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2018(UTC) Сообщений: 11 Откуда: Москва Сказал(а) «Спасибо»: 2 раз
|
Ошибки больше - нет оказалось что проблема не в коде, а том кто его использует. Благодарю всех за оказанную помошь.
Но вопрос о реализации в CADESCOM в Криптопро Net все же считаю открытам, я так и не смог найти примера реализации. Если я правильно понимаю то при стандартной проверке подписи файла, проверяется только подпись без проверки соответсвия CADESCOM(штампа времени и т.д.). Есть ли возможность реализовать или следует использовать библиотеки и других альтернатив нет?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close