Статус: Участник
Группы: Участники
Зарегистрирован: 18.05.2009(UTC) Сообщений: 10 Откуда: Russia
|
Челпанов А. написал:Вообще-то и при проверке CMS подписи (и еще в паре мест, например при двухсторонней аудентификации в TLS) почти все работает корректно. Вот это почти Sharpei и исправляет; не реализует, а именно чуть правит.
Гм. Тогда встречный вопрос: Является ли установка Sharpei RTE строгонеобходимым действием или можно обойтись простым перетаскиванием библиотек (сборок) в папке с программой? Там что-то серьезное при инсталяции происходит, кроме регистрации сборок в GAC?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 29.04.2009(UTC) Сообщений: 2
|
Здравствуйте. У меня возникла похожая проблема. Мне необходимо подписать XML файл и отправить его на сайт для проверки. В JavaScript это делается через CAPICOM: А на C# подготавливаю SignedXML так: Код:
string dsigObjectId = "TS_SO_Zayavka_polzovatelya";
SignedXml signedXml = new SignedXml();
signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
signedXml.SigningKey = x509.PrivateKey;
Reference reference = new Reference("#TS_SO_Zayavka_polzovatelya");
reference.DigestMethod = "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
reference.Type = "http://www.w3.org/2000/09/xmldsig#;Object";
signedXml.AddReference(reference);
XmlDocument xdoc = new XmlDocument();
xdoc.PreserveWhitespace = false;
string normilize_xmlstring = xmlstring.Replace("<", "<").Replace(""", "\"");
xdoc.LoadXml(normilize_xmlstring);
DataObject dataObject = new DataObject(dsigObjectId, "text/plain", "", xdoc.DocumentElement);
signedXml.AddObject(dataObject);
signedXml.KeyInfo = new KeyInfo();
KeyInfoX509Data keyX509 = new KeyInfoX509Data();
keyX509.AddCertificate(x509);
signedXml.KeyInfo.AddClause(keyX509);
signedXml.ComputeSignature();
XmlElement xelement = signedXml.GetXml();
XmlDocument xd = new XmlDocument();
xd.AppendChild(xd.ImportNode(xelement, true));
xmlsingnedstring = xd.InnerXml;
И отправляю на сервер, но на сервере проверка не проходит. В чем может быть проблема? Может есть примеры, как это делать? Вложение(я): JavaScriptCAPICOM.txt (4kb) загружен 81 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2007(UTC) Сообщений: 390 Откуда: КриптоПро Поблагодарили: 2 раз в 2 постах
|
Не понял какими средствами Вы проверяете подпись (У вас в тексте и через CAPICOM и на C# реализована только подпись). Проходит ли подпись на себя (C# на C# и CAPICOM на CAPICOM)? Примеры подписи и проверки подписи на C# есть в КриптоПро Sharpei SDK Simple.zip каталог xml Примеры подписи и проверки подписи через CAPICOM есть в Microsoft Platform SDK C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Security\capicom\vbs\CSignData.vbs |
С уважением, Александр. |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close