﻿<?xml version="1.0" encoding="utf-8"?>
<!--
    This XML document is the output of clean-for-DTD.xslt; a tool that strips
    extensions to RFC2629(bis) from documents for processing with xml2rfc.
--><!--
    Copyright(C) 2003-2009 ООО "Крипто-Про"

    Этот файл содержит информацию, являющуюся
    собственностью компании Крипто Про.

    Любая часть этого файла не может быть скопирована,
    исправлена, переведена на другие языки,
    локализована или модифицирована любым способом,
    откомпилирована, передана по сети с или на
    любую компьютерную систему без предварительного
    заключения соглашения с компанией Крипто Про.


    \file $RCSfile: cpxmldsig.xml,v $
    \version $Revision: 1.15 $
    \date $Date: 2009/05/18 07:44:18 $

    \author Леонтьев С.Е. (последнее исправление: $Author: spv $)
  --><!-- необходимо или нет написание изменения DTD на xmlenc,
  и где найти DTD на xmlenc --><!-- Изменения в DTD для xmldsig -->
<?xml-stylesheet type='text/xsl' href='http://www.cryptopro.ru/pub/drafts/xml2rfc/rfc2629xslt/rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?><!DOCTYPE rfc PUBLIC "" "rfc2629.dtd"><rfc category="info" ipr="trust200902" docName="draft-chudov-cryptopro-cpxmldsig-06" obsoletes="" updates="" submissionType="IETF">
    <front>

        <title abbrev="Using GOST Algorithms for XML Security">
            Using GOST 28147-89, GOST R 34.10-2001, and
            GOST R 34.11-94 Algorithms for XML Security
        </title>

        <author initials="S.E." surname="Leontiev" fullname="Serguei E. Leontiev">
            <organization abbrev="CRYPTO-PRO">
                CRYPTO-PRO, Ltd.
            </organization>
            <address>
                <postal>
                    <street>16/5, Suschevskij val</street>
                    <city>Moscow</city>
                    <code>127018</code>
                    <country>Russia</country>
                </postal>
                <phone>+7 (495) 780 4820</phone>
                <facsimile>+7 (495) 660 2330</facsimile>
                <email>lse@CryptoPro.ru</email>
                <uri>http://www.CryptoPro.ru</uri>
            </address>
        </author>

        <author initials="P.V." surname="Smirnov" fullname="Pavel V. Smirnov">
            <organization abbrev="CRYPTO-PRO">
                CRYPTO-PRO, Ltd.
            </organization>
            <address>
                <postal>
                    <street>16/5, Suschevskij val</street>
                    <city>Moscow</city>
                    <code>127018</code>
                    <country>Russia</country>
                </postal>
                <phone>+7 (495) 780 4820</phone>
                <facsimile>+7 (495) 660 2330</facsimile>
                <email>spv@CryptoPro.ru</email>
                <uri>http://www.CryptoPro.ru</uri>
            </address>
        </author>

        <author initials="A.V." surname="Chelpanov" fullname="Aleksandr V. Chelpanov">
            <organization abbrev="CRYPTO-PRO">
                CRYPTO-PRO, Ltd.
            </organization>
            <address>
                <postal>
                    <street>16/5, Suschevskij val</street>
                    <city>Moscow</city>
                    <code>127018</code>
                    <country>Russia</country>
                </postal>
                <phone>+7 (495) 780 4820</phone>
                <facsimile>+7 (495) 660 2330</facsimile>
                <email>cav@CryptoPro.ru</email>
                <uri>http://www.CryptoPro.ru</uri>
            </address>
        </author>

        <date month="November" year="2009" />

        <area>Security</area>

        <keyword>GOST 28147-89</keyword>
        <keyword>GOST R 34.10-94</keyword>
        <keyword>GOST R 34.11-94</keyword>
        <keyword>GOST R 34.10-2001</keyword>
        <keyword>GOST 34.310-95</keyword>
        <keyword>GOST 34.311-95</keyword>
        <keyword>GOST 34.310-2004</keyword>
        <!-- TODO: ???? -->

        <abstract>

            <t>
                This document specifies how to use Russian national
                cryptographic standards GOST 28147-89,
                GOST R 34.10-2001 and GOST R 34.11-94
                with XML Signatures, XML Encryption, WS-SecureConversation,
                WS-SecurityPolicy and WS-Trust.
                A number of Uniform Resource Identifiers (URIs) and XML
                elements are defined.
            </t>

        </abstract>
    </front>

    <middle>
        <section title="Introduction" toc="default">

            <t>
                This document specifies how to use
                GOST R 34.10-2001 digital signatures and
                public keys, GOST R 34.11-94 hash,
                GOST 28147-89 encryption algorithms
                with XML Signatures <xref target="XMLDSIG" pageno="false" format="default" />,
                XML Encryption <xref target="XMLENC-CORE" pageno="false" format="default" />,
                WS-SecureConversation <xref target="WS-SECURECONVERSATION" pageno="false" format="default" />,
                WS-SecurityPolicy <xref target="WS-SECURITYPOLICY" pageno="false" format="default" /> and
                WS-Trust <xref target="WS-TRUST" pageno="false" format="default" />.
            </t>

            <t>
                This document uses both XML Schema (<xref target="XML-SCHEMA-1" pageno="false" format="default" />,
                <xref target="XML-SCHEMA-2" pageno="false" format="default" />)
                (normative) and DTD <xref target="XML" pageno="false" format="default" /> (informational) to
                specify the corresponding XML structures.
            </t>

            <t>
                The key words "MUST", "MUST NOT", "REQUIRED",
                "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT",
                "RECOMMENDED", "MAY", and "OPTIONAL" in this document
                are to be interpreted as described in <xref target="KEYWORDS" pageno="false" format="default" />.
            </t>

        </section>

        <section title="GOST Cryptographic Algorithms" toc="default">

            <t>
                Algorithms GOST R 34.10-2001,
                GOST R 34.11-94 and GOST 28147-89 have
                been developed by Russian
                Federal Agency of Governmental Communication and
                Information (FAGCI) and "All-Russian Scientific and
                Research Institute of Standardization". They are
                described in <xref target="GOSTR341001" pageno="false" format="default" />,
                <xref target="GOSTR341194" pageno="false" format="default" /> (<xref target="GOST3431004" pageno="false" format="default" /> and
                <xref target="GOST3431195" pageno="false" format="default" />) and
                <xref target="GOST28147" pageno="false" format="default" />.  RECOMMENDED parameters for those
                algorithms are described in <xref target="CPALGS" pageno="false" format="default" />.
            </t>

        </section>

        <section title="Version and Namespaces" toc="default">

            <t>
                This specification makes no provision for an explicit version
                number in the syntax. If a future version is needed, it will
                use a different namespace.
            </t>

            <t>
                The XML namespace <xref target="XML-NS" pageno="false" format="default" />
                <xref target="RFC3986" pageno="false" format="default">URI</xref> that MUST be used
                by implementations of this (dated) specification is:

                <list>
                    <t />
                    <t>
                        urn:ietf:params:xml:ns:cpxmlsec
                    </t>
                </list>
            </t>

            <t>
                The following external XML namespaces are used in this
                specification (without line breaks; the choice of any
                namespace prefix is arbitrary and not semantically
                significant):
                <list>
                    <t />
                    <t>
                        http://www.w3.org/2000/09/xmldsig#
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        dsig
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="XMLDSIG" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://www.w3.org/2001/04/xmlenc#
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        xenc
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="XMLENC-CORE" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        sp
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="WS-SECURITYPOLICY" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://www.w3.org/ns/ws-policy
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        wsp
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="WS-POLICY" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        wsc
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="WS-SECURECONVERSATION" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        wsse
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="WS-SECURITY" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                    <t />
                    <t>
                        http://docs.oasis-open.org/ws-sx/ws-trust/200512/
                        <list>
                            <t>
                                Prefix:
                                <list>
                                    <t>
                                        wst
                                    </t>
                                </list>
                            </t>
                            <t>
                                Specification:
                                <list>
                                    <t>
                                        <xref target="WS-TRUST" pageno="false" format="default" />
                                    </t>
                                </list>
                            </t>
                        </list>
                    </t>
                </list>
            </t>

            <t>
                In the remaining sections of this document elements
                in the external namespaces are marked as
                such by using the namespace prefixes defined above.
            </t>

        </section>

        <section title="XML Schema Preamble and DTD Replacement" toc="default">

            <section title="XML Schema Preamble" toc="default">

                <t>
                    The subsequent preamble is to be used with the XML
                    Schema definitions given in the remaining sections of this
                    document.
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:schema 
    xmlns:cpxmlsec="urn:ietf:params:xml:ns:cpxmlsec"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:sp=
    "http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
    targetNamespace="urn:ietf:params:xml:ns:cpxmlsec"
    elementFormDefault="qualified"
    version="0.4">
                    ]]></artwork>
                </figure>

            </section>

            <section title="DTD Replacement" toc="default">

                <t>
                    In order to include GOST XML-signature syntax, the
                    following definition of the entity Key.ANY SHOULD replace
                    the one in <xref target="XMLDSIG" pageno="false" format="default" />:
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ENTITY % KeyValue.ANY '| cpxmlsec:GOSTKeyValue'>
                    ]]></artwork>
                </figure>
            </section>

        </section>

        <section title="Object Identifiers Representation" toc="default">

            <t>
                Object Identifiers (OIDs) are included in XML by the
                corresponding URN value as defined in <xref target="URNOID" pageno="false" format="default" />.
            </t>

            <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                <preamble>
                    The subsequent type is to be used to define algorithm
                    parameters by OIDs:
                </preamble>

                <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:simpleType name="ObjectIdentifierType">
    <xs:restriction base="xs:anyURI">
      <xs:pattern value=
        "urn:oid:(([0-1]\.[1-3]?\d)|(2\.\d+))(\.\d+)*" />
    </xs:restriction>
  </xs:simpleType>
                ]]></artwork>
            </figure>

        </section>

        <section title="Specifying GOST within XML Signature and XML Encryption" toc="default">

            <t>
                This section specifies the details of how to use GOST
                algorithms with XML
                Signature Syntax and Processing <xref target="XMLDSIG" pageno="false" format="default" /> and XML
                Encryption Syntax and Processing <xref target="XMLENC-CORE" pageno="false" format="default" />.
                It relies heavily on
                syntaxes and namespaces defined in <xref target="XMLDSIG" pageno="false" format="default" />
                and <xref target="XMLENC-CORE" pageno="false" format="default" />.
            </t>

            <section title="GOST R 34.11-94 Algorithm in DigestMethod" toc="default">

                <t>
                    The identifier for the GOST R 34.11-94 digest
                    algorithm is:

                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411
                        </t>
                    </list>
                </t>

                <t>
                    The dsig:DigestMethod node may contain a child node
                    cpxmlsec:ParametersR3411 specifying parameters for
                    GOST R 34.11-94 algorithm. cpxmlsec:ParametersR3411
                    node contains one OID specified in section 8.2
                    <xref target="CPALGS" pageno="false" format="default" />.
                    If cpxmlsec:ParametersR3411 node is missing, the
                    application should infer algorithm parameters from other
                    sources.
                </t>

                <t>
                    If the application omits cpxmlsec:ParametersR3411 node, it SHOULD
                    use parameters defined by
                    id-GostR3411-94-CryptoProParamSet
                    (see Section 11.2 of <xref target="CPALGS" pageno="false" format="default" />).
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble> Schema Definition: </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:element name="ParametersR3411"
              type="cpxmlsec:ObjectIdentifierType"/>
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble> DTD Definition: </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ELEMENT ParametersR3411 (#PCDATA) >
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST R 34.11-94
                        dsig:DigestMethod node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <dsig:DigestMethod dsig:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411">
    <!-- id-GostR3411-94-CryptoProParamSet -->
    <cpxmlsec:ParametersR3411>urn:oid:1.2.643.2.2.30.1<
    /cpxmlsec:ParametersR3411>
  </dsig:DigestMethod>
                    ]]></artwork>
                </figure>

                <t>
                    A GOST R 34.11-94 digest is a 256-bit string.
                    The content of the dsig:DigestValue element shall be the
                    base64 <xref target="RFC4648" pageno="false" format="default" /> encoding of this bit string
                    viewed as a 32-octet octet stream.
                </t>

            </section>

            <section title="GOST R 34.11-94 HMAC Algorithm in SignatureMethod" toc="default">

                <t>
                    GOST R 34.11-94 can also be used in HMAC
                    <xref target="HMAC" pageno="false" format="default" /> as described in
                    section 6.3.1 of <xref target="XMLDSIG" pageno="false" format="default" />.
                    Identifier:

                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411
                        </t>
                    </list>
                </t>

                <t>
                    The dsig:SignatureMethod node may contain a child node
                    cpxmlsec:ParametersR3411 specifying parameters for
                    GOST R 34.11-94 algorithm. cpxmlsec:ParametersR3411 node
                    syntax and processing in this case are equivalent to the ones
                    in dsig:DigestMethod case.
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST R 34.11-94 HMAC 
                        disg:SignatureMethod node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <dsig:SignatureMethod dsig:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411">
    <!-- id-GostR3411-94-CryptoProParamSet -->
    <cpxmlsec:ParametersR3411>urn:oid:1.2.643.2.2.30.1<
    /cpxmlsec:ParametersR3411>
  </dsig:SignatureMethod>
                    ]]></artwork>
                </figure>

                <t>
                    The output of the GOST R 34.11-94 HMAC algorithm is
                    ultimately the output of the GOST R 34.11-94 digest
                    algorithm. This value shall be base64 <xref target="RFC4648" pageno="false" format="default" />
                    encoded for the dsig:SignatureValue in the same straightforward
                    fashion as the output of the digest algorithm.
                </t>

            </section>

            <section title="GOST R 34.10-2001 Algorithm in SignatureMethod" toc="default">

                <t>
                    The input to the GOST R 34.10-2001 algorithm
                    is the canonicalized
                    representation of the dsig:SignedInfo element as
                    specified in Section 3 of <xref target="XMLDSIG" pageno="false" format="default" />.
                </t>

                <t>
                    The identifier for the GOST R 34.10-2001
                    signature algorithm is (without line break):

                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411
                        </t>
                    </list>
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST R 34.10-2001
                        dsig:SignatureMethod node is (without line break in
                        attribute value):
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <dsig:SignatureMethod dsig:Algorithm=
  "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-
  gostr3411" />
                    ]]></artwork>
                </figure>
                
                <t>
                    GOST R 34.10-2001 signature is a 64-octet value as
                    described in section 2.2.2 of <xref target="CPPK" pageno="false" format="default" />. The
                    content of the dsig:SignatureValue element shall be the
                    base64 [RFC4648] encoding of this value.
                </t>

            </section>

            <section title="GOST R 34.10-2001 Public Key in KeyValue" toc="default">
                <section title="Key Value Root Element" toc="default">

                    <t>
                        GOST R 34.10-2001 public key can be transmitted in
                        cpxmlsec:GOSTKeyValue node. It is included in
                        dsig:KeyValue node just like dsig:RSAKeyValue or
                        xenc:DHKeyValue.
                    </t>

                    <t>
                        cpxmlsec:GOSTKeyValue node consists of an optional child
                        node cpxmlsec:PublicKeyParameters and a mandatory child
                        node cpxmlsec:PublicKey. If cpxmlsec:PublicKeyParameters node
                        is missing, the application should infer parameters
                        from other sources.
                    </t>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble> Schema Definition:</preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:element name="GOSTKeyValue"
              type="cpxmlsec:KeyValueType"/>
  
  <xs:complexType name="KeyValueType">
    <xs:sequence>
      <xs:element name="PublicKeyParameters"
                  type="cpxmlsec:PublicKeyParametersType"
                  minOccurs="0"/>
      <xs:element name="PublicKey" type="xs:base64Binary"/>
    </xs:sequence>
  </xs:complexType>
                        ]]></artwork>
                    </figure>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble> DTD Definition:</preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ELEMENT GOSTKeyValue (
              PublicKeyParameters?, PublicKey) >
  <!ELEMENT PublicKey (#PCDATA) >
                        ]]></artwork>
                    </figure>

                    <t>
                        If the application omits cpxmlsec:PublicKeyParameters node,
                        it SHOULD use parameters identified by
                        DefaultPublicKeyParameters.
                    </t>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble>DefaultPublicKeyParameters:</preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <cpxmlsec:PublicKeyParameters>
    <!-- id-GostR3410-2001-CryptoPro-A-ParamSet -->
    <cpxmlsec:publicKeyParamSet>urn:oid:1.2.643.2.2.35.1<
    /cpxmlsec:publicKeyParamSet> 
    <!-- id-GostR3411-94-CryptoProParamSet -->
    <cpxmlsec:digestParamSet>urn:oid:1.2.643.2.2.30.1</
    cpxmlsec:digestParamSet>
    <!-- id-Gost28147-89-CryptoPro-A-ParamSet -->
    <cpxmlsec:encryptionParamSet>urn:oid:1.2.643.2.2.31.1</
    cpxmlsec:encryptionParamSet>
  </cpxmlsec:PublicKeyParameters>
            
                        ]]></artwork>
                    </figure>

                </section>

                <section title="Public Key Parameters" toc="default">

                    <t>
                        cpxmlsec:PublicKeyParameters node contains three OIDs:
                        cpxmlsec:publicKeyParamSet, cpxmlsec:digestParamSet and
                        optional cpxmlsec:encryptionParamSet. Parameter values
                        corresponding to these OIDs can be found in
                        <xref target="CPALGS" pageno="false" format="default" />.
                    </t>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble> Schema Definition: </preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:complexType name="PublicKeyParametersType">
     <xs:sequence>
        <xs:element name="publicKeyParamSet"
                    type="cpxmlsec:ObjectIdentifierType"/>
        <xs:element name="digestParamSet"
                    type="cpxmlsec:ObjectIdentifierType"/>
        <xs:element name="encryptionParamSet"
                    type="cpxmlsec:ObjectIdentifierType"
                    minOccurs="0"/>
     </xs:sequence>
  </xs:complexType>
                        ]]></artwork>
                    </figure>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble> DTD Definition: </preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ELEMENT PublicKeyParameters (
                 publicKeyParamSet, digestParamSet,
                 encryptionParamSet?) >
  <!ELEMENT publicKeyParamSet (#PCDATA) >
  <!ELEMENT digestParamSet (#PCDATA) >
  <!ELEMENT encryptionParamSet (#PCDATA) >
                        ]]></artwork>
                    </figure>

                </section>
            </section>

            <section title="GOST R 34.10-2001-based Key Agreement Algorithm in AgreementMethod" anchor="GOST3410Agree" toc="default">

                <t>
                    Key agreement algorithm based on
                    GOST R 34.10-2001 public keys (see Section 5 of
                    <xref target="CPALGS" pageno="false" format="default" />) involves the derivation of shared
                    secret information using keys from the sender and
                    recipient.
                </t>

                <t>
                    The identifier for the key agreement algorithm based on
                    GOST R 34.10-2001 is:

                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001
                        </t>
                    </list>
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST R 34.10-2001-based key
                        agreement AgreementMethod node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xenc:AgreementMethod xenc:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001">
    <xenc:KA-Nonce>...</xenc:KA-Nonce>
    <xenc:OriginatorKeyInfo>
      <dsig:X509Data><dsig:X509Certificate>
        ...
      </dsig:X509Certificate></dsig:X509Data>
    </xenc:OriginatorKeyInfo>
    <xenc:RecipientKeyInfo><dsig:KeyValue>
      ...
    </dsig:KeyValue></xenc:RecipientKeyInfo>
  </xenc:AgreementMethod>
                    ]]></artwork>
                </figure>

                <t>
                    The shared keying material for algorithm based on
                    GOST R 34.10-2001 needed will be calculated as
                    a result of function VKO GOST R 34.10-2001
                    (see Section 5.2 of <xref target="CPALGS" pageno="false" format="default" />),
                    which generates GOST KEK using two
                    GOST R 34.10-2001 keypairs and UKM.
                    xenc:KA-Nonce node of xenc:AgreementMethod contains
                    base64 encoded 64-bits value of UKM, if UKM is used.
                </t>

            </section>

            <section title="GOST R 34.10-2001-based Key Transport Algorithm in EncryptionMethod" toc="default">

                <t>
                    The key transport algorithm based on
                    VKO GOST R 34.10-2001, specified in
                    <xref target="CPALGS" pageno="false" format="default" />, is public key encryption
                    algorithms, that MUST be used for key
                    encryption/decryption only.
                </t>

                <t>
                    The identifier for the key transport algorithm based on
                    VKO GOST R 34.10-2001 is:

                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001
                        </t>
                    </list>
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a VKO GOST R 34.10-2001-based key
                        transport EncryptedKey node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xenc:EncryptedKey>
    <xenc:EncryptionMethod xenc:Algorithm=
  "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001" />
    <dsig:KeyInfo>
      <dsig:X509Data><dsig:X509Certificate>
        ...
      </dsig:X509Certificate></dsig:X509Data>
    </dsig:KeyInfo>
    <xenc:CipherData>
        <xenc:CipherValue>...</xenc:CipherValue>
    </xenc:CipherData>
  </xenc:EncryptedKey>
                    ]]></artwork>
                </figure>

                <t>
                    The CipherValue for such encrypted key is the base64 encoding
                    of the <xref target="X.208-88" pageno="false" format="default" /> DER encoding of a
                    GostR3410-KeyTransport structure (see section 4.2.1 of
                    <xref target="CPCMS" pageno="false" format="default" />).
                </t>

            </section>

            <section title="GOST 28147-89 Algorithm in EncryptionMethod" toc="default">

                <t>
                    The identifier for the GOST 28147-89 symmetric
                    encryption algorithm is:
                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147
                        </t>
                    </list>
                </t>

                <t>
                    The xenc:EncryptionMethod node may contain a child node
                    cpxmlsec:Parameters28147 specifying parameters for
                    GOST 28147-89 algorithm.
                    cpxmlsec:Parameters28147 specifies the set of corresponding
                    Gost28147-89-ParamSetParameters (see Section 8.1 of
                    <xref target="CPALGS" pageno="false" format="default" />). Encryption mode is specified
                    by mode parameter of Gost28147-89-ParamSetParameters
                    structure. CFB and CNT modes are RECOMMENDED to use.
                    If cpxmlsec:Parameters28147 node is missing, the application
                    should infer algorithm parameters from other sources.
                </t>

                <t>
                    If the application omits cpxmlsec:Parameters28147 node, it
                    SHOULD use parameters defined by
                    id-Gost28147-89-CryptoPro-A-ParamSet (see Section of
                    10.2 [CPALGS]).
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble> Schema Definition: </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:element name="Parameters28147"
              type="cpxmlsec:ObjectIdentifierType" />
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble> DTD Definition: </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ELEMENT Parameters28147 (#PCDATA) >
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST 28147-89
                        xenc:EncryptionMethod node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xenc:EncryptionMethod dsig:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147">
    <!-- id-Gost28147-89-CryptoPro-A-ParamSet -->
    <cpxmlsec:Parameters28147>urn:oid:1.2.643.2.2.31.1<
    /cpxmlsec:Parameters28147>
  </xenc:EncryptionMethod>
                    ]]></artwork>
                </figure>

                <t>
                    256-bit key, 64-bit Initialization Vector (IV), and optional
                    parameters are used in GOST 28147-89 encryption
                    algorithm. The resulting cipher text is prefixed by the IV.
                    If included in XML output, it is then base64 encoded.
                </t>
                
            </section>
            
            <section title="Symmetric Key Wrap" toc="default">

                <t>
                    Symmetric Key Wrap algorithms considered in this section 
                    are shared secret key encryption algorithms that MUST be
                    used for symmetric keys encryption/decryption only.
                </t>

                <section title="GOST 28147-89 Key Wrap in EncryptionMethod" anchor="GOST28147KeyWrap" toc="default">

                    <t>
                        The GOST 28147-89 Key Wrap algorithm wraps (encrypts) a
                        key (the wrapped key, WK) under a GOST 28147-89 Key Wrap
                        (specified in sections 6.1, 6.2 of <xref target="CPALGS" pageno="false" format="default" />).
                    </t>

                    <t>
                        Note: This algorithm MUST NOT be used without key
                        agreement algorithm, because such WK is constant for
                        every wrapping-encrypting pair. Encrypting many
                        different keys with the same constant WK may reveal that WK.
                        The only key agreement algorithm possible to use with
                        GOST 28147-89 Key Wrap defined by this specification is
                        a GOST R 34.10-2001-based key agreement
                        (see <xref target="GOST3410Agree" pageno="false" format="default" />).
                    </t>

                    <t>
                        The identifier for the GOST 28147-89 Key Wrap algorithm is:
                        <list>
                            <t />
                            <t>
                                urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-gost
                            </t>
                        </list>
                    </t>

                    <t>
                        The CipherValue for such wrapped key is the base64
                        encoding of the <xref target="X.208-88" pageno="false" format="default" /> DER
                        encoding of a GostR3410-KeyWrap structure.
                    </t>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble> ASN.1 structure: </preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  GostR3410-KeyWrap ::=
      SEQUENCE {
          encryptedKey Gost28147-89-EncryptedKey,
          encryptedParameters Gost28147-89-KeyWrapParameters
       }
                        ]]></artwork>
                    </figure>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble>
                            An example of a GOST 28147-89 Key Wrap
                            EncryptedData node is:
                        </preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xenc:EncryptedData>
    <xenc:EncryptionMethod dsig:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147" />
    <dsig:KeyInfo>
      <xenc:EncryptedKey>
        <xenc:EncryptionMethod xenc:Algorithm=
    "urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-gost" />
          <dsig:KeyInfo>
            <xenc:AgreementMethod xenc:Algorithm=
    "urn:ietf:params:xml:ns:cpxmlsec:algorithms:agree-gost2001">
              <xenc:KA-Nonce>...</xenc:KA-Nonce>
              <xenc:OriginatorKeyInfo>
                <dsig:X509Data><dsig:X509Certificate>
                  ...
                </dsig:X509Certificate></dsig:X509Data>
              </xenc:OriginatorKeyInfo>
              <xenc:RecipientKeyInfo><dsig:KeyValue>
                ...
              </dsig:KeyValue></xenc:RecipientKeyInfo>
            </xenc:AgreementMethod>          
          </dsig:KeyInfo>
        <xenc:CipherData>
            <xenc:CipherValue>...</xenc:CipherValue>
        </xenc:CipherData>
      </xenc:EncryptedKey>
    </dsig:KeyInfo>
    <xenc:CipherData>
        <xenc:CipherValue>...</xenc:CipherValue>
    </xenc:CipherData>
  </xend:EncryptedData>
                        ]]></artwork>
                    </figure>

                    <t>
                        Gost28147-89-KeyWrapParameters is described in
                        section 4.1.1 of <xref target="CPCMS" pageno="false" format="default" />.
                        The xenc:KA-Nonce node value of the
                        xenc:AgreementMethod node MUST be used as ukm.
                    </t>

                    <t>
                        The resulting wrapped key (WK) is placed in the
                        Gost28147-89-EncryptedKey encryptedKey field, its mac
                        (CEK_MAC) is placed in the Gost28147-89-EncryptedKey macKey
                        field. ukm field of Gost28147-89-KeyWrapParameters
                        MUST be absent.
                    </t>

                </section>

                <section title="CryptoPro Key Wrap in EncryptionMethod" toc="default">

                    <t>
                        The CryptoPro Key Wrap algorithm wraps (encrypts)
                        a key (wrapped key, WK) under a CryptoPro Key Wrap
                        (specified in sections 6.3, 6.4 of <xref target="CPALGS" pageno="false" format="default" />).
                    </t>

                    <t>
                        The identifier for the CryptoPro Key Wrap algorithms is:
                        <list>
                            <t />
                            <t>
                                urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp
                            </t>
                        </list>
                    </t>

                    <t>
                        The CipherValue for such wrapped key is the base64
                        encoding of the <xref target="X.208-88" pageno="false" format="default" /> DER
                        encoding of a GostR3410-KeyWrap structure
                        (see <xref target="GOST28147KeyWrap" pageno="false" format="default" />).
                    </t>

                    <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                        <preamble>
                            An example of a CryptoPro Key Wrap
                            EncryptedData node is:
                        </preamble>

                        <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xenc:EncryptedData>
    <xenc:EncryptionMethod dsig:Algorithm=
      "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147" />
    <dsig:KeyInfo>
      <xenc:EncryptedKey>
        <xenc:EncryptionMethod xenc:Algorithm=
    "urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp" />
          <dsig:KeyInfo>
            <dsig:KeyName>John Smith</dsig:KeyName>
          </dsig:KeyInfo>
        <xenc:CipherData>
            <xenc:CipherValue>...</xenc:CipherValue>
        </xenc:CipherData>
      </xenc:EncryptedKey>
    </dsig:KeyInfo>
    <xenc:CipherData>
        <xenc:CipherValue>...</xenc:CipherValue>
    </xenc:CipherData>
  </xend:EncryptedData>
                        ]]></artwork>
                    </figure>

                    <t>
                        The resulting wrapped key (WK) is placed in the
                        Gost28147-89-EncryptedKey encryptedKey field, its mac
                        (CEK_MAC) is placed in the Gost28147-89-EncryptedKey macKey
                        field.
                    </t>

                    <t>
                        If CryptoPro Key Wrap algorithm is combined
                        with Key Agreement Algorithm, the xenc:KA-Nonce node value of
                        the xenc:AgreementMethod node MUST be used as ukm.
                        ukm field of Gost28147-89-KeyWrapParameters
                        type must be absent.
                    </t>

                    <t>
                        Note: The only key agreement algorithm possible to use with
                        CryptoPro Key Wrap defined by this specification is
                        a GOST R 34.10-2001-based key agreement
                        (see <xref target="GOST3410Agree" pageno="false" format="default" />).
                    </t>

                    <t>
                        If CryptoPro Key Wrap algorithm is not combined
                        with Key Agreement Algorithm, ukm field of
                        Gost28147-89-KeyWrapParameters type MUST be present.
                    </t>

                </section>
            </section>
        </section>

        <section title="Specifying GOST within WS-*" toc="default">

            <t>
                This section specifies the details of how to use GOST
                algorithms with WS-SecureConversation
                <xref target="WS-SECURECONVERSATION" pageno="false" format="default" />,
                WS-SecurityPolicy <xref target="WS-SECURITYPOLICY" pageno="false" format="default" /> and
                WS-Trust <xref target="WS-TRUST" pageno="false" format="default" />.
            </t>

            <section title="GOST Algorithm Suite for WS-SecurityPolicy" toc="default">

                <t>
                    This specification defines a new possible value for an
                    [Algorithm Suite] property of a Security Binding
                    (see section 6.1 of <xref target="WS-SECURITYPOLICY" pageno="false" format="default" />).
                    The new value is BasicGost.
                </t>

                <t>
                    BasicGost Algorithm Suite defines the following values
                    for operations and properties (without line breaks in URIs):
                    <list>
                        <t>
                            [Sym Sig]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:hmac-gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Asym Sig]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Dig]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Enc]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147
                                </t>
                            </list>
                        </t>
                        <t>
                            [Sym KW]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:kw-cp
                                </t>
                            </list>
                        </t>
                        <t>
                            [Asym KW]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001
                                </t>
                            </list>
                        </t>
                        <t>
                            [Comp Key]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Enc KD]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Sig KD]
                            <list>
                                <t>
                                    urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411
                                </t>
                            </list>
                        </t>
                        <t>
                            [Min SKL]
                            <list>
                                <t>
                                    256
                                </t>
                            </list>
                        </t>
                        <t>
                            [Max SKL]
                            <list>
                                <t>
                                    256
                                </t>
                            </list>
                        </t>
                        <t>
                            [Min AKL]
                            <list>
                                <t>
                                    512
                                </t>
                            </list>
                        </t>
                        <t>
                            [Max AKL]
                            <list>
                                <t>
                                    512
                                </t>
                            </list>
                        </t>
                    </list>
                </t>

                <t>
                    Note: For definition of [Comp Key], [Enc KD] and [Sig KD]
                    algorithm see <xref target="GOSTKeyDerivation" pageno="false" format="default" />
                </t>
                
                <t>
                    To indicate a requirement to use GOST Algorithm Suite
                    defined above conforming implementations MUST place
                    cpxmlsec:BasicGost node in sp:AlgorithmSuite Assertion
                    (see section 7.1 of <xref target="WS-SECURITYPOLICY" pageno="false" format="default" />).
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>Schema Definition:</preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <xs:element name="BasicGost"
              type="sp:QNameAssertionType"/>
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>DTD Definition:</preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <!ELEMENT BasicGost EMPTY >
                    ]]></artwork>
                </figure>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST Algorithm Suite in
                        sp:AlgorithmSuite Assertion is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <sp:AlgorithmSuite>
    <wsp:Policy>
      <cpxmlsec:BasicGost/>
    </wsp:Policy>
  </sp:AlgorithmSuite>
                    ]]></artwork>
                </figure>

            </section>

            <section title="GOST Key Derivation Algorithm for WS-SecureConversation" anchor="GOSTKeyDerivation" toc="default">

                <t>
                    This specification defines a new possible value for an
                    Algorithm attribute of a wsc:DerivedKeyToken node
                    (see section 7 of <xref target="WS-SECURECONVERSATION" pageno="false" format="default" />).
                </t>
                
                <t>
                    The new key derivation algorithm identifier is:
                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411
                        </t>
                    </list>
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST Key Derivation Algorithm in
                        wsc:DerivedKeyToken node is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <wsc:DerivedKeyToken Algorithm=
    "urn:ietf:params:xml:ns:cpxmlsec:algorithms:dk-p-gostr3411">
    <wsse:SecurityTokenReference>...</wsse:SecurityTokenReference>
    <wsc:Nonce>...</wsc:Nonce>
  </wsc:DerivedKeyToken>
                    ]]></artwork>
                </figure>

                <t>
                    GOST Key Derivation Algorithm uses a pseudo-random function
                    P_GOSTR3411 (see section 4 of <xref target="CPALGS" pageno="false" format="default" />) to derive
                    keys just like a P_SHA-1 function is used in
                    <xref target="WS-SECURECONVERSATION" pageno="false" format="default" /> (see section 7).
                </t>

            </section>

            <section title="GOST Computed Key Mechanism for WS-Trust" toc="default">

                <t>
                    This specification defines a new possible value for a
                    wst:ComputedKey node (see section 4.4.4 of
                    <xref target="WS-TRUST" pageno="false" format="default" />).
                </t>

                <t>
                    The new computed key mechanism identifier is:
                    <list>
                        <t />
                        <t>
                            urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411
                        </t>
                    </list>
                </t>

                <figure title="" suppress-title="false" align="left" alt="" width="" height="">
                    <preamble>
                        An example of a GOST Computed Key Mechanism in
                        wst:ComputedKey node (without line breaks) is:
                    </preamble>

                    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[

  <wst:ComputedKey>
    urn:ietf:params:xml:ns:cpxmlsec:algorithms:ck-p-gostr3411
  </wst:ComputedKey>
                    ]]></artwork>
                </figure>

                <t>
                    GOST Computed Key Mechanism uses a pseudo-random function
                    P_GOSTR3411 (see section 4 of <xref target="CPALGS" pageno="false" format="default" />) to
                    compute a key just like a P_SHA-1 function is used in
                    <xref target="WS-TRUST" pageno="false" format="default" /> (see section 4.4.4).
                    It is REQUIRED that EntREQ and EntRES are strings of
                    length 256 bits.
                </t>

            </section>

            <section title="Using WS-Trust for TLS Handshake with GOST Algorithm Suite" toc="default">

                <t>
                    This specification defines how to use WS-Trust
                    (<xref target="WS-TRUST" pageno="false" format="default" />) to perform
                    TLS Handshake (see <xref target="TLS" pageno="false" format="default" />) and establish
                    secure session for GOST Algorithm Suite.
                </t>
                
                <t>
                    WS-Trust can be used to do TLS Handshake as specified in
                    <xref target="WS-TRUST-TLS" pageno="false" format="default" />. The outcome of the
                    protocol under discussion is a new session key issued using a
                    secure session established by TLS Handshake. Issued session
                    key is intended to secure further communication by means of
                    WS-Security (<xref target="WS-SECURITY" pageno="false" format="default" />).
                </t>

                <t>
                    If application is required to use GOST Algorithm Suite after
                    performing TLS Handshake by WS-Trust it MUST use one of
                    GOST 28147-89 Cipher Suites for TLS
                    (see <xref target="draft.CPTLS" pageno="false" format="default" />).
                </t>

                <t>
                    The main flow of TLS Negotiation over WS-Trust defined in
                    this specification complies with
                    <xref target="WS-TRUST-TLS" pageno="false" format="default" />, but there are a few
                    differences specified below that MUST be obeyed.
                </t>

                <t>
                    The paragraph R4305 (see section 4.3 of
                    <xref target="WS-TRUST-TLS" pageno="false" format="default" />) MUST be replaced with the
                    following text:

                    <list>
                        <t>
                            The responder is responsible for issuing the key
                            associated with the TLSNego session. If the
                            initiator requested properties for the generated
                            key (e.g. key size) in the initial RST message,
                            the generated key SHOULD match those requirements.
                            The issued key MUST be communicated back to the
                            initiator using the wst:RequestedProofToken element
                            and MUST be protected using CryptoPro Key Wrap
                            algorithm (see section 6.3
                            of <xref target="CPALGS" pageno="false" format="default" />)
                            where server_write_key (see section 6.3
                            of <xref target="TLS" pageno="false" format="default" />) is a wrapping key.
                            Wrapped key is contained in the
                            &lt;xenc:CipherData&gt;&lt;xenc:CipherValue&gt;...&lt;/xenc:CipherValue&gt;&lt;/xenc:CipherData&gt;
                            elements of the xenc:EncryptedKey.
                        </t>
                    </list>
                </t>

                <t>
                    GOST R 34.11-94 and P_GOSTR3411 algorithms
                    MUST be used instead of SHA1 and PSHA1 algorithms
                    correspondingly to compute authenticator
                    (see section 4.9 of
                    <xref target="WS-TRUST-TLS" pageno="false" format="default" />).
                </t>

            </section>

        </section>

        <section title="Security Considerations" toc="default">

            <t>
                Conforming applications MUST use unique values for ukm and iv.
                Recipients MAY verify that ukm and iv specified by the sender are
                unique.
            </t>

            <t>
                Applications SHOULD verify signature values, subject public
                keys and algorithm parameters to conform to
                <xref target="GOSTR341001" pageno="false" format="default" />, standard before using them.
            </t>

            <t>
                Cryptographic algorithm parameters affect algorithm strength.
                Using parameters not listed in <xref target="CPALGS" pageno="false" format="default" /> is NOT
                RECOMMENDED (see the Security Considerations section of
                <xref target="CPALGS" pageno="false" format="default" />).
            </t>

            <t>
                Using the same key for signature and key derivation is NOT
                RECOMMENDED.
            </t>

            <t>
                It is NOT RECOMMENDED to use XML encryption without XML
                signature or HMAC.
            </t>

        </section>

        <section title="IANA Considerations" toc="default">

            <t>
                This document uses URNs to describe XML namespaces and XML schemata
                conforming to a registry mechanism described in
                <xref target="RFC3688" pageno="false" format="default" />.  IANA has registered two URI assignments.
            </t>

            <section title="URN Sub-Namespace Registration for urn:ietf:params:xml:ns:cpxmlsec" toc="default">

                <t>
                    URI: urn:ietf:params:xml:ns:cpxmlsec
                </t>

                <t>
                    Registrant Contact:
                    <list>
                        <t>
                            Mikhail V. Pavlov
                        </t>
                        <t>
                            CRYPTO-PRO, Ltd.
                        </t>
                        <t>
                            16/5, Suschevskij val
                        </t>
                        <t>
                            Moscow, 127018
                        </t>
                        <t>
                            Russia
                        </t>
                        <t>
                            Phone: +7 (495) 780 4820
                        </t>
                        <t>
                            Fax: +7 (495) 660 2330
                        </t>
                        <t>
                            Email: pav@CryptoPro.ru
                        </t>
                        <t>
                            URI: http://www.CryptoPro.ru
                        </t>
                    </list>
                </t>

                <t>
                    XML: None. Namespace URIs do not represent an XML specification.
                </t>

            </section>

            <section title="Schema Registration" toc="default">

                <t>
                    URI: urn:ietf:params:xml:schema:cpxmlsec
                </t>

                <t>
                    Registrant Contact:
                    <list>
                        <t>
                            Mikhail V. Pavlov
                        </t>
                        <t>
                            CRYPTO-PRO, Ltd.
                        </t>
                        <t>
                            16/5, Suschevskij val
                        </t>
                        <t>
                            Moscow, 127018
                        </t>
                        <t>
                            Russia
                        </t>
                        <t>
                            Phone: +7 (495) 780 4820
                        </t>
                        <t>
                            Fax: +7 (495) 660 2330
                        </t>
                        <t>
                            Email: pav@CryptoPro.ru
                        </t>
                        <t>
                            URI: http://www.CryptoPro.ru
                        </t>
                    </list>
                </t>

                <t>
                    XML: The XML can be found in <xref target="SCHEMA" pageno="false" format="default" />.
                </t>

            </section>
        </section>
    </middle>

    <back>
        <references title="Normative references">
            

<reference anchor="XML-SCHEMA-1" target="http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/">
  <front>
    <title>XML Schema Part 1: Structures Second Edition</title>
    <author initials="H." surname="Thompson" fullname="Henry S. Thompson">
      <organization>University of Edinburgh</organization>
      <address>
	<email>ht@cogsci.ed.ac.uk</email>
      </address>
    </author>
    <author initials="D." surname="Beech" fullname="David Beech">
      <organization>Oracle Corporation</organization>
      <address>
	<email>David.Beech@oracle.com</email>
      </address>
    </author>
    <author initials="M." surname="Maloney" fullname="Murray Maloney">
      <organization>Commerce One</organization>
      <address>
	<email>murray@muzmo.com</email>
      </address>
    </author>
    <author initials="N." surname="Mendelsohn" fullname="Noah Mendelsohn">
      <organization>Lotus Development Corporation</organization>
      <address>
	<email>Noah_Mendelsohn@lotus.com</email>
      </address>
    </author>
    <date year="2004" month="October" day="28" />
  </front>
  <seriesInfo name="W3C" value="REC-xmlschema-1" />
</reference>


            

<reference anchor="XML-SCHEMA-2" target="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">
  <front>
    <title>XML Schema Part 2: Datatypes Second Edition</title>
    <author initials="P." surname="Biron" fullname="Paul V. Biron">
      <organization>Kaiser Permanente, for Health Level Seven</organization>
      <address>
	<email>Paul.V.Biron@kp.org</email>
      </address>
    </author>
    <author initials="A." surname="Malhotra" fullname="Ashok Malhotra">
      <organization>Microsoft (formerly of IBM)</organization>
      <address>
	<email>ashokma@microsoft.com</email>
      </address>
    </author>
    <date year="2004" month="October" day="28" />
  </front>
  <seriesInfo name="W3C" value="REC-xmlschema-2" />
</reference>


            
<!-- Version2! -->
<reference anchor="XML-NS" target="http://www.w3.org/TR/REC-xml-names-20060816">
  <front>
    <title>Namespaces in XML (Second Edition)</title>
    <author initials="T." surname="Bray" fullname="Tim Bray">
      <organization>Textuality</organization>
      <address>
        <email>tbray@textuality.com</email>
      </address>
    </author>
    <author initials="D." surname="Hollander" fullname="Dave Hollander">
      <organization>Contivo, Inc.</organization>
      <address>
        <email>dmh@contivo.com</email>
      </address>
    </author>
    <author initials="A." surname="Layman" fullname="Andrew Layman">
      <organization>Microsoft</organization>
      <address>
        <email>andrewl@microsoft.com</email>
      </address>
    </author>
    <author initials="R." surname="Tobin" fullname="Richard Tobin">
      <organization>University of Edinburgh and Markup Technology Ltd</organization>
      <address>
        <email>richard@cogsci.ed.ac.uk</email>
      </address>
    </author>
    <date day="16" month="August" year="2006" />
  </front>
  <seriesInfo name="W3C" value="REC-xml-names" />
</reference>


            

<reference anchor="RFC3986">

<front>
<title abbrev="URI Generic Syntax">Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
<organization abbrev="W3C/MIT">World Wide Web Consortium</organization>
<address>
<postal>
<street>Massachusetts Institute of Technology</street>
<street>77 Massachusetts Avenue</street>
<city>Cambridge</city>
<region>MA</region>
<code>02139</code>
<country>USA</country></postal>
<phone>+1-617-253-5702</phone>
<facsimile>+1-617-258-5999</facsimile>
<email>timbl@w3.org</email>
<uri>http://www.w3.org/People/Berners-Lee/</uri></address></author>
<author initials="R." surname="Fielding" fullname="Roy T. Fielding">
<organization abbrev="Day Software">Day Software</organization>
<address>
<postal>
<street>5251 California Ave., Suite 110</street>
<city>Irvine</city>
<region>CA</region>
<code>92617</code>
<country>USA</country></postal>
<phone>+1-949-679-2960</phone>
<facsimile>+1-949-679-2972</facsimile>
<email>fielding@gbiv.com</email>
<uri>http://roy.gbiv.com/</uri></address></author>
<author initials="L." surname="Masinter" fullname="Larry Masinter">
<organization abbrev="Adobe Systems">Adobe Systems Incorporated</organization>
<address>
<postal>
<street>345 Park Ave</street>
<city>San Jose</city>
<region>CA</region>
<code>95110</code>
<country>USA</country></postal>
<phone>+1-408-536-3024</phone>
<email>LMM@acm.org</email>
<uri>http://larry.masinter.net/</uri></address></author>
<date year="2005" month="January" />
<area>Applications</area>
<keyword>uniform resource identifier</keyword>
<keyword>URI</keyword>
<keyword>URL</keyword>
<keyword>URN</keyword>
<keyword>WWW</keyword>
<keyword>resource</keyword>
<abstract>
<t>
A Uniform Resource Identifier (URI) is a compact sequence of characters
that identifies an abstract or physical resource.  This specification
defines the generic URI syntax and a process for resolving URI references
that might be in relative form, along with guidelines and security
considerations for the use of URIs on the Internet.
The URI syntax defines a grammar that is a superset of all valid URIs,
allowing an implementation to parse the common components of a URI
reference without knowing the scheme-specific requirements of every
possible identifier.  This specification does not define a generative
grammar for URIs; that task is performed by the individual
specifications of each URI scheme.
</t></abstract></front>

<seriesInfo name="STD" value="66" />
<seriesInfo name="RFC" value="3986" />
<format type="TXT" octets="141811" target="ftp://ftp.isi.edu/in-notes/rfc3986.txt" />
<format type="HTML" octets="213584" target="http://xml.resource.org/public/rfc/html/rfc3986.html" />
<format type="XML" octets="163534" target="http://xml.resource.org/public/rfc/xml/rfc3986.xml" />
</reference>

            

<reference anchor="RFC4648">

<front>
<title>The Base16, Base32, and Base64 Data Encodings</title>
<author initials="S." surname="Josefsson" fullname="S. Josefsson">
<organization /></author>
<date year="2006" month="October" />
<abstract>
<t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="4648" />
<format type="TXT" octets="35491" target="ftp://ftp.isi.edu/in-notes/rfc4648.txt" />
</reference>

            

<reference anchor="RFC3688">

<front>
<title>The IETF XML Registry</title>
<author initials="M." surname="Mealling" fullname="M. Mealling">
<organization /></author>
<date year="2004" month="January" />
<abstract>
<t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t></abstract></front>

<seriesInfo name="BCP" value="81" />
<seriesInfo name="RFC" value="3688" />
<format type="TXT" octets="17325" target="ftp://ftp.isi.edu/in-notes/rfc3688.txt" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.2104.xml -->
<reference anchor="HMAC">

<front>
<title abbrev="HMAC">HMAC: Keyed-Hashing for Message Authentication</title>
<author initials="H." surname="Krawczyk" fullname="Hugo Krawczyk">
<organization>IBM, T.J. Watson Research Center</organization>
<address>
<postal>
<street>P.O.Box 704</street>
<city>Yorktown Heights</city>
<region>NY</region>
<code>10598</code>
<country>US</country></postal>
<email>hugo@watson.ibm.com</email></address></author>
<author initials="M." surname="Bellare" fullname="Mihir Bellare">
<organization>University of California at San Diego, Dept of Computer Science and Engineering</organization>
<address>
<postal>
<street>9500 Gilman Drive</street>
<street>Mail Code 0114</street>
<city>La Jolla</city>
<region>CA</region>
<code>92093</code>
<country>US</country></postal>
<email>mihir@cs.ucsd.edu</email></address></author>
<author initials="R." surname="Canetti" fullname="Ran Canetti">
<organization>IBM T.J. Watson Research Center</organization>
<address>
<postal>
<street>P.O.Box 704</street>
<city>Yorktown Heights</city>
<region>NY</region>
<code>10598</code>
<country>US</country></postal>
<email>canetti@watson.ibm.com</email></address></author>
<date year="1997" month="February" />
<abstract>
<t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key.  The cryptographic strength of HMAC depends on the properties of the underlying hash function.</t></abstract></front>

<seriesInfo name="RFC" value="2104" />
<format type="TXT" octets="22297" target="ftp://ftp.isi.edu/in-notes/rfc2104.txt" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml -->
<reference anchor="KEYWORDS">

<front>
<title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials="S." surname="Bradner" fullname="Scott Bradner">
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year="1997" month="March" />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      RFC 2119.
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name="BCP" value="14" />
<seriesInfo name="RFC" value="2119" />
<format type="TXT" octets="4723" target="ftp://ftp.isi.edu/in-notes/rfc2119.txt" />
<format type="HTML" octets="16553" target="http://xml.resource.org/public/rfc/html/rfc2119.html" />
<format type="XML" octets="5703" target="http://xml.resource.org/public/rfc/xml/rfc2119.xml" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml2/reference.W3C.xmlenc-core.xml -->
<reference anchor="XMLENC-CORE" target="http://www.w3.org/TR/xmlenc-core/">
  <front>
    <title>XML Encryption Syntax and Processing</title>
    <author initials="D." surname="Eastlake" fullname="Donald Eastlake">
      <organization>Motorola</organization>
      <address>
        <email>dee3@torque.pothole.com</email>
      </address>
    </author>
    <author initials="J." surname="Reagle " fullname="Joseph Reagle ">
      <organization>W3C</organization>
      <address>
        <email>reagle@w3.org</email>
      </address>
    </author>
    <date day="2" month="August" year="2002" />
  </front>
  <seriesInfo value="xmlenc-core" name="W3C Candidate Recommendation" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.3275.xml -->
<reference anchor="XMLDSIG">
  <front>
    <title>(Extensible Markup Language) XML-Signature Syntax and 
      Processing</title>
    <author initials="D." surname="Eastlake" fullname="D. Eastlake">
      <organization />
    </author>
    <author initials="J." surname="Reagle" fullname="J. Reagle">
      <organization />
    </author>
    <author initials="D." surname="Solo" fullname="D. Solo">
      <organization />
    </author>
    <date year="2002" month="March" />
    <abstract>
      <t>This document specifies XML (Extensible Markup Language) digital 
        signature processing rules and syntax. [STANDARDS TRACK]</t>
    </abstract>
  </front>

  <seriesInfo name="RFC" value="3275" />
  <format type="TXT" octets="164198" target="ftp://ftp.isi.edu/in-notes/rfc3275.txt" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.4357.xml -->
<reference anchor="CPALGS">
    <front>

    <title>Additional Cryptographic Algorithms for Use
    with GOST 28147-89, GOST R 34.10-94,
    GOST R 34.10-2001, and GOST R 34.11-94 Algorithms</title>

    <author initials="V." surname="Popov" fullname="V. Popov">
    <organization /></author>
    <author initials="I." surname="Kurepkin" fullname="I. Kurepkin">
    <organization /></author>
    <author initials="S." surname="Leontiev" fullname="S. Leontiev">
    <organization /></author>
    <date year="2006" month="January" />
    <abstract>

    <t>This document describes the cryptographic
    algorithms and parameters supplementary to the
    original GOST specifications, GOST 28147-89,
    GOST R 34.10-94, GOST R 34.10-2001, and
    GOST R 34.11-94,
    for use in Internet applications. This memo provides
    information for the Internet community.</t>
    
    </abstract></front>

    <seriesInfo name="RFC" value="4357" />

    <format type="TXT" octets="114564" target="ftp://ftp.isi.edu/in-notes/rfc4357.txt" />

</reference>


            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.4491.xml -->
<reference anchor="CPPK">
    <front>

    <title>Using the GOST R 34.10-94,
    GOST R 34.10-2001,
    and GOST R 34.11-94 Algorithms with the Internet
    X.509 Public Key Infrastructure Certificate and CRL
    Profile</title>

    <author initials="S." surname="Leontiev" fullname="S. Leontiev">
    <organization /></author>
    <author initials="D." surname="Shefanovski" fullname="D. Shefanovski">
    <organization /></author>
    <date year="2006" month="May" />
    <abstract>

    <t>This document supplements RFC 3279. It
    describes encoding formats, identifiers, and
    parameter formats for the algorithms
    GOST R 34.10-94, GOST R 34.10-2001, and
    GOST R 34.11-94 for
    use in Internet X.509 Public Key Infrastructure
    (PKI). [STANDARDS TRACK]</t>
    
    </abstract></front>
    <seriesInfo name="RFC" value="4491" />

    <format type="TXT" octets="39095" target="ftp://ftp.isi.edu/in-notes/rfc4491.txt" />
    
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.4490.xml -->
<reference anchor="CPCMS">
    <front>

    <title>Using the GOST 28147-89, GOST R 34.11-94,
    GOST R 34.10-94, and GOST R 34.10-2001 Algorithms
    with Cryptographic Message Syntax (CMS)</title>

    <author initials="S." surname="Leontiev" fullname="S. Leontiev">
    <organization /></author>
    <author initials="G." surname="Chudov" fullname="G. Chudov">
    <organization /></author>
    <date year="2006" month="May" />
    <abstract>

    <t>This document describes the conventions for
    using the cryptographic algorithms GOST 28147-89,
    GOST R 34.10-94,
    GOST R 34.10-2001, and GOST R 34.11-94 with the Cryptographic Message Syntax
    (CMS). The CMS is used for digital signature,
    digest, authentication, and encryption of arbitrary
    message contents. [STANDARDS TRACK]</t>
    
    </abstract></front>
    <seriesInfo name="RFC" value="4490" />

    <format type="TXT" octets="54912" target="ftp://ftp.isi.edu/in-notes/rfc4490.txt" />

</reference>

            
<reference anchor="GOST28147">
    <front>
    
    <title>Cryptographic Protection for Data Processing
    System, Gosudarstvennyi Standard of USSR (In
    Russian)</title>

    <author><organization>
    Government Committee of the USSR for Standards
    </organization></author>
    
    <date year="1989" />
    <abstract>

    <t>?????</t>

    </abstract></front>
    <seriesInfo name="GOST" value="28147-89" />
</reference>

            
<reference anchor="GOSTR341001">
    <front>

    <title>Information technology. Cryptographic Data
    Security.Signature and verification processes of
    [electronic] digital signature, Gosudarstvennyi
    Standard of Russian Federation (In Russian)</title>

    <author><organization>
    Government Committee of the Russia for Standards
    </organization></author>
    
    <date year="2001" />
    </front>
    <seriesInfo name="GOST R" value="34.10-2001" />
</reference>

            
<reference anchor="GOSTR341194">
    <front>

    <title>Information technology. Cryptographic Data
    Security.  Hashing function, Gosudarstvennyi
    Standard of Russian Federation (In Russian)</title>

    <author><organization>
    Government Committee of the Russia for Standards
    </organization></author>

    <date year="1994" />
    </front>
    <seriesInfo name="GOST R" value="34.11-94" />
</reference>

            
<reference anchor="GOST3431004">
    <front>

    <title>Information technology. Cryptographic Data
    Security.  Formation and verification processes of
    (electronic) digital signature based on Asymmetric
    Cryptographic Algorithm (In Russian)</title>

    <author><organization> Council for Standardization,
    Metrology and Certification of the Commonwealth of
    Independence States (EASC), Minsk
    </organization></author>
    
    <date year="2004" />
    </front>
    <seriesInfo name="GOST" value="34.310-2004" />
</reference>

            
<reference anchor="GOST3431195">
    <front>

    <title>Information technology. Cryptographic Data
    Security.  Cashing function (In Russian)</title>

    <author><organization> Council for Standardization,
    Metrology and Certification of the Commonwealth of
    Independence States (EASC), Minsk
    </organization></author>

    <date year="1995" />
    </front>
    <seriesInfo name="GOST" value="34.311-95" />
</reference>

            

<reference anchor="WS-SECURITY" target="http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-SOAPMessageSecurity.pdf">
  <front>
    <title>Web Services Security: SOAP Message Security 1.1 (WS-Security 2004)</title>
    <author initials="K." surname="Lawrence" fullname="Kelvin Lawrence">
      <organization>IBM</organization>
    </author>
    <author initials="C." surname="Kaler" fullname="Chris Kaler">
      <organization>Microsoft</organization>
    </author>
    <date year="2006" month="Febraury" day="1" />
  </front>
  <seriesInfo name="OASIS Standard" value="wss-v1.1-spec-os-SOAPMessageSecurity" />
</reference>

            

<reference anchor="WS-SECURECONVERSATION" target="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/ws-secureconversation-1.3-os.html">
  <front>
    <title>WS-SecureConversation 1.3</title>
    <author initials="K." surname="Lawrence" fullname="Kelvin Lawrence">
      <organization>IBM</organization>
    </author>
    <author initials="C." surname="Kaler" fullname="Chris Kaler">
      <organization>Microsoft</organization>
    </author>
    <date year="2007" month="March" day="1" />
  </front>
  <seriesInfo name="OASIS Standard" value="ws-secureconversation-1.3-os" />
</reference>

            

<reference anchor="WS-SECURITYPOLICY" target="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html">
  <front>
    <title>WS-SecurityPolicy 1.2</title>
    <author initials="K." surname="Lawrence" fullname="Kelvin Lawrence">
      <organization>IBM</organization>
    </author>
    <author initials="C." surname="Kaler" fullname="Chris Kaler">
      <organization>Microsoft</organization>
    </author>
    <date year="2007" month="July" day="1" />
  </front>
  <seriesInfo name="OASIS Standard" value="ws-securitypolicy-1.2-spec-os" />
</reference>

            

<reference anchor="WS-POLICY" target="http://www.w3.org/TR/ws-policy/">
  <front>
    <title>Web Services Policy 1.5 - Framework</title>
    <author initials="A.S." surname="Vedamuthu" fullname="Asir S Vedamuthu">
      <organization>Microsoft</organization>
    </author>
    <author initials="D." surname="Orchard" fullname="David Orchard">
      <organization>BEA Systems</organization>
    </author>
    <author initials="F." surname="Hirsch" fullname="Frederick Hirsch">
      <organization>Nokia</organization>
    </author>
    <author initials="M." surname="Hondo" fullname="Maryann Hondo">
      <organization>IBM</organization>
    </author>
    <author initials="P." surname="Yendluri" fullname="Prasad Yendluri">
      <organization>webMethods</organization>
    </author>
    <author initials="T." surname="Boubez" fullname="Toufic Boubez">
      <organization>Layer 7 Technologies</organization>
    </author>
    <author initials="Ü." surname="Yalçinalp" fullname="Ümit Yalçinalp">
      <organization>SAP</organization>
    </author>
    <date day="4" month="September" year="2007" />
  </front>
  <seriesInfo name="W3C" value="REC-ws-policy" />
</reference>

            

<reference anchor="WS-TRUST" target="http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html">
  <front>
    <title>WS-Trust 1.3</title>
    <author initials="K." surname="Lawrence" fullname="Kelvin Lawrence">
      <organization>IBM</organization>
    </author>
    <author initials="C." surname="Kaler" fullname="Chris Kaler">
      <organization>Microsoft</organization>
    </author>
    <date year="2007" month="March" day="19" />
  </front>
  <seriesInfo name="OASIS Standard" value="ws-trust-1.3-os" />
</reference>

            
<reference anchor="WS-TRUST-TLS" target="http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-trust/WSTrustForTLS-final.pdf">
    <front>

    <title>Application Note: Using WS-Trust for TLS Handshake</title>
    
    <author initials="J." surname="Alexander" fullname="Jan Alexander">
      <organization>Microsoft</organization>
    </author>
    <author initials="G." surname="Della-Libera" fullname="Giovanni Della-Libera">
      <organization>Microsoft</organization>
    </author>
    <author initials="V." surname="Gajjala" fullname="Vijay Gajjala">
      <organization>Microsoft</organization>
    </author>
    <author initials="K." surname="Gavrylyuk" fullname="Kirill Gavrylyuk">
      <organization>Microsoft</organization>
    </author>
    <author initials="C." surname="Kaler" fullname="Chris Kaler">
      <organization>Microsoft</organization>
    </author>
    <author initials="M." surname="McIntosh" fullname="Michael McIntosh">
      <organization>IBM</organization>
    </author>
    <author initials="A." surname="Nadalin" fullname="Anthony Nadalin">
      <organization>IBM</organization>
    </author>
    <author initials="B." surname="Rich" fullname="Bruce Rich">
      <organization>IBM</organization>
    </author>
    <author initials="T.R." surname="Vishwanath" fullname="T.R.Vishwanath">
      <organization>Microsoft</organization>
    </author>

    <date year="2007" month="September" day="7" />
    </front>
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml -->

<reference anchor="TLS">

<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
<author initials="T." surname="Dierks" fullname="T. Dierks">
<organization /></author>
<author initials="E." surname="Rescorla" fullname="E. Rescorla">
<organization /></author>
<date year="2008" month="August" />
<abstract>
<t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name="RFC" value="5246" />
<format type="TXT" octets="222395" target="ftp://ftp.isi.edu/in-notes/rfc5246.txt" />
</reference>

            
<!-- http://xml.resource.org/public/rfc/bibxml3/reference.I-D.chudov-cryptopro-cptls.xml -->
<reference anchor="draft.CPTLS">
<front>
<title>GOST 28147-89 Cipher Suites for Transport Layer Security (TLS)</title>

<author initials="A" surname="Afanasiev" fullname="Alexandr  Afanasiev">
    <organization />
</author>

<author initials="N" surname="Nikishin" fullname="Nikolaj Nikishin">
    <organization />
</author>

<author initials="B" surname="Izotov" fullname="Boleslav Izotov">
    <organization />
</author>

<author initials="E" surname="Minaeva" fullname="Elena Minaeva">
    <organization />
</author>

<author initials="S" surname="Murugov" fullname="Serguei Murugov">
    <organization />
</author>

<author initials="I" surname="Ustinov" fullname="Igor Ustinov">
    <organization />
</author>

<author initials="A" surname="Erkin" fullname="Anatolij Erkin">
    <organization />
</author>

<author initials="G" surname="Chudov" fullname="Grigorij Chudov">
    <organization />
</author>

<author initials="S" surname="Leontiev" fullname="Serguei Leontiev">
    <organization />
</author>

<date month="December" day="8" year="2008" />

<abstract><t>This document is intended to register new cipher suites for the Transport Layer Security (TLS) protocol, according to the procedure specified in TLS Protocol standards.  These cipher suites are based on Russian national cryptographic standards - GOST R 34.10-94 and GOST R 34.10-2001 public keys, GOST 28147-89 encryption algorithm and GOST R 34.11-94 digest algorithm.</t></abstract>

</front>

<seriesInfo name="Internet-Draft" value="draft-chudov-cryptopro-cptls-04" />
<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-chudov-cryptopro-cptls-04.txt" />
</reference>

            

<!-- http://xml.resource.org/public/rfc/bibxml2/reference.CCITT.X208.1988.xml -->
<reference anchor="X.208-88">
    <front>
        <title>Specification of Abstract Syntax Notation One (ASN.1)</title>
        <author>
            <organization>
                International International Telephone and Telegraph
                Consultative Committee
            </organization>
        </author>
        <date month="November" year="1988" />
    </front>

    <seriesInfo name="CCITT" value="Recommendation X.208" />
</reference>

        </references>

        <references title="Informative references">
            
<!-- http://xml.resource.org/public/rfc/bibxml2/reference.W3C.REC-xml.xml -->
<reference anchor="XML" target="http://www.w3.org/TR/2006/REC-xml-20060816">
  <front>
    <title>Extensible Markup Language (XML) 1.0 (Fourth Edition)</title>
    <author initials="T." surname="Bray" fullname="Tim Bray">
      <organization>Textuality and Netscape</organization>
      <address>
        <email>tbray@textuality.com</email>
      </address>
    </author>
    <author initials="J." surname="Paoli" fullname="Jean Paoli">
      <organization>Microsoft</organization>
      <address>
        <email>jeanpa@microsoft.com</email>
      </address>
    </author>
    <author initials="C.M." surname="Sperberg-McQueen" fullname="C. M. Sperberg-McQueen">
      <organization>University of Illinois at Chicago and Text Encoding Initiative</organization>
      <address>
        <email>cmsmcq@uic.edu</email>
      </address>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization>Sun Microsystems</organization>
      <address>
        <email>eve.maler@east.sun.com</email>
      </address>
    </author>
    <author initials="F." surname="Yergeau" fullname="François Yergeau">
      <organization />
      <address />
    </author>
    <date day="16" month="August" year="2006" />
  </front>
  <seriesInfo name="W3C" value="REC-xml" />
</reference>

            
<!--http://xml.resource.org/public/rfc/bibxml/reference.RFC.3061.xml-->

<reference anchor="URNOID">

<front>
<title>A URN Namespace of Object Identifiers</title>
<author initials="M." surname="Mealling" fullname="M. Mealling">
<organization /></author>
<date year="2001" month="February" />
<abstract>
<t>This document describes a Uniform Resource Name (URN) namespace that contains Object Identifiers (OIDs).  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name="RFC" value="3061" />
<format type="TXT" octets="8387" target="ftp://ftp.isi.edu/in-notes/rfc3061.txt" />
</reference>

            

<reference anchor="RFC4134">

<front>
<title>Examples of S/MIME Messages</title>
<author initials="P." surname="Hoffman" fullname="P. Hoffman">
<organization /></author>
<date year="2005" month="July" />
<abstract>
<t>This document gives examples of message bodies formatted using S/MIME.  Specifically, it has examples of Cryptographic Message Syntax (CMS) objects and S/MIME messages (including the MIME formatting).  It includes examples of many common CMS formats.  The purpose of this document is to help increase interoperability for S/MIME and other protocols that rely on CMS.  This memo provides information for the Internet community.</t></abstract></front>

<seriesInfo name="RFC" value="4134" />
<format type="TXT" octets="325865" target="ftp://ftp.isi.edu/in-notes/rfc4134.txt" />
</reference>

        </references>

        <section title="Aggregate XML Schema" anchor="SCHEMA" toc="default">
            <t>
                
<?rfc include='cpxmldsig.xsd' ?>
            </t>
        </section>

        <section title="Aggregate DTD" toc="default">

            <t>
                
<?rfc include='cpxmldsig.dtd' ?>
            </t>

        </section>

        <section title="Examples" toc="default">

            <t>
                Examples here are stored in the same format as the examples in
                <xref target="RFC4134" pageno="false" format="default" /> and can be extracted using the same
                program.
            </t>

            <t>
                If you want to extract without the program, copy all the lines
                between the "|&gt;" and "|&lt;" markers, remove any page breaks,
                and remove
                the "|" in the first column of each line.  The result is a valid
                Base64 blob that can be processed by any Base64 decoder.
            </t>

            <section title="Signed document" toc="default">

                <t>
                    This sample contain the signed XML document using the sample
                    certificate from Section 4.2 of <xref target="CPPK" pageno="false" format="default" />.
                </t>

                <t>
                    
<?rfc include='XmlDocSigned2001.b64' ?>
                </t>

            </section>
        </section>

        <section title="Acknowledgments" toc="default">

            <t>The authors wish to thank:</t>

            <t>
                <list>
                    <t>
                        Microsoft Corporation Russia for provided
                        information about company products and solutions,
                        and also for technical consulting in PKI.
                    </t>
                    <t />
                    <t>
                        Our colleague Grigorij S. Chudov for writing the first
                        version of this document.
                    </t>
                </list>
            </t>
        </section>

    </back>

</rfc>