<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-cuiling-dnsop-sm2-alg-11" category="info" updates="8624" ipr="trust200902" obsoletes="" xml:lang="en" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <!-- Generated by id2xml 1.5.2 on 2023-11-10T00:41:46Z -->
	<front>
    <title abbrev="SM2 Digital Signature Algorithm for DNSS">SM2 Digital Signature Algorithm for DNSSEC</title>
    <seriesInfo name="Internet-Draft" value="draft-cuiling-dnsop-sm2-alg-11"/>
    <author initials="C." surname="Zhang" fullname="Cuiling Zhang">
      <organization>CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <street>Beijing, 100190</street>
          <street>China</street>
        </postal>
        <email>zhangcuiling@cnnic.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Yukun Liu">
      <organization>CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <street>Beijing, 100190</street>
          <street>China</street>
        </postal>
        <email>liuyukun@cnnic.cn</email>
      </address>
    </author>
    <author initials="F." surname="Leng" fullname="Feng Leng">
      <organization>CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <street>Beijing, 100190</street>
          <street>China</street>
        </postal>
        <email>lengfeng@cnnic.cn</email>
      </address>
    </author>
    <author initials="Q." surname="Zhao" fullname="Qi Zhao">
      <organization>CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <street>Beijing, 100190</street>
          <street>China</street>
        </postal>
        <email>zhaoqi@cnnic.cn</email>
      </address>
    </author>
    <author initials="Z." surname="He" fullname="Zheng He">
      <organization>CNNIC</organization>
      <address>
        <postal>
          <street>No.4 South 4th Street, Zhongguancun</street>
          <street>Beijing, 100190</street>
          <street>China</street>
        </postal>
        <email>hezh@cnnic.cn</email>
      </address>
    </author>
    <date year="2023" month="November"/>
    <abstract>
      <t>
   This document describes how to specify SM2 Digital Signature
   Algorithm keys and signatures in DNS Security (DNSSEC). It lists
   the curve and uses SM3 as hash algorithm for signatures.</t>
      <t>
   This draft is an independent submission to the RFC series, and does
   not   have consensus of the IETF community.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   DNSSEC is broadly defined in RFCs 4033, 4034, and 4035 (<xref target="RFC4033" format="default"/>,
   <xref target="RFC4034" format="default"/>, and <xref target="RFC4035" format="default"/>). It uses cryptographic keys and digital
   signatures to provide authentication of DNS data. Currently, there
   are several signature algorithms, such as RSA with SHA-256 defined
   in RFC 5702 ([RFC5702]), and ECDSA with curve P-256 and SHA-256
   defined in RFC 6605 (<xref target="RFC6605" format="default"/>), etc.</t>
      <t>
   This document defines the DNSKEY and RRSIG resource records (RRs)
   of a new signing algorithms: SM2 uses elliptic curves over 256-bit
   prime fields with SM3 hash algorithm. (A description of SM2 and SM3
   can be found in GB/T 32918.2-2016 <xref target="GBT-32918.2-2016" format="default"/> or ISO/IEC14888-3:2018
   <xref target="ISO-IEC14888-3_2018" format="default"/>, and GB/T 32905-2016 <xref target="GBT-32905-2016" format="default"/> or
   ISO/IEC10118-3:2018 <xref target="ISO-IEC10118-3_2018" format="default"/>.) This document also
   defines the DS RR for the SM3 one-way hash algorithm. In the signing
   algorithm defined in this document, the size of the key for the
   elliptic curve is matched with the size of the output of the hash
   algorithm. Both are 256 bits.</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 RFC 2119 <xref target="RFC2119" format="default"/>.</t>
    </section>
    <section anchor="sect-2" numbered="true" toc="default">
      <name>SM3 DS Records</name>
      <t>
   SM3 is included in ISO/IEC 10118-3:2018 and is similar to SHA-256
   in many ways. The implementation of SM3 in DNSSEC follows the
   implementation of SHA-256 as specified in RFC 4509<xref target="RFC4509" format="default"/> except
   that the underlying algorithm is SM3 with digest type code [TBD1].</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>SM2 Parameters</name>
      <t>
   Verifying SM2 signatures requires agreement between the signer and
   the verifier of the parameters used. SM2 digital signature algorithm
   has been added to ISO/IEC 14888-3:2018. And the parameters of the
   curve used in this document are as follows:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
   p  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
   a  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
   b  = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93
   xG = 32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7
   yG = BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0
   n  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123
]]></artwork>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>DNSKEY and RRSIG Resource Records for SM2</name>
      <t>
   SM2 public keys consist of a single value, called "P". In DNSSEC keys,
   P is a string of 32 octets that represents the uncompressed form of a
   curve point, "x | y".</t>
      <t>
   The SM2 signature is the combination of two non-negative integers,
   called "r" and "s". The two integers, each of which is formatted as
   a simple octet string, are combined into a single longer octet string
   for DNSSEC as the concatenation "r | s". (Conversion of the integers
   to bit strings is the same as ECDSA signature.) Each integer MUST be
   encoded as 32 octets.</t>
      <t>
   Although SM2 uses elliptic curves, the process of digest and signature
   generation is different from ECDSA. Process details are described in
   section 6 "Digital signature generation algorithm and its process" in
   <xref target="GBT-32918.2-2016" format="default"/>.</t>
      <t>
   The algorithm number associated with the DNSKEY and RRSIG resource records
   is [TBD2], which is described in the IANA Considerations section.</t>
      <t>
   Conformant implementations that create records to be put into the DNS MAY
   implement signing and verification for the above algorithm. Conformant
   DNSSEC verifiers MAY implement verification for the above algorithm.</t>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Support for NSEC3 Denial of Existence</name>
      <t>
   This document does not define algorithm aliases mentioned in RFC 5155
   <xref target="RFC5155" format="default"/>.</t>
      <t>
   A DNSSEC validator that implements the signing algorithms defined in this
   document MUST be able to validate negative answers in the form of both NSEC
   and NSEC3 with hash algorithm 1, as defined in RFC 5155. An authoritative
   server that does not implement NSEC3 MAY still serve zones that use the
   signing algorithms defined in this document with NSEC denial of existence.</t>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Example</name>
      <t>
   The following is an example of SM2 keys and signatures in DNS zone file format.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Private-key-format: v1.3
Algorithm: [TBD2] (SM2SM3)
PrivateKey: V24tjJgXxp2ykscKRZdT+iuR5J1xRQN+FKoQACmo9fA=
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![CDATA[
    example.net. 3600 IN DNSKEY 257 3 TBD2 (
      jZbZMBImG9dtGWSVEwnv2l32OVKcX7MMJv+83/+A41ia
      ZuO0ajXMcuyJbTr8Ud+kae6UlfqrnsG6tgADIPHxXA== )

    example.net. 3600 IN DS 27215 TBD2 TBD1 (
      86671f82dd872e4ee73647a95dff7fd0af599ff8a43f
      fa26c9a2593091653c0e )

    www.example.net. 3600 IN A 192.0.2.1
    www.example.net. 3600 IN RRSIG A TBD2 6 3600 (
      20220428075649 20220331075649 27215 example.net.
      tz295lkfu2InRnLdLhKWDm354I6ZGSmYeOSDswKiQMU7
      /Va0QrH7bD7ZnHB4wWsEjfy1XscwM4P86sVxkMJE7w== )
]]></artwork>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   This document will update the IANA registry for digest types in DS records,
   currently called "Delegation Signer (DS) Resource Record (RR) Type Digest Algorithms".</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
       Value          TBD1
       Digest Type    SM3
       Status         OPTIONAL
]]></artwork>
      <t>
   This document will update the IANA registry "Domain Name System Security (DNSSEC) Algorithm Numbers".</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
       Number         TBD2
       Description    SM2 signing algorithm with SM3 hashing algorithm
       Mnemonic       SM2SM3
       Zone Signing   Y
       Trans. Sec.    *
       Reference      This document
]]></artwork>
      <t>
   * There has been no determination of standardization of the use of this
   algorithm with Transaction Security.</t>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   The security strength of SM2 is considered to be equivalent to half
   the size of the key, which is 128 bits.</t>
      <t>
   For another thing, the security of ECC-based algorithms is influenced
   by the curve it uses.</t>
      <t>
   Thus it's recommended that the DNS server implementations use popular
   cryptography library which support SM2 and SM3 algorithms, such as
   OpenSSL. Thus it's convenient to use a different curve if SM2 is
   compromised.</t>
      <t>
   The security considerations listed in RFC 4509 apply here as well.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4033" target="https://www.rfc-editor.org/info/rfc4033" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="RFC4034" target="https://www.rfc-editor.org/info/rfc4034" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml">
          <front>
            <title>Resource Records for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4034"/>
          <seriesInfo name="DOI" value="10.17487/RFC4034"/>
        </reference>
        <reference anchor="RFC4035" target="https://www.rfc-editor.org/info/rfc4035" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4035.xml">
          <front>
            <title>Protocol Modifications for the DNS Security Extensions</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
              <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4035"/>
          <seriesInfo name="DOI" value="10.17487/RFC4035"/>
        </reference>
        <reference anchor="RFC4509" target="https://www.rfc-editor.org/info/rfc4509" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4509.xml">
          <front>
            <title>Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)</title>
            <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
            <date month="May" year="2006"/>
            <abstract>
              <t>This document specifies how to use the SHA-256 digest type in DNS Delegation Signer (DS) Resource Records (RRs). DS records, when stored in a parent zone, point to DNSKEYs in a child zone. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4509"/>
          <seriesInfo name="DOI" value="10.17487/RFC4509"/>
        </reference>
        <reference anchor="RFC5155" target="https://www.rfc-editor.org/info/rfc5155" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5155.xml">
          <front>
            <title>DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="G. Sisson" initials="G." surname="Sisson"/>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="D. Blacka" initials="D." surname="Blacka"/>
            <date month="March" year="2008"/>
            <abstract>
              <t>The Domain Name System Security (DNSSEC) Extensions introduced the NSEC resource record (RR) for authenticated denial of existence. This document introduces an alternative resource record, NSEC3, which similarly provides authenticated denial of existence. However, it also provides measures against zone enumeration and permits gradual expansion of delegation-centric zones. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5155"/>
          <seriesInfo name="DOI" value="10.17487/RFC5155"/>
        </reference>
        <reference anchor="RFC6605" target="https://www.rfc-editor.org/info/rfc6605" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6605.xml">
          <front>
            <title>Elliptic Curve Digital Signature Algorithm (DSA) for DNSSEC</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="W.C.A. Wijngaards" initials="W.C.A." surname="Wijngaards"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>This document describes how to specify Elliptic Curve Digital Signature Algorithm (DSA) keys and signatures in DNS Security (DNSSEC). It lists curves of different sizes and uses the SHA-2 family of hashes for signatures. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6605"/>
          <seriesInfo name="DOI" value="10.17487/RFC6605"/>
        </reference>
        <reference anchor="GBT-32918.2-2016" target="http://www.gmbz.org.cn/upload/2018-07-24/1532401673138056311.pdf">
          <front>
            <title>Information security technology --- Public key cryptographic algorithm SM2 based on elliptic curves --- Part 2: Digital signature algorithm</title>
            <author>
              <organization>Standardization Administration of China</organization>
            </author>
            <date month="March" year="2017"/>
          </front>
          <seriesInfo name="GB/T" value="32918.2-2016"/>
        </reference>
        <reference anchor="ISO-IEC14888-3_2018">
          <front>
            <title>IT Security techniques -- Digital signatures with appendix --Part 3: Discrete logarithm based mechanisms</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date month="November" year="2018"/>
          </front>
          <seriesInfo name="ISO" value="ISO/IEC 14888-3:2018"/>
        </reference>
        <reference anchor="GBT-32905-2016" target="http://www.gmbz.org.cn/upload/2018-07-24/1532401392982079739.pdf">
          <front>
            <title>Information security technology --- SM3 cryptographic hash algorithm</title>
            <author>
              <organization>Standardization Administration of China</organization>
            </author>
            <date month="March" year="2017"/>
          </front>
          <seriesInfo name="GB/T" value="32905-2016"/>
        </reference>
        <reference anchor="ISO-IEC10118-3_2018">
          <front>
            <title>IT Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions</title>
            <author>
              <organization>International Organization for Standardization</organization>
            </author>
            <date month="October" year="2018"/>
          </front>
          <seriesInfo name="ISO" value="ISO/IEC 10118-3:2018"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="Example_Program" target="https://github.com/scooct/dnssec_sm2sm3">
          <front>
            <title>Sign and Validate DNSSEC Signature with SM2SM3 Algorithm</title>
            <author initials="C." surname="Zhang" fullname="C. Zhang">
	</author>
            <date month="April" year="2023"/>
          </front>
          <seriesInfo name="SM2SM3" value="DNSSEC Example Program"/>
        </reference>
      </references>
    </references>
    <section anchor="sect-a" numbered="true" toc="default">
      <name>Example Zone</name>
      <t>
   This is a zone showing its RRSIG RRs generated with SM3 hash algorithm
   and SM2 signature algorithm.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
example. 3600  IN   SOA    ns1.example. root.example. (
                    1          ; serial
                    3600       ; refresh (1 hour)
                    300        ; retry (5 minutes)
                    3600000    ; expire (5 weeks 6 days 16 hours)
                    3600       ; minimum (1 hour)
                    )
            RRSIG   SOA TBD2 1 3600 (
                    20230901000000 20220901000000 65042 example.
                    vXGQ/M+QJbEzdF9MW8rqJVN+QC5LdpK7k7vt
                    nupu/SrZhiKDGcXpORMpprlljlQ6w4YqytdA
                    ZHfbu25HfIyEgw== )
            NS      ns1.example.
            NS      ns2.example.
            RRSIG   NS TBD2 1 3600 (
                    20230901000000 20220901000000 65042 example.
                    xXR6eAWSdv9KpEtX/GccI0AFafmUoARf9Q1i
                    CgtoJKjFCQySqBLVxlgiQQaTpZqY8taepygv
                    8g5o5mHsfmyPiw== )
            DNSKEY  256 3 TBD2 (
                    7EQ32PTAp+1ac6R9Ze2nfB8pPc2OJqkHSjug
                    ALr4SuD9awuQxhfw7wMpiXv7JK4/VwwTrCxJ
                    wu+qUuDsgoBK4w==
                    ) ; ZSK; alg = SM2SM3 ; key id = 65042
            DNSKEY  257 3 TBD2 (
                    jZbZMBImG9dtGWSVEwnv2l32OVKcX7MMJv+8
                    3/+A41iaZuO0ajXMcuyJbTr8Ud+kae6Ulfqr
                    nsG6tgADIPHxXA==
                    ) ; KSK; alg = SM2SM3 ; key id = 27215
            RRSIG   DNSKEY TBD2 1 3600 (
                    20230901000000 20220901000000 65042 example.
                    lF2eq49e62Nn4aT5x8ZI6PdRSTPHPDixZdyl
                    lM6GWu4lkRWkpTgWLE4lQK/+qHdNS4DdTd36
                    Jsuu0FSO5k48Qg== )
            RRSIG   DNSKEY TBD2 1 3600 (
                    20230901000000 20220901000000 27215 example.
                    +MDF1bnH/8zCeOwJQbWSfwb6OCB8fp16rxog
                    S9+PbxHEcKNTOUX3hPxdM8NblDgY19c+KDmr
                    xei2D84M2B50cQ== )
         0  NSEC3PARAM 1 0 10 AABBCCDD
         0  RRSIG    NSEC3PARAM TBD2 1 0 (
                    20230901000000 20220901000000 65042 example.
                    aqntwEYEJzkVb8SNuJLwdx7f+vivv5IUIeAj
                    6/TGt2/bewiM/Hp9fqOysEcjgWZ7lZbqJsR5
                    HtKlddixnjmOFQ== )
ns2.example.    A   192.0.2.2
            RRSIG   A TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    xqot4urj885t1SDnAZnozl4s3t/El1HZVLwb
                    0N2Bb6IdEBtH/SNJdN1Zz/xBysCGkRwoMq2I
                    Uk+v3Yl6Uo8Eiw== )
ns1.example.    A   192.0.2.1
            RRSIG   A TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    5ZNwC4No82PeHZd5PgdGmBsvRxjBe3FlnA4S
                    g8/tDZlHM7QSbDDN17r8+qHq+AeXKy8cSF3n
                    U+byf9VjzV9IKA== )
www.example.    A   192.0.2.3
            RRSIG    A TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    vNTwnIQzImSG6b6F0dNhNz+mt8oSRITzfiNh
                    mzdvI0w1eHxTetA/3Tu3HLoDYDw+D5uGcoVZ
                    NlvZpyrIU1BIAA== )
S0OCR8EH8COF31Q1TO66KIDIT4A4RV8R.example.  NSEC3    1 1 10 AABBCCDD (
                    62KP1QB93KRGR6LM7SEVPJVNG90BLUE8
                    A RRSIG )
            RRSIG   NSEC3 TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    ai3O/vkgVX6DRJFjfwWJI71QNXucCaTpWBAQ
                    JyedgjRGC/XgX1WF60SglDzWmlHdyACPHV4S
                    1dBE344tnNgAtA== )
GTGVQIILTSSJ8FFO9J6DC8PRTFAEA8G2.example.  NSEC3    1 1 10 AABBCCDD (
                    NIU1DMQS67H1PIN9JIMC33JCMO8MU99T
                    A RRSIG )
            RRSIG   NSEC3 TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    3BUwHiacqHADK7Y31kFa4JnGOrURCXlZNmZq
                    B163jles9HCQHIDR60DFZdZhx1sVBsd8Rl+L
                    dUcia3aUgNqwlA== )
NIU1DMQS67H1PIN9JIMC33JCMO8MU99T.example.  NSEC3    1 1 10 AABBCCDD (
                    OHVFQ9KQA23B5PM64EST8LNRQRLQ624H
                    A RRSIG )
            RRSIG   NSEC3 TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    ctAutz6smtvUeeCyZPel3BTYJzkJcYGXEDRH
                    hosBrWRiipM/C94nZxFpYioK+mq5tw9yebwH
                    83Vq94AChHbabg== )
test.example.   A   192.0.2.4
            RRSIG   A TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    H9+NQdd9o4NTj8siRO8c5IrjJ/6BuNaZdgeh
                    AbcwTcxBvhE7D4XeHH9zUcZ0gVuhdR8WoA8H
                    FVbCrekKGgW7Gw== )
OHVFQ9KQA23B5PM64EST8LNRQRLQ624H.example.  NSEC3    1 1 10 AABBCCDD (
                    S0OCR8EH8COF31Q1TO66KIDIT4A4RV8R
                    A RRSIG )
            RRSIG   NSEC3 TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    eygDRIjsL+OXE4leoBuZOFptq+FMkWGfXA19
                    ojaJlnRfeLXEHKBrCFMEe+8l3qlTkGFsBo3N
                    E3tQU4uSMafViA== )
62KP1QB93KRGR6LM7SEVPJVNG90BLUE8.example.  NSEC3    1 1 10 AABBCCDD (
                    GTGVQIILTSSJ8FFO9J6DC8PRTFAEA8G2
                    NS SOA RRSIG DNSKEY NSEC3PARAM )
            RRSIG   NSEC3 TBD2 2 3600 (
                    20230901000000 20220901000000 65042 example.
                    FOWLegTgFkFY9vCOo4kHwjEvZ+IL1NMl4s9V
                    hVyPOwokd5uOLKeXTP19HIeEtW73WcJ9XNe/
                    ie/knp7Edo/hxw== )
]]></artwork>
      <dl newline="false" spacing="normal" indent="3">
        <dt/>
        <dd>
      Here is an example program <xref target="Example_Program" format="default"/> based on dnspython and gmssl,
      which supplies key generating, zone signing, zone validating and DS RR
      generating functions for convinience.</dd>
      </dl>
    </section>
  </back>
</rfc>
