Статус: Новичок
Группы: Участники
Зарегистрирован: 10.04.2019(UTC) Сообщений: 2 Откуда: Москва
|
Добрый день! Решаю задачу по формированию блока данных СМЭВ-конверта SenderProviderRequestData, который содержит PersonalSignature, для отправки на проверку в СМЭВ3. 1. Данные, которые должны быть подписаны (содержимое MessagePrimaryContent): Код:<ns1:ESIARegisterRequest xmlns:ns1="urn://mincomsvyaz/esia/reg_service/register/1.4.0" xmlns:ns2="urn://mincomsvyaz/esia/reg_service/register/1.4.0">
<ns2:RoutingCode>DEV</ns2:RoutingCode>
</ns1:ESIARegisterRequest>
2. Шаблон для подписи: Код:<Document>
<ns1:ESIARegisterRequest Id="PERSONAL_SIGNATURE" xmlns:ns1="urn://mincomsvyaz/esia/reg_service/register/1.4.0" xmlns:ns2="urn://mincomsvyaz/esia/reg_service/register/1.4.0">
<ns2:RoutingCode>DEV</ns2:RoutingCode>
</ns1:ESIARegisterRequest>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<Reference URI="#PERSONAL_SIGNATURE">
<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/>
</Reference>
</SignedInfo>
<SignatureValue/>
<KeyInfo/>
</Signature>
</Document>
3. Подписываю плагином: Код:function SignXml(data, certificate) {
var signer = cadesplugin.CreateObject("CAdESCOM.CPSigner");
signer.Certificate = certificate;
var signed = cadesplugin.CreateObject("CAdESCOM.SignedXML");
signed.Content = data;
signed.SignatureType = cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE;
return signed.Sign(signer);
}
На последней строчке получаю ошибку: Ошибка при обработке цифровой подписи XML. Экспериментальным путем было выяснено, что проблема в Id="PERSONAL_SIGNATURE" в блоке с данными. На основе примера пришел к выводу, что для Id нужно добавлять namespace, например, xml:id. НО, по документации "Методические рекомендации по работе с ЕСМЭВ" Id должен быть без какого-либо namespace, иначе проверка не пройдет. Подскажите, пожалуйста, как правильно сформировать xml-документ, чтобы он подписался через плагин и успешно проверился в СМЭВ3.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close