26.05.2004 15:05:01Подпись XML-документа Ответов: 4
Irina
Подскажите пожалуста новичку. Я работаю с php, javascript. Мне нужно подписать xml документ. что я должна внедрить в код чтобы поставить ЭЦП на документ. И если можно какие-нибудь ссылки на данную проблему. Заранее спасибо
 
Ответы:
02.09.2004 13:28:09timda
Есть интересно ли пример подписи и отправки XML документа на JavaScript у вас ?
13.09.2004 15:26:07Serge3leo
Из Javascript Вы можете использовать COM-объект MSXML5 совместно с "КриптоПро CSP 3.0"

Переслано:
---------------------
Здравствуйте!

На данный момент есть примеры реализации подписи и её проверки только на С++.
В прилагаемом chm-файле - можно найти примеры реализации подписи XML документа, в том числе и на JScript (XML Digital Signature/XML Digital Signature Reference/XML Digital Signature Methods/sign(verify) Method).
Главное, это правильно оформить сам XML документ, который вы подаёте на вход для подписи (шаблоны также находятся в прилагаемом файле).

Ниже привожу шаблоны (входной XML документ) для подписи, использующей наши стандарты.
Для проверки подписи на вход подаётся полученный в результате подписи XML файл.

<?xml version="1.0" encoding="UTF-8"?>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<ds:Reference URI="#obj"
Type="http://www.w3.org/2000/09/xmldsig#;Object">
<ds:DigestMethod
Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue/>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue />
<ds:Object Id="obj" MimeType="text/plain">Hello, World!</ds:Object>
<ds:KeyInfo></ds:KeyInfo>
</ds:Signature>

В зависимости от решаемых задач, этот файл нужно менять. Например, когда есть необходимость поставить 2 подписи.

Рекомендую также изучить XML-Signature Syntax and Processing, ссылку на который можно также найти в прилагаемом chm, набрав в закладке "Search" W3C recommendation.

Если появятся вопросы, обращайтесь.


С уважением,
Калугина Ирина
14.09.2004 13:15:17timda
кстати про подпись XML парсером 5 версии
вот этот код постоянно вылетает с ошибкой Access is denied. Не подскажете как вылечить ? спасибо

if (!xmldsig.signature)
{
alert("Invalid signature template\n");
return false;
}

var _key = cert.PrivateKey.ContainerName;
document.all.a.value = _key;
var oKey = xmldsig.createKeyFromCSP(1, "", _key, 0);

try {
var a = xmldsig.sign(oKey, 1);
}
catch (e)
{
alert(e.description);
}
14.09.2004 13:16:20timda
вылетает соотвественно на этапе .Sign(oKey, 1)