| 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                Добрый день! В нашем проекте стоит задача создать сервис по подписыванию PDF документов в соответствии с Российским законодательством. Насколько я понимаю, это означает соответствие стандартам: •	ГОСТ Р 34.10-2001 – Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. •	ГОСТ Р 34.11-94 – Информационная технология. Криптографическая защита информации. Функция хэширования. Я протестировал код из примера Simple35\Pdf\Sign.cs При этом возник ряд вопросов. 1) В примере нигде явно не используются классы Sharpei. Означает ли это, что библиотека в примере не используется? Означает ли это, что не используются алгоритмы 34.11-94 для создания хеша и 34.10-2001 для создания подписи? Нужно ли для использования этих алгоритмов явно использовать классы и методы Sharpei? 2) Во время работы примера, при выполнении строчки кода  Код:signedCms.ComputeSignature(cmsSigner, false);
 появилось окошко, предлагающее ввести пароль для доступа к приватному ключу. Но нам необходимо создать сервис, который будет подписывать документы автоматически, никто вручную вводить ничего не будет. Соответственно вопрос - можно ли задавать пароль в коде? Отредактировано пользователем 19 апреля 2012 г. 23:13:15(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы
 Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,417  Откуда: КРИПТО-ПРОСказал «Спасибо»: 37 разПоблагодарили: 729 раз в 630 постах
 
 | 
            
		      
                В примере используется signedCms, который в свою очередь вызывает криптопровайдер, прописанный в используемом сертификате.Пароль (пин) проще всего запомнить средствами КриптоПро CSP или не задавать вовсе.
 Программно конечно можно тоже.
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                Спасибо.
 Возник еще один вопрос.
 В тесте для подписания PDF документа использовался тестовый сертификат, полученный на вашем УЦ.
 Я открыл подписанный документ в Acrobat Reader на том же компьютере с установленными КриптоПро CSP и КриптоПро PDF. Acrobat Reader провалидировал подпись и сказал, что она действительна.
 После этого я перенес подписанный документ на другую машину, где ничего не установлено кроме Acrobat Reader. Acrobat Reader сказал, что не может провалидировать подпись.
 Почему так произошло? Из-за того, что сертификат тестовый? Смогут ли наши клиенты проверить подпись документов при подписании реальным сертификатом после того, как мы запустим наш сервис?
 | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы
 Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,417  Откуда: КРИПТО-ПРОСказал «Спасибо»: 37 разПоблагодарили: 729 раз в 630 постах
 
 | 
            
		      
                Без КриптоПро CSP и КриптоПро PDF подпись проверить не получится - Adobe "не знает" российских криптоалгоритмов. | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                maxdm написал:В примере используется signedCms, который в свою очередь вызывает криптопровайдер, прописанный в используемом сертификате. Но в этом случае получается, что библиотека КриптоПро .NET не нужна. Я удалил ее из проекта, но код все равно работает. Получается, что Microsoft CryptoAPI использует напрямую криптопровайдер КриптоПро CSP без библиотеки КриптоПро .NET? Отредактировано пользователем 20 апреля 2012 г. 14:21:51(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                Возникла проблема при проверки подписи. После подписания файла в примере Simple35\Pdf\Sign.cs проверяю этот подписанный вайл в примере Simple35\Pdf\Verify.cs На строчке кода Код:PdfPKCS7 pk = af.VerifySignature(name);
 вылетает exception: Цитата:Org.BouncyCastle.Security.SecurityUtilityException: Signer 1.2.643.2.2.9WITH1.2.643.2.2.19 not recognised.at Org.BouncyCastle.Security.SignerUtilities.GetSigner(String algorithm)
 at iTextSharp.text.pdf.PdfPKCS7..ctor(Byte[] contentsKey, Boolean tsp)
 at iTextSharp.text.pdf.PdfPKCS7..ctor(Byte[] contentsKey)
 at iTextSharp.text.pdf.AcroFields.VerifySignature(String name)
 at Simple35.Pdf.Verify.Main(String[] args) in C:\Projects\CryptoPro\simple35\Pdf\Verify.cs:line 68
 
 Что не так не могу понять. Тестовый сертификат из вашего УЦ. Код примеров не менял. Однако что-то не работает. Не могли бы вы помочь разобраться? Используются VS2010, КриптоПро CSP 3.6 R2, КриптоПро .NET (1.0.4461.3), iTextSharp (5.2.1) Отредактировано пользователем 20 апреля 2012 г. 14:40:53(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-ПроСказал(а) «Спасибо»: 21 разПоблагодарили: 740 раз в 698 постах
 
 |  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                Эту ветку я уже читал. Если в качестве примера подписи и проверки Вы имеете в виду файл pdf_signing.cs, то его я тоже скачал. Он ничем существенным не от личается от примеров в проекте simple35. Более того, примеры в simple35 как раз написаны на основе этой дискуссии. И проверка подписи также осуществляется методом af.VerifySignature(name). Именно он и вызывает exception. | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Администраторы
 Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,417  Откуда: КРИПТО-ПРОСказал «Спасибо»: 37 разПоблагодарили: 729 раз в 630 постах
 
 | 
            
		      
                Нужно пропатчить itext. Мы засылали патч разработчикам, они сначала его применили, потом откатили. Вот код  патча. Отредактировано пользователем 20 апреля 2012 г. 16:47:56(UTC)
 | Причина: Не указана | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Активный участник
 Группы: Участники
Зарегистрирован: 13.04.2012(UTC)
 Сообщений: 109
 
 | 
            
		      
                maxdm написал:Нужно пропатчить itext. Мы засылали патч разработчикам, они сначала его применили, потом откатили. Вот код  патча. Спасибо. Наверное дело именно в этом. Только я не очень понимаю, как этот патч поставить. Надо открыть исходники iTextSharp, добавить туда эти две строчки и перекомпилить? Отредактировано пользователем 20 апреля 2012 г. 17:32:27(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close