Статус: Участник
  Группы: Участники
 Зарегистрирован: 10.04.2017(UTC) Сообщений: 17 Откуда: Россия
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Здравствуйте! Есть вебинтерфейс с установленным плагином, в нём создаётся подпись по примеру отсюда  http://cpdn.cryptopro.ru/?url=/content/cades/reference.html На выходе получаем строку base64.  Задача следующая, сравнить содержимое с оригиналом, сама подпись проверку проходит, но примера, как сравнить содержимое с оригиналом, я не нашёл. Подскажите, можно ли это сделать, и как, если можно?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 10.04.2017(UTC) Сообщений: 17 Откуда: Россия
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Здравствуйте. Автор: RomanK  Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
   Отсоединенная подпись?    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Автор: RomanK    Задача следующая, сравнить содержимое с оригиналом, сама подпись проверку проходит, но примера, как сравнить содержимое с оригиналом, я не нашёл.   Тип подписи какой? Присоединенная? Тогда внутри то, что было подписано. Как проверяете? Если подпись отсоединенная и проходит проверку - то нет "еще одного файла-оригинала". Если присоединенная - то внутри то, что было подписано. Можно извлечь и... сверить с тем, что подавали на подписание (оригинал) - сверить хеши, например, если подразумеваете, что "подписали" не те байты, что в оригинале  (неправильно считали файл, закодировали лишний раз и прочие ошибки "на старте")    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Автор: RomanK  Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
   а проверка где?    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 10.04.2017(UTC) Сообщений: 17 Откуда: Россия
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Автор: Андрей *  Здравствуйте. Автор: RomanK  Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
   Отсоединенная подпись?  Подпись присоединённая. При этом если подписать средствами КриптоПро .NET и проделать ту же самую процедуру, signedCms.ContentInfo.Content содержит нужную информацию, а подпись с плагина увы.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 10.04.2017(UTC) Сообщений: 17 Откуда: Россия
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Автор: Андрей *  Автор: RomanK  Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
   а проверка где?  Есть некоторая строка, которую нужно подписать. Преобразую в base64 отправляю плагину, который её подписывает Код:var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
                oSignedData.propset_Content(dataToSign);
                var sSignedMessage = '';
                try {
                    sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, true);
                    args[2](sSignedMessage);
                } catch (err) {
                    args[3]('Failed to create signature. Error: ' + Org25SR.getErrorMessage(err));
                } 
 Возвращается подпись в виде base64 Вопрос как извлечь содержимое. Никаких действий с подписью не происходит кроме того, что приведено в примерах. Полагаю, что содержимое должно находиться в signedCms.ContentInfo.Content, но там пустой массив без данных  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                Автор: RomanK  Автор: Андрей *  Автор: RomanK  Полученный base64 конвертирую в массив byte[] imageBytes = Convert.FromBase64String(signedData); Потом выполняю следующие действия  SignedCms signedCms = new SignedCms(); // Декодируем сообщение signedCms.Decode(imageBytes); var content = signedCms.ContentInfo.Content; // тут пустой массив байт, хотя в SignerInfos информация о подписанте присутствует
   а проверка где?  Есть некоторая строка, которую нужно подписать. Преобразую в base64 отправляю плагину, который её подписывает Код:var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
                oSignedData.propset_Content(dataToSign);
                var sSignedMessage = '';
                try {
                   [h] sSignedMessage = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_BES, true);[/h]
                    args[2](sSignedMessage);
                } catch (err) {
                    args[3]('Failed to create signature. Error: ' + Org25SR.getErrorMessage(err));
                } 
 Возвращается подпись в виде base64 Вопрос как извлечь содержимое. Никаких действий с подписью не происходит кроме того, что приведено в примерах. Полагаю, что содержимое должно находиться в signedCms.ContentInfo.Content, но там пустой массив без данных  Читайте  документацию для .SignCadesУ Вас отсоединенная подпись.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2350 раз в 1846 постах
  
	 
	
     | 
    
        
            
		      
                На  тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 10.04.2017(UTC) Сообщений: 17 Откуда: Россия
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Автор: Андрей *  На  тестовой странице - подпишите файл и убедитесь, что подписанные данные доступны из .NET, т.к. в примере создаётся присоединенная подпись.  Проверил, данные доступны. Где можно посмотреть код тестовой страницы работы с плагином?   
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close