Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 939  Откуда: Крипто-Про Поблагодарили: 115 раз в 104 постах
  
	 
	
     | 
    
        
            
		      
                Спасибо, мануал поправим.
  Извините, опечатка - конечно же свойством Signers. 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                Новожилова Елена написал: Извините, опечатка - конечно же свойством Signers.
  Это то понятно - непонятно как. Можно небольшой примерчик вызова окна выбора сертификата?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 939  Откуда: Крипто-Про Поблагодарили: 115 раз в 104 постах
  
	 
	
     | 
    
        
            
		      
                Первую подпись делаете, указывая в параметрах метода SignCades null, для вызова окна выбора сертификата. Потом достаете коллекцию Signers, там должен быть один элемент Signer. Его в дальнейшем и используете.
  Не то, чтобы это был стандартный способ, но если сильно хочется... 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                Новожилова Елена написал:Первую подпись делаете, указывая в параметрах метода SignCades null, для вызова окна выбора сертификата. Потом достаете коллекцию Signers, там должен быть один элемент Signer. Его в дальнейшем и используете.
  Не то, чтобы это был стандартный способ, но если сильно хочется...  Не совсем очевидный - но очень даже замечательный способ - главное чтобы заработало, спасибо.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                Код:
 public string Sign(XDocument document, X509Certificate2 cert, X509Store store)
        {
            //CPSigner cpSigner = new CPSigner();
           // cpSigner.TSAAddress = TSPServer;
            //cpSigner.Certificate = GetCAPICOMCert(cert, store);
            CadesSignedData oSignedData = new CadesSignedData();
            oSignedData.Content = document.ToString();
            //Создание и проверка подписи CAdES BES
            string sSignedData = oSignedData.SignCades(null, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false,
                                      CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
            oSignedData.VerifyCades(sSignedData, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false);
            // Создание параллельной подписи CAdES X Long Type 1
            sSignedData = oSignedData.CoSignCades(oSignedData.Signers[0], CADESCOM_CADES_TYPE.CADESCOM_CADES_DEFAULT,
                                                  CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
 
 Падение на последней строке с ошибкой  System.Runtime.InteropServices.COMException was unhandled by user code   Message="Криптографическое сообщение не содержит всех запрошенных атрибутов. (Исключение из HRESULT: 0x8009100F)"   Source="Interop.CAdESCOM"   ErrorCode=-2146889713   StackTrace:        в CAdESCOM.CadesSignedDataClass.get_Signers()        в CAdES.CAdESWrapper.Sign(XDocument document, X509Certificate2 cert, X509Store store) в D:\Avior\Development\3rdParty\CAdES\CAdESWrapper\CAdESWrapper\CAdESWrapper.cs:строка 45        в CAdES.Signer.Sign(XDocument document, X509Certificate2 cert, X509Store store) в D:\Avior\Development\3rdParty\CAdES\CAdES\CAdES\Signer.cs:строка 24        соответственно : -		Signers	'((CAdESCOM.CadesSignedDataClass)(oSignedData)).Signers' threw an exception of type 'System.Runtime.InteropServices.COMException'	CAPICOM.Signers {System.Runtime.InteropServices.COMException} При этом окна с выбором сертификата не было  подскажите в чем ошибка Отредактировано пользователем 30 октября 2009 г. 10:37:15(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                в свою очередь  Код:
            CadesSignedData oSignedData = new CadesSignedData();
            oSignedData.Content = document.ToString();
            //Создание и проверка подписи CAdES BES
            string res = oSignedData.Sign(null, true, CAPICOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);////
 
 в последней строке вызывает ошибку из-за которой начиналась эти ветка, т.е.  System.Runtime.InteropServices.COMException was unhandled by user code   Message="Исключение из HRESULT: 0xC2100121"   Source="Interop.CAdESCOM"   ErrorCode=-1039138527   StackTrace:        в CAdESCOM.CadesSignedDataClass.Sign(ISigner pSigner, Boolean bDetached, CAPICOM_ENCODING_TYPE EncodingType)        в CAdES.CAdESWrapper.Sign(XDocument document, X509Certificate2 cert, X509Store store) в D:\Avior\Development\3rdParty\CAdES\CAdESWrapper\CAdESWrapper\CAdESWrapper.cs:строка 39        в CAdES.Signer.Sign(XDocument document, X509Certificate2 cert, X509Store store) в D:\Avior\Development\3rdParty\CAdES\CAdES\CAdES\Signer.cs:строка 24        в  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                Господа, я верю - Вам не все-равно - отреагируйте пожалуйста     
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 939  Откуда: Крипто-Про Поблагодарили: 115 раз в 104 постах
  
	 
	
     | 
    
        
            
		      
                Цитата:- Signers '((CAdESCOM.CadesSignedDataClass)(oSignedData)).Signers' threw an exception of type 'System.Runtime.InteropServices.COMException' CAPICOM.Signers {System.Runtime.InteropServices.COMException}  Это ошибка в Cadescom. Будем исправлять :-) Цитата:в последней строке вызывает ошибку из-за которой начиналась эти ветка, т.е.   А здесь то же самое, с чего начиналась ветка - не задан адрес службы штампов. Отредактировано пользователем 30 октября 2009 г. 17:20:38(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 939  Откуда: Крипто-Про Поблагодарили: 115 раз в 104 постах
  
	 
	
     | 
    
        
            
		      
                Только сейчас заметила, а точно в случае с Код:public string Sign(XDocument document, X509Certificate2 cert, X509Store store)
        {
            //CPSigner cpSigner = new CPSigner();
           // cpSigner.TSAAddress = TSPServer;
            //cpSigner.Certificate = GetCAPICOMCert(cert, store);
            CadesSignedData oSignedData = new CadesSignedData();
            oSignedData.Content = document.ToString();
            //Создание и проверка подписи CAdES BES
            string sSignedData = oSignedData.SignCades(null, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false,
                                      CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
            oSignedData.VerifyCades(sSignedData, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES, false);
            // Создание параллельной подписи CAdES X Long Type 1
            sSignedData = oSignedData.CoSignCades(oSignedData.Signers[0], CADESCOM_CADES_TYPE.CADESCOM_CADES_DEFAULT,
                                                  CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64); 
 не было окна с выбором сертификата? Ведь, по Вашим словам, ошибка происходит на последней строке, то есть, уже после выбора сертификата.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 15.06.2009(UTC) Сообщений: 89 Откуда: Уфа, РРЦ "АйТи"
  
	 
	
     | 
    
        
            
		      
                1) Новожилова Елена написал:Цитата:в последней строке вызывает ошибку из-за которой начиналась эти ветка, т.е.   А здесь то же самое, с чего начиналась ветка - не задан адрес службы штампов.  а ведь обещали адекватное описание ;) - я вот к этому ведь ) Смирнов написал:По первому вопросу. Код ошибки означает "Не задан адрес службы штампов времени" (ошибка описана в модуле tspcli.dll). В другой ветке я вам уже описал причину возникновения этой ошибки.
  В новом дистрибутиве, который скоро будет доступен для скачивания, подобные ошибки будут сопровождаться осмысленным описанием.  2) Новожилова Елена написал: Только сейчас заметила, а точно в случае с ...  не было окна с выбором сертификата? Ведь, по Вашим словам, ошибка происходит на последней строке, то есть, уже после выбора сертификата.
  В этом то и проблема ... окна нет, а подписание без сертификата проходит ... хуже того - еще и VerifyCades  успешен ;)  Отредактировано пользователем 30 октября 2009 г. 17:44:04(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close