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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline msberyanov  
#1 Оставлено : 21 января 2022 г. 11:56:10(UTC)
msberyanov

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

Группы: Участники
Зарегистрирован: 21.12.2021(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Добрый день. Составил шаблон подписи, пытаюсь заставить криптопро обработать данный шаблон, но в итоге получаю ошибку:

"An error was encountered while processing an XML digital signature. (0x800705BA)"

Без XSLT трансформации подпись успешно формируется. Поддерживаются ли XSLT трансформации?

Код:
<?xml version="1.0" encoding="UTF-8"?>
<a>
    <b>Text 1</b>
    <b>Text 2</b>
    <c>Comment</c>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xslt-transformed-xml-signature">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/>
            <ds:Reference URI="">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
                        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
                            <xsl:template match="a">
                                <root>
                                    <texts>
                                        <xsl:apply-templates select="b"/>
                                    </texts>
                                    <xsl:apply-templates select="c"/>
                                </root>
                            </xsl:template>
                            <xsl:template match="b">
                                <text>
                                    <xsl:apply-templates/>
                                </text>
                            </xsl:template>
                            <xsl:template match="c">
                                <c>
                                    <xsl:apply-templates/>
                                </c>
                            </xsl:template>
                        </xsl:stylesheet>
                    </ds:Transform>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
                <ds:DigestValue/>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue/>
        <ds:KeyInfo/>
    </ds:Signature>
</a>
Offline two_oceans  
#2 Оставлено : 21 января 2022 г. 12:59:55(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,536
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 105 раз
Поблагодарили: 375 раз в 354 постах
Порекомендую для чистоты эксперимента поменять трансформы местами: поставить enveloped-signature перед XSLT. Сейчас XSLT будет применяться и к Signature тоже (а там само определение шаблона трансформации) затем из результата будет попытка удалить Signature. Как такое сочетание обработается, будет зависить и от XSL sheet. Может Вам просто не повезло с XSL sheet, а может и правда поддержки нет - в данном случае не ясно.
Offline msberyanov  
#3 Оставлено : 21 января 2022 г. 13:25:36(UTC)
msberyanov

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

Группы: Участники
Зарегистрирован: 21.12.2021(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Автор: two_oceans Перейти к цитате
Порекомендую для чистоты эксперимента поменять трансформы местами: поставить enveloped-signature перед XSLT. Сейчас XSLT будет применяться и к Signature тоже (а там само определение шаблона трансформации) затем из результата будет попытка удалить Signature. Как такое сочетание обработается, будет зависить и от XSL sheet. Может Вам просто не повезло с XSL sheet, а может и правда поддержки нет - в данном случае не ясно.


А я так и тестировал, ради эксперимента, поменял их местами и скинул как раз то, что было заменено. В том случае также получал ошибку.
Offline msberyanov  
#4 Оставлено : 31 января 2022 г. 14:56:59(UTC)
msberyanov

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

Группы: Участники
Зарегистрирован: 21.12.2021(UTC)
Сообщений: 14

Сказал(а) «Спасибо»: 3 раз
Коллеги, данный шаблон выдает ровно ту же ошибку. Можно ли узнать поддерживаются ли XSLT трансформации в Browser Plugin?

Код:
<a>
 <b>Text 1</b>
    <b>Text 2</b>
    <c>Comment</c>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="base64-content-signature">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            <ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/>
            <ds:Reference URI="">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
                         <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
                            <xsl:output method="text"/>
                            <xsl:template match="a">
                                <root>
                                    <texts>
                                        <xsl:apply-templates select="b"/>
                                    </texts>
                                    <xsl:apply-templates select="c"/>
                                </root>
                            </xsl:template>
                            <xsl:template match="b">
                                <text>
                                    <xsl:apply-templates/>
                                </text>
                            </xsl:template>
                            <xsl:template match="c">
                                <c>
                                    <xsl:apply-templates/>
                                </c>
                            </xsl:template>
                         </xsl:transform>
                     </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
                <ds:DigestValue/>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue/>
        <ds:KeyInfo/>
    </ds:Signature>
</a>
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.