Статус: Участник
Группы: Участники
Зарегистрирован: 20.03.2018(UTC) Сообщений: 15 Сказал(а) «Спасибо»: 5 раз
|
В этом примере есть использование AuthenticatedAttributes2 http://cpdn.cryptopro.ru...lugin-samples-attrs.html Пытаюсь провернуть ту же фишку при подписи XML - http://cpdn.cryptopro.ru...in-samples-sign-xml.html И вроде всё работает, по крайней мере в XML я вижу внедрённый фрагмент с ЭП. Но после верификации вижу, что сертификат не содержит в AuthenticatedAttributes2 ничего. Подписываю так: Код:
signXml(certificate, xml, signParams = {}) {
return new Promise (function (resolve, reject) {
cadesplugin.async_spawn(function*(arg) {
try {
var signer = yield cadesplugin.CreateObjectAsync('CAdESCOM.CPSigner');
yield signer.propset_Certificate(certificate);
const attributes = yield signer.AuthenticatedAttributes2;
if (! ('date' in signParams)) {
signParams['date'] = new Date();
}
var attribute = yield cadesplugin.CreateObjectAsync("CADESCOM.CPAttribute");
attribute.propset_Name(cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION);
attribute.propset_Value(JSON.stringify(signParams));
console.log('CryptoProAsyncSigner#signXml', signParams)
attributes.Add(attribute);
var signerXml = yield cadesplugin.CreateObjectAsync('CAdESCOM.SignedXML');
var XmlDsigGost3410Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411';
var XmlDsigGost3411Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411';
var CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;
yield signerXml.propset_Content(xml);
yield signerXml.propset_SignatureType(CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED);
yield signerXml.propset_SignatureMethod(XmlDsigGost3410Url);
yield signerXml.propset_DigestMethod(XmlDsigGost3411Url);
var signature = yield signerXml.Sign(signer);
resolve(signature);
} catch (e) {
reject(e);
}
});
});
};
Верификацию делаю так: Код:fetch('/po/plan/getEisMessage/id/23401', {
cache: 'no-cache',
credentials: 'same-origin',
method: 'POST',
mode: 'cors'
}).then(function(response) {
response.text().then(function(xml) {
cadesplugin.CreateObjectAsync("CAdESCOM.SignedXML").then(function(signedXML) {
signedXML.Verify(xml).then(function() {
signedXML.Signers.then(function(signers) {
signers.Item(1).then(function(signer) {
signer.AuthenticatedAttributes2.then(function(attributes) {
attributes.Count.then(console.log) // ВОТ ЗДЕСЬ ПИШЕТ 0
// attributes.Item(4).then(function(attribute) {
// attribute.Value.then(function(signParams) {
// console.log(signParams);
// })
// })
})
})
})
})
});
});
})
Что я делаю не так? Отредактировано пользователем 20 апреля 2018 г. 13:12:29(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close