Статус: Участник
Группы: Участники
Зарегистрирован: 18.11.2010(UTC) Сообщений: 15
Сказал(а) «Спасибо»: 4 раз
|
Здравствуйте. Столкнулся со следующей проблемой. Подписываю Body-элемент SOAP-пакета .NET-объектом SignedXml (пытаюсь наладить взаимодействие с РНиП) Код:
X509Store store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
var signingCerts = store.Certificates.Find(X509FindType.FindByThumbprint,
"ea dc a4 4f c1 f0 9a 8a f5 c3 1e 2e 13 55 06 92 30 dd 41 7a", true);
if (signingCerts.Count<=0) return unsignedMessage;
store.Close();
var signingCert = signingCerts[0];
var signedXml = new SignedXml(xDoc);
signedXml.SigningKey = signingCert.PrivateKey;
signedXml.KeyInfo = new KeyInfo();
signedXml.KeyInfo.AddClause(new KeyInfoX509Data(signingCert));
signedXml.SignedInfo.SignatureMethod = signingCert.PrivateKey.SignatureAlgorithm;
Reference reference = new Reference();
reference.Uri = "#body";
var env = new XmlDsigExcC14NTransform();
reference.AddTransform(env);
reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/2001/10/xml-exc-c14n#";
signedXml.AddReference(reference);
signedXml.ComputeSignature();
XmlElement xmlDigitalSignature = signedXml.GetXml();
Каждый запуск кода на одном и том же XML-е даёт разное значение подписи (SignatureValue), при этом хэш (DigestValue) не меняется. После каждого запуска верифицирую <Signature> тем же SignedXml - верификация проходит успешно. В чём подвох? Весь пакет, если интересно: Код:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none" s:mustUnderstand="1">http://roskazna.ru/SmevUnifoService/UnifoTransferMsg</Action>
<ActivityId xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics" CorrelationId="bd8e5aef-4f13-48e1-811a-3a43da9c543c">2ecf1093-ad57-40b4-b076-53afe9df9016</ActivityId>
<VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo3WXH7uaAS9GvpKrOm37OLwAAAAAMSpf+KrOX0mc8ar55bB98aMUxqiBizJKojhhlCoMRJUACQAA</VsDebuggerCausalityData>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" id="Cert">[Сертификат]</wsse:BinarySecurityToken>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411" />
<Reference URI="#body">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411" />
<DigestValue>kAaM4srbIgOfz9AFbHwVIHqEKAGoQNSWBWDN/MsIRd8=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>nERC1VZIGhK+zgxUbZJg4dExpEdg8KXHPfcOqlEdWa3lDXxwOb3vyG9NthZGNZCDO9KTBuEqrrjmPjd43ERJzw==</SignatureValue>
<KeyInfo>
<X509Data><X509Certificate>[Сертификат]</X509Certificate></X509Data>
</KeyInfo></Signature></wsse:Security>
</s:Header>
<s:Body id="body">
<UnifoTransferMsg xmlns="http://roskazna.ru/SmevUnifoService/">
<Message xmlns="http://smev.gosuslugi.ru/rev110801">
<Sender>
<Code>00408</Code>
<Name>ООО «Научно-производственный центр Бюджетного учёта»</Name>
</Sender>
<Recipient>
<Code>0000000000</Code>
<Name>UNIFO</Name>
</Recipient>
<Originator>
<Code>0000000001</Code>
<Name>External Organization</Name>
</Originator>
<TypeCode>5</TypeCode>
<Date>2013-01-01T00:00:00</Date>
</Message>
<MessageData xmlns="http://smev.gosuslugi.ru/rev110801">
<AppData>
<exportData xmlns="http://rosrazna.ru/xsd/SmevUnifoService">
<DataRequest xmlns="http://roskazna.ru/xsd/PGU_DataRequest">
<PostBlock xmlns="">
<ID>254510</ID>
<TimeStamp>2013-01-01T00:00:00</TimeStamp>
<SenderIdentifier>00002</SenderIdentifier>
</PostBlock>
</DataRequest>
</exportData>
</AppData>
</MessageData>
</UnifoTransferMsg>
</s:Body>
</s:Envelope>
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,836   Сказал «Спасибо»: 582 раз Поблагодарили: 2316 раз в 1814 постах
|
|
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close