Статус: Новичок
  Группы: Участники
 Зарегистрирован: 20.10.2011(UTC) Сообщений: 4 Откуда: Москва
  
	 
	
     | 
    
        
            
		      
                Используем КриптоПро 3.6 и последнюю версию Sharpei. На другой стороне стоит версия криптоПро 3.0 Подписываем xml, на выходе имеем подпись: Код:- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
- <SignedInfo> 
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
<SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411" /> 
- <Reference URI=""> 
  - <Transforms> 
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 
    <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
  </Transforms> 
  <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" /> 
  <DigestValue>D+7qSgXk2q3/HD+Bc3GUXzXAK3ZHBANW4Y/Q4xaQEVQ=</DigestValue> 
</Reference> 
</SignedInfo> 
<SignatureValue> подпись =</SignatureValue> 
- <KeyInfo> 
- <X509Data> 
  <X509>сертификат</X509Certificate> 
</X509Data> 
</KeyInfo> 
</Signature> 
</Message> 
 
 с другой стороны, тот кто получает запрос. утверждает что запрос имеет не верную структуру xml и предлагает мне прислать подпись в таком виде: Код:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
   <ds:CanonicalizationMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
                   <ds:SignatureMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411" />
    <ds:Reference xmlns:ds="http://www.w3.org/2000/09/xmldsig#" URI="">
      <ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
       <ds:Transform xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
       <ds:Transform xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" />
     </ds:Transforms>
     <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
     <ds:DigestValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">8X2MUhIVzq1DM3uoUq9E0ibtmr9VpbRAmrCEsW7P7Cc=</ds:DigestValue>
   </ds:Reference>
 </ds:SignedInfo>
 <ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#">подпись</ds:SignatureValue>
  <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#">
     <X509Certificate>сертификат</X509Certificate>" +
   </X509Data>
 </ds:KeyInfo>
</ds:Signature>
</Message>
 
 визуально отличие только в префиксе ds и в названии алгоритма подписи.  Подпись формируется стандартным методом, так же как в примере: Код:SignedXml signedXml = new SignedXml(doc);
                signedXml.SigningKey = cert.PrivateKey;
                Reference reference = new Reference();
                reference.Uri = "";
                reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
                XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
             
                reference.AddTransform(env);
                XmlDsigC14NTransform c14 = new XmlDsigC14NTransform();
                reference.AddTransform(c14);
                
                signedXml.AddReference(reference);
                KeyInfo keyInfo = new KeyInfo();
                keyInfo.AddClause(new KeyInfoX509Data(cert));
                signedXml.KeyInfo = keyInfo;
                signedXml.ComputeSignature(); 
 Это проблема совместимости? И как мне заставить шарпей формировать подпись с префиксами и нужным алгоритмом?   
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Вам и не снилось
  Группы: Администраторы
 Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
  Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
  
	 
	
     | 
    
        
            
		      
                Попробуйте добавить в код создания подписи: Код:signedXml.SignedInfo.SignatureMethod = CryptoPro.Sharpei.Xml.CPSignedXml.XmlDsigGost3410UrlObsolete; 
    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Новичок
  Группы: Участники
 Зарегистрирован: 20.10.2011(UTC) Сообщений: 4 Откуда: Москва
  
	 
	
     | 
    
        
            
		      
                Смирнов написал:Попробуйте добавить в код создания подписи: Код:signedXml.SignedInfo.SignatureMethod = CryptoPro.Sharpei.Xml.CPSignedXml.XmlDsigGost3410UrlObsolete; 
  спасибо. алгоритм теперь вроде совпадает.  а как быть с префиксами???  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Вам и не снилось
  Группы: Администраторы
 Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
  Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
  
	 
	
     | 
    
        
            
		      
                lnkz написал:а как быть с префиксами???  По идее не в префиксах счастье. Может уже такая подпись проверится?    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close