| 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 28.09.2021(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 3 раз
 | 
            
		      
                Автор: NAlexV  Автор: Андрей *  Автор: NAlexV  Автор: Андрей *  всё понятно, бинарный файл не принимает.
 Да, именно так, а нужно подписать бинарник. Он и будет подписан. Кодируете в base64, указываете перед присваиванием, что закодировано - внутри будет декодировано и подписано бинарное представление. Понятно, значит я не понял семантику значения CADESCOM_BASE64_TO_BINARY перечисления CADESCOM_CONTENT_ENCODING_TYPE. Получается, что смысл значения - подписать бинарник, закодированный в Base64. :) Спасибо. Андрей, добрый день. Сетевики настроили сетевой доступ к серверу "http://qs.cryptopro.ru/tsp/tsp.srf", но теперь возвращается ошибка: "(CAdESCOM.CadesSignedData.1): The revocation process could not continue - the certificate(s) could not be checked." - процесс подписи не может быть продолжен, не удалось проверить сертификат. Использую сертификат с отпечатком "61 b5 87 a7 e3 94 02 e8 57 6d 66 f6 5e 72 08 fe dc 3c c0 e2". Что не так с сертификатом? | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 |  | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 28.09.2021(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 3 раз
 |  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                включить и собрать лог через dbgview, приложить в zip   traceall_x64.zip (1kb) загружен 0 раз(а). | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 28.09.2021(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 3 раз
 | 
            
		      
                Автор: Андрей *  включить и собрать лог через dbgview, приложить в zip   traceall_x64.zip (1kb) загружен 0 раз(а). Андрей, добрый день. Разобрались с проблемой описанной выше. Оказалось, что сетевой доступ настроили но не полностью.  Теперь метод  Код:ДанныеДляПодписи.SignCades(Крипто, ТипПодписи, ВидПодписиОтдельная, КодировкаПодписи);
  возвращает строку подписи (в строке иероглифы), но система назначения, куда мы отправляем файл и подпись этого файла не принимает - выдает ошибку: "невозможно прочитать файл подписи".   Otzyv.txt.sgn (924kb) загружен 1 раз(а). Собственно вопросы.  Надо ли как-то дополнительно преобразовывать сроку подписи, полученную методом SignCades?
 Является ли файл подписи подписью в формате CADES-T?
 Отредактировано пользователем 5 октября 2021 г. 11:28:12(UTC)
 | Причина: Не указана | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                1. Можно при подписании указывать, чтобы в ответе было закодировано в base64.2. Правильно записали ответ, как бинарные данные? Сейчас это не ASN.1.
 | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 28.09.2021(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 3 раз
 | 
            
		      
                Автор: Андрей *  1. Можно при подписании указывать, чтобы в ответе было закодировано в base64.2. Правильно записали ответ, как бинарные данные? Сейчас это не ASN.1.
 Андрей, добрый день. Получилось подписывать на платформе 1С:Предприятие файлы подписью с криптометкой времени в формате CADES-T. Если кому интересно, то работающая функция выглядит так: Код:
Функция ПолучитьПодписьДокументаУКЭП(СтруктураСообщения, ПодписываемыеДвоичныеДанные, ОписаниеОшибки) Экспорт
	                                                               
	Подпись = Неопределено;
	
	СтрокаОтпечатка = Константы.ОтпечатокДействующегоСертификата.Получить();
	Отпечаток = ПолучитьДвоичныеДанныеИзHexСтроки(СтрокаОтпечатка);
	Крипто = Новый МенеджерКриптографии("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", "", 80);	
	Крипто.ПарольДоступаКЗакрытомуКлючу = Константы.ПарольДоступаКЗакрытомуКлючу.Получить();
	Крипто.АлгоритмПодписи = "GR 34.10-2012 256";
	Хранилище = Крипто.ПолучитьХранилищеСертификатов(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты,РасположениеХранилищаСертификатовКриптографии.ДанныеПользователяОС);
	НайденныйСертификат = Хранилище.НайтиПоОтпечатку(Отпечаток);
	
	Если НайденныйСертификат = Неопределено Тогда
		ОписаниеОшибки = "Подпись файла УКЭП. По отпечатку не найден сертификат в хранилище";
		Возврат Неопределено;
	КонецЕсли;
	
	Попытка
		
		Если СтруктураСообщения.ПодписьКриптоМенеджером1С Тогда
			
			Подпись = Крипто.Подписать(ПодписываемыеДвоичныеДанные, НайденныйСертификат);
			ДанныеОСертификате = ПолучитьДанныеОСертификате(НайденныйСертификат);
			СтруктураСообщения.Вставить("ДанныеОСертификате", ДанныеОСертификате);
			
		Иначе
		
			Крипто = СоздатьCOMОбъектCAdESCOM("CPSigner"); 
			Крипто.Certificate = ПолучитьСертификатПоОтпечатку(СтрокаОтпечатка);
			Крипто.KeyPin = Константы.ПарольДоступаКЗакрытомуКлючу.Получить();
			Крипто.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf";
			ДанныеДляПодписи = СоздатьCOMОбъектCAdESCOM("CadesSignedData"); 
			ДанныеДляПодписи.ContentEncoding = 1;
			ДанныеДляПодписи.Content = ПолучитьBase64СтрокуИзДвоичныхДанных(ПодписываемыеДвоичныеДанные);
			ТипПодписи = 5;	// CADES-T 
			ВидПодписиОтдельная = Истина;
			КодировкаПодписи = 0;	//  кодировка  Base64
			СтрокаПодписи = ДанныеДляПодписи.SignCades(Крипто, ТипПодписи, ВидПодписиОтдельная, КодировкаПодписи); 
			ДанныеОСертификате = ПолучитьДанныеОСертификате(НайденныйСертификат);
			СтруктураСообщения.Вставить("ДанныеОСертификате", ДанныеОСертификате);
			Если ЗначениеЗаполнено(СтрокаПодписи) Тогда
				Подпись = Base64Значение(СтрокаПодписи);
			КонецЕсли;
			
		КонецЕсли;
		
	Исключение
		
		ОписаниеОшибки = "Подпись файла УКЭП. " + ОписаниеОшибки();
		
	КонецПопытки;
	
	Возврат Подпись;
	
КонецФункции
 Появилась еще одна проблема, связанная с подписью файлов с криптометкой времени. Для целевой системы, куда направляются подписанные файлы, требуется в сопроводительном XML документе к подписанному файлу указать дату и время подписи документа, совпадающие с реальной датой и временем подписи документа на криптосервере времени. Вопрос. Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом? | 
    | 
             | 
            
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                Автор: NAlexV   Вопрос.
 Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом?
 Аналогично через COM - прочитать атрибуты...  ? | 
|  | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
        
            
            
    | 
	Статус: Сотрудник
 Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,969  Сказал «Спасибо»: 605 разПоблагодарили: 2346 раз в 1842 постах
 
 | 
            
		      
                инициализировать объекты, заполнить, проверить подпись: cadessigneddata https://docs.cryptopro.r...om_class/cadessigneddata Подписанты: Signers Далее по каждому: Объект CPSigner есть список - Свойства...  среди них, к примеру:  Цитата:SignatureTimeStampTime	 Время подписи из штампа времени на значение подписи.
 | 
|  | 
    | 
              1 пользователь поблагодарил Андрей * за этот пост. | 
            NAlexV оставлено 08.10.2021(UTC)
         | 
    |  | 
        
        
        
            
        
            
            
    | 
	Статус: Участник
 Группы: Участники
 Зарегистрирован: 28.09.2021(UTC) Сообщений: 20 Сказал(а) «Спасибо»: 3 раз
 | 
            
		      
                Автор: Андрей *  Автор: NAlexV   Вопрос.
 Существуют ли какие либо методы извлечения реальных даты и времени подписи документа из открепленного файла с подписью или иным методом?
 Аналогично через COM - прочитать атрибуты...  ? Какой COM объект позволяет прочитать атрибуты штампа подписи? Какие методы для этого нужно использовать? Может быть есть пример на С++. | 
    | 
             | 
            
         | 
    |  | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close