Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline asdsdf  
#1 Оставлено : 20 апреля 2018 г. 12:42:24(UTC)
asdsdf

Статус: Участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.