gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0001] branch master updated: add record types


From: gnunet
Subject: [lsd0001] branch master updated: add record types
Date: Sun, 10 Nov 2019 11:49:21 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository lsd0001.

The following commit(s) were added to refs/heads/master by this push:
     new 1cfb3c0  add record types
1cfb3c0 is described below

commit 1cfb3c00b74062a05515b076b2043ff787b0f33a
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Sun Nov 10 11:46:42 2019 +0100

    add record types
---
 draft-schanzen-gns.html | 184 ++++++++++++++++-----------
 draft-schanzen-gns.txt  | 332 ++++++++++++++++++++++++++++++++----------------
 draft-schanzen-gns.xml  |  23 ++++
 3 files changed, 356 insertions(+), 183 deletions(-)

diff --git a/draft-schanzen-gns.html b/draft-schanzen-gns.html
index ca2063d..29e7331 100644
--- a/draft-schanzen-gns.html
+++ b/draft-schanzen-gns.html
@@ -1081,22 +1081,25 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
             <p id="section-boilerplate.3-1.3.1"><a href="#section-3" 
class="xref">3</a>.  <a href="#name-resource-records" class="xref">Resource 
Records</a><a href="#section-boilerplate.3-1.3.1" class="pilcrow">¶</a></p>
 <ul class="toc ulEmpty">
 <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.1">
-                <p id="section-boilerplate.3-1.3.2.1.1"><a href="#section-3.1" 
class="xref">3.1</a>.  <a href="#name-pkey" class="xref">PKEY</a><a 
href="#section-boilerplate.3-1.3.2.1.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.1.1"><a href="#section-3.1" 
class="xref">3.1</a>.  <a href="#name-record-types" class="xref">Record 
Types</a><a href="#section-boilerplate.3-1.3.2.1.1" class="pilcrow">¶</a></p>
 </li>
               <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.2">
-                <p id="section-boilerplate.3-1.3.2.2.1"><a href="#section-3.2" 
class="xref">3.2</a>.  <a href="#name-gns2dns" class="xref">GNS2DNS</a><a 
href="#section-boilerplate.3-1.3.2.2.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.2.1"><a href="#section-3.2" 
class="xref">3.2</a>.  <a href="#name-pkey" class="xref">PKEY</a><a 
href="#section-boilerplate.3-1.3.2.2.1" class="pilcrow">¶</a></p>
 </li>
               <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.3">
-                <p id="section-boilerplate.3-1.3.2.3.1"><a href="#section-3.3" 
class="xref">3.3</a>.  <a href="#name-leho" class="xref">LEHO</a><a 
href="#section-boilerplate.3-1.3.2.3.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.3.1"><a href="#section-3.3" 
class="xref">3.3</a>.  <a href="#name-gns2dns" class="xref">GNS2DNS</a><a 
href="#section-boilerplate.3-1.3.2.3.1" class="pilcrow">¶</a></p>
 </li>
               <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.4">
-                <p id="section-boilerplate.3-1.3.2.4.1"><a href="#section-3.4" 
class="xref">3.4</a>.  <a href="#name-nick" class="xref">NICK</a><a 
href="#section-boilerplate.3-1.3.2.4.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.4.1"><a href="#section-3.4" 
class="xref">3.4</a>.  <a href="#name-leho" class="xref">LEHO</a><a 
href="#section-boilerplate.3-1.3.2.4.1" class="pilcrow">¶</a></p>
 </li>
               <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.5">
-                <p id="section-boilerplate.3-1.3.2.5.1"><a href="#section-3.5" 
class="xref">3.5</a>.  <a href="#name-box" class="xref">BOX</a><a 
href="#section-boilerplate.3-1.3.2.5.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.5.1"><a href="#section-3.5" 
class="xref">3.5</a>.  <a href="#name-nick" class="xref">NICK</a><a 
href="#section-boilerplate.3-1.3.2.5.1" class="pilcrow">¶</a></p>
 </li>
               <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.6">
-                <p id="section-boilerplate.3-1.3.2.6.1"><a href="#section-3.6" 
class="xref">3.6</a>.  <a href="#name-vpn" class="xref">VPN</a><a 
href="#section-boilerplate.3-1.3.2.6.1" class="pilcrow">¶</a></p>
+                <p id="section-boilerplate.3-1.3.2.6.1"><a href="#section-3.6" 
class="xref">3.6</a>.  <a href="#name-box" class="xref">BOX</a><a 
href="#section-boilerplate.3-1.3.2.6.1" class="pilcrow">¶</a></p>
+</li>
+              <li class="toc ulEmpty" id="section-boilerplate.3-1.3.2.7">
+                <p id="section-boilerplate.3-1.3.2.7.1"><a href="#section-3.7" 
class="xref">3.7</a>.  <a href="#name-vpn" class="xref">VPN</a><a 
href="#section-boilerplate.3-1.3.2.7.1" class="pilcrow">¶</a></p>
 </li>
             </ul>
 </li>
@@ -1368,18 +1371,47 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
          regular records when resolving labels in local zones.<a 
href="#section-3-9.6" class="pilcrow">¶</a>
 </dd>
       </dl>
-<div id="gnsrecords_pkey">
+<div id="gnsrecords_numbers">
 <section id="section-3.1">
+        <h3 id="name-record-types">
+<a href="#section-3.1" class="section-number selfRef">3.1. </a><a 
href="#name-record-types" class="section-name selfRef">Record Types</a>
+        </h3>
+<p id="section-3.1-1">
+         GNS-specific record type numbers start at 2^16, i.e. after the record
+         type numbers for DNS. The following is a list of defined and reserved
+         record types in GNS:<a href="#section-3.1-1" class="pilcrow">¶</a></p>
+<div id="figure_rrtypenums">
+<figure id="figure-3">
+          <div class="artwork art-text alignLeft" id="section-3.1-2.1">
+<pre>
+           Number                | Type            | Comment
+           ------------------------------------------------------------
+           65536                 | PKEY            | GNS delegation
+           65537                 | NICK            | GNS zone nickname
+           65538                 | LEHO            | Legacy hostname
+           65539                 | VPN             | Virtual private network
+           65540                 | GNS2DNS         | DNS delegation
+           65541                 | BOX             | Boxed record (for 
TLSA/SRV)
+           65542 up to 2^24 - 1  | -               | Reserved
+           2^24 up to 2^32 - 1   | -               | Unassigned / For private 
use
+           </pre>
+</div>
+<figcaption><a href="#figure-3" class="selfRef">Figure 
3</a></figcaption></figure>
+</div>
+</section>
+</div>
+<div id="gnsrecords_pkey">
+<section id="section-3.2">
         <h3 id="name-pkey">
-<a href="#section-3.1" class="section-number selfRef">3.1. </a><a 
href="#name-pkey" class="section-name selfRef">PKEY</a>
+<a href="#section-3.2" class="section-number selfRef">3.2. </a><a 
href="#name-pkey" class="section-name selfRef">PKEY</a>
         </h3>
-<p id="section-3.1-1">In GNS, a delegation of a label to a zone is represented 
through a PKEY
+<p id="section-3.2-1">In GNS, a delegation of a label to a zone is represented 
through a PKEY
          record. A PKEY resource record contains the public key of the zone to
          delegate to. A PKEY record MUST be the only record under a label. No 
other
-         records are allowed. A PKEY DATA entry has the following format:<a 
href="#section-3.1-1" class="pilcrow">¶</a></p>
+         records are allowed. A PKEY DATA entry has the following format:<a 
href="#section-3.2-1" class="pilcrow">¶</a></p>
 <div id="figure_pkeyrecord">
-<figure id="figure-3">
-          <div class="artwork art-text alignLeft" id="section-3.1-2.1">
+<figure id="figure-4">
+          <div class="artwork art-text alignLeft" id="section-3.2-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1390,23 +1422,23 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-3" class="selfRef">Figure 
3</a></figcaption></figure>
+<figcaption><a href="#figure-4" class="selfRef">Figure 
4</a></figcaption></figure>
 </div>
 </section>
 </div>
 <div id="gnsrecords_gns2dns">
-<section id="section-3.2">
+<section id="section-3.3">
         <h3 id="name-gns2dns">
-<a href="#section-3.2" class="section-number selfRef">3.2. </a><a 
href="#name-gns2dns" class="section-name selfRef">GNS2DNS</a>
+<a href="#section-3.3" class="section-number selfRef">3.3. </a><a 
href="#name-gns2dns" class="section-name selfRef">GNS2DNS</a>
         </h3>
-<p id="section-3.2-1">It is possible to delegate a label back into DNS through 
a GNS2DNS record.
+<p id="section-3.3-1">It is possible to delegate a label back into DNS through 
a GNS2DNS record.
          The resource record contains a DNS name for the resolver to continue 
with
          in DNS followed by a DNS server. Both names are in the format defined 
in
          <span>[<a href="#RFC1034" class="xref">RFC1034</a>]</span> for DNS 
names.
-         A GNS2DNS DATA entry has the following format:<a 
href="#section-3.2-1" class="pilcrow">¶</a></p>
+         A GNS2DNS DATA entry has the following format:<a 
href="#section-3.3-1" class="pilcrow">¶</a></p>
 <div id="figure_gns2dnsrecord">
-<figure id="figure-4">
-          <div class="artwork art-text alignLeft" id="section-3.2-2.1">
+<figure id="figure-5">
+          <div class="artwork art-text alignLeft" id="section-3.3-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1422,16 +1454,16 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----------------------------------------------+
            </pre>
 </div>
-<figcaption><a href="#figure-4" class="selfRef">Figure 
4</a></figcaption></figure>
+<figcaption><a href="#figure-5" class="selfRef">Figure 
5</a></figcaption></figure>
 </div>
 </section>
 </div>
 <div id="gnsrecords_leho">
-<section id="section-3.3">
+<section id="section-3.4">
         <h3 id="name-leho">
-<a href="#section-3.3" class="section-number selfRef">3.3. </a><a 
href="#name-leho" class="section-name selfRef">LEHO</a>
+<a href="#section-3.4" class="section-number selfRef">3.4. </a><a 
href="#name-leho" class="section-name selfRef">LEHO</a>
         </h3>
-<p id="section-3.3-1">Legacy hostname records can be used by applications that 
are expected
+<p id="section-3.4-1">Legacy hostname records can be used by applications that 
are expected
          to supply a DNS name on the application layer. The most common use 
case
          is HTTP virtual hosting, which as-is would not work with GNS names as
          those may not be globally unique.
@@ -1440,10 +1472,10 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
          representing the legacy hostname to use.
          It is expected to be found together in a single
          resource record with an IPv4 or IPv6 address.
-         A LEHO DATA entry has the following format:<a href="#section-3.3-1" 
class="pilcrow">¶</a></p>
+         A LEHO DATA entry has the following format:<a href="#section-3.4-1" 
class="pilcrow">¶</a></p>
 <div id="figure_lehorecord">
-<figure id="figure-5">
-          <div class="artwork art-text alignLeft" id="section-3.3-2.1">
+<figure id="figure-6">
+          <div class="artwork art-text alignLeft" id="section-3.4-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1454,32 +1486,32 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-5" class="selfRef">Figure 
5</a></figcaption></figure>
+<figcaption><a href="#figure-6" class="selfRef">Figure 
6</a></figcaption></figure>
 </div>
-<p id="section-3.3-3">
+<p id="section-3.4-3">
          NOTE: If an application uses a LEHO value in an HTTP request header
          (e.g. "Host:" header) it must be converted to a punycode 
representation
-         <span>[<a href="#RFC5891" class="xref">RFC5891</a>]</span>.<a 
href="#section-3.3-3" class="pilcrow">¶</a></p>
+         <span>[<a href="#RFC5891" class="xref">RFC5891</a>]</span>.<a 
href="#section-3.4-3" class="pilcrow">¶</a></p>
 </section>
 </div>
 <div id="gnsrecords_nick">
-<section id="section-3.4">
+<section id="section-3.5">
         <h3 id="name-nick">
-<a href="#section-3.4" class="section-number selfRef">3.4. </a><a 
href="#name-nick" class="section-name selfRef">NICK</a>
+<a href="#section-3.5" class="section-number selfRef">3.5. </a><a 
href="#name-nick" class="section-name selfRef">NICK</a>
         </h3>
-<p id="section-3.4-1">Nickname records can be used by zone administrators to 
publish an
+<p id="section-3.5-1">Nickname records can be used by zone administrators to 
publish an
          indication on what label this zone prefers to be referred to.
          This is a suggestion to other zones what label to use when creating a
-         PKEY <a href="#gnsrecords_pkey" class="xref">Section 3.1</a> record 
containing this zone's
+         PKEY <a href="#gnsrecords_pkey" class="xref">Section 3.2</a> record 
containing this zone's
          public zone key.
          A NICK resource record contains an UTF-8 string
          (not 0-terminated) representing the preferred label.
          This string may NOT inlcude a ".".
          This record SHOULD only be stored under the empty label "@".
-         A NICK DATA entry has the following format:<a href="#section-3.4-1" 
class="pilcrow">¶</a></p>
+         A NICK DATA entry has the following format:<a href="#section-3.5-1" 
class="pilcrow">¶</a></p>
 <div id="figure_nickrecord">
-<figure id="figure-6">
-          <div class="artwork art-text alignLeft" id="section-3.4-2.1">
+<figure id="figure-7">
+          <div class="artwork art-text alignLeft" id="section-3.5-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1490,20 +1522,20 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-6" class="selfRef">Figure 
6</a></figcaption></figure>
+<figcaption><a href="#figure-7" class="selfRef">Figure 
7</a></figcaption></figure>
 </div>
 </section>
 </div>
 <div id="gnsrecords_box">
-<section id="section-3.5">
+<section id="section-3.6">
         <h3 id="name-box">
-<a href="#section-3.5" class="section-number selfRef">3.5. </a><a 
href="#name-box" class="section-name selfRef">BOX</a>
+<a href="#section-3.6" class="section-number selfRef">3.6. </a><a 
href="#name-box" class="section-name selfRef">BOX</a>
         </h3>
-<p id="section-3.5-1">
-         A BOX DATA entry has the following format:<a href="#section-3.5-1" 
class="pilcrow">¶</a></p>
+<p id="section-3.6-1">
+         A BOX DATA entry has the following format:<a href="#section-3.6-1" 
class="pilcrow">¶</a></p>
 <div id="figure_boxrecord">
-<figure id="figure-7">
-          <div class="artwork art-text alignLeft" id="section-3.5-2.1">
+<figure id="figure-8">
+          <div class="artwork art-text alignLeft" id="section-3.6-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1516,40 +1548,40 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-7" class="selfRef">Figure 
7</a></figcaption></figure>
+<figcaption><a href="#figure-8" class="selfRef">Figure 
8</a></figcaption></figure>
 </div>
-<dl class="dlParallel" id="section-3.5-3">
-          <dt id="section-3.5-3.1">PROTO</dt>
-          <dd id="section-3.5-3.2">
-           the 16-bit protocol number, e.g. 6 for tcp. In network byte 
order.<a href="#section-3.5-3.2" class="pilcrow">¶</a>
+<dl class="dlParallel" id="section-3.6-3">
+          <dt id="section-3.6-3.1">PROTO</dt>
+          <dd id="section-3.6-3.2">
+           the 16-bit protocol number, e.g. 6 for tcp. In network byte 
order.<a href="#section-3.6-3.2" class="pilcrow">¶</a>
 </dd>
-          <dt id="section-3.5-3.3">SVC</dt>
-          <dd id="section-3.5-3.4">
+          <dt id="section-3.6-3.3">SVC</dt>
+          <dd id="section-3.6-3.4">
            the 16-bit service value of the boxed record, i.e. the port number.
-           In network byte order.<a href="#section-3.5-3.4" 
class="pilcrow">¶</a>
+           In network byte order.<a href="#section-3.6-3.4" 
class="pilcrow">¶</a>
 </dd>
-          <dt id="section-3.5-3.5">TYPE</dt>
-          <dd id="section-3.5-3.6">
-           is the 32-bit record type of the boxed record. In network byte 
order.<a href="#section-3.5-3.6" class="pilcrow">¶</a>
+          <dt id="section-3.6-3.5">TYPE</dt>
+          <dd id="section-3.6-3.6">
+           is the 32-bit record type of the boxed record. In network byte 
order.<a href="#section-3.6-3.6" class="pilcrow">¶</a>
 </dd>
-          <dt id="section-3.5-3.7">RECORD DATA</dt>
-          <dd id="section-3.5-3.8">
+          <dt id="section-3.6-3.7">RECORD DATA</dt>
+          <dd id="section-3.6-3.8">
            is a variable length field containing the "DATA" format of TYPE as
-           defined for the respective TYPE in DNS.<a href="#section-3.5-3.8" 
class="pilcrow">¶</a>
+           defined for the respective TYPE in DNS.<a href="#section-3.6-3.8" 
class="pilcrow">¶</a>
 </dd>
         </dl>
 </section>
 </div>
 <div id="gnsrecords_vpn">
-<section id="section-3.6">
+<section id="section-3.7">
         <h3 id="name-vpn">
-<a href="#section-3.6" class="section-number selfRef">3.6. </a><a 
href="#name-vpn" class="section-name selfRef">VPN</a>
+<a href="#section-3.7" class="section-number selfRef">3.7. </a><a 
href="#name-vpn" class="section-name selfRef">VPN</a>
         </h3>
-<p id="section-3.6-1">
-         A VPN DATA entry has the following format:<a href="#section-3.6-1" 
class="pilcrow">¶</a></p>
+<p id="section-3.7-1">
+         A VPN DATA entry has the following format:<a href="#section-3.7-1" 
class="pilcrow">¶</a></p>
 <div id="figure_vpnrecord">
-<figure id="figure-8">
-          <div class="artwork art-text alignLeft" id="section-3.6-2.1">
+<figure id="figure-9">
+          <div class="artwork art-text alignLeft" id="section-3.7-2.1">
 <pre>
            0     8     16    24    32    40    48    56
            +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1565,7 +1597,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----------------------------------------------+
            </pre>
 </div>
-<figcaption><a href="#figure-8" class="selfRef">Figure 
8</a></figcaption></figure>
+<figcaption><a href="#figure-9" class="selfRef">Figure 
9</a></figcaption></figure>
 </div>
 </section>
 </div>
@@ -1666,7 +1698,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
          DHT. This may include a periodic refresh publication.
          A GNS RRBLOCK has the following format:<a href="#section-4.2-1" 
class="pilcrow">¶</a></p>
 <div id="figure_record_block">
-<figure id="figure-9">
+<figure id="figure-10">
           <div class="artwork art-text alignLeft" id="section-4.2-2.1">
 <pre>
            0     8     16    24    32    40    48    56
@@ -1695,7 +1727,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-9" class="selfRef">Figure 
9</a></figcaption></figure>
+<figcaption><a href="#figure-10" class="selfRef">Figure 
10</a></figcaption></figure>
 </div>
 <p id="section-4.2-3">where:<a href="#section-4.2-3" class="pilcrow">¶</a></p>
 <dl class="dlParallel" id="section-4.2-4">
@@ -1758,7 +1790,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
          set RDATA into the BDATA field of a GNS RRBLOCK.
          The wire format of the RDATA looks as follows:<a 
href="#section-4.3-1" class="pilcrow">¶</a></p>
 <div id="figure_rdata">
-<figure id="figure-10">
+<figure id="figure-11">
           <div class="artwork art-text alignLeft" id="section-4.3-2.1">
 <pre>
            0     8     16    24    32    40    48    56
@@ -1786,7 +1818,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            /                                               /
            </pre>
 </div>
-<figcaption><a href="#figure-10" class="selfRef">Figure 
10</a></figcaption></figure>
+<figcaption><a href="#figure-11" class="selfRef">Figure 
11</a></figcaption></figure>
 </div>
 <p id="section-4.3-3">where:<a href="#section-4.3-3" class="pilcrow">¶</a></p>
 <dl class="dlParallel" id="section-4.3-4">
@@ -1836,7 +1868,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
          <span>[<a href="#RFC3826" class="xref">RFC3826</a>]</span> key
          and a 256-bit TWOFISH <span>[<a href="#TWOFISH" 
class="xref">TWOFISH</a>]</span> key:<a href="#section-4.3-7" 
class="pilcrow">¶</a></p>
 <div id="figure_hkdf_keys">
-<figure id="figure-11">
+<figure id="figure-12">
           <div class="artwork art-text alignLeft" id="section-4.3-8.1">
 <pre>
            0     8     16    24    32    40    48    56
@@ -1853,13 +1885,13 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-11" class="selfRef">Figure 
11</a></figcaption></figure>
+<figcaption><a href="#figure-12" class="selfRef">Figure 
12</a></figcaption></figure>
 </div>
 <p id="section-4.3-9">
          Similarly, we divide "IV" into a 128-bit initialization vector
          and a 128-bit initialization vector:<a href="#section-4.3-9" 
class="pilcrow">¶</a></p>
 <div id="figure_hkdf_ivs">
-<figure id="figure-12">
+<figure id="figure-13">
           <div class="artwork art-text alignLeft" id="section-4.3-10.1">
 <pre>
            0     8     16    24    32    40    48    56
@@ -1872,7 +1904,7 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
            +-----+-----+-----+-----+-----+-----+-----+-----+
            </pre>
 </div>
-<figcaption><a href="#figure-12" class="selfRef">Figure 
12</a></figcaption></figure>
+<figcaption><a href="#figure-13" class="selfRef">Figure 
13</a></figcaption></figure>
 </div>
 <p id="section-4.3-11">
          The keys and IVs are used for a CFB128-AES-256 and
@@ -2126,7 +2158,13 @@ async function addMetadata(){try{const 
e=document.styleSheets[0].cssRules;for(le
 <a href="#section-7" class="section-number selfRef">7. </a><a 
href="#name-zone-revocation" class="section-name selfRef">Zone Revocation</a>
       </h2>
 <p id="section-7-1">
-         TODO<a href="#section-7-1" class="pilcrow">¶</a></p>
+         In order to revoke a zone, a signed revocation object must be 
published.
+         This object must be signed using the private zone key.
+         The revocation object is flooded in the overlay network. To prevent
+         flooding attacks, the revocation message must contain a proof-of-work.
+         The revocation message may be calculated ahead of time.<a 
href="#section-7-1" class="pilcrow">¶</a></p>
+<p id="section-7-2">
+         A revocation message is defined as follows:<a href="#section-7-2" 
class="pilcrow">¶</a></p>
 </section>
 </div>
 <div id="security">
diff --git a/draft-schanzen-gns.txt b/draft-schanzen-gns.txt
index e6e10db..495e6cf 100644
--- a/draft-schanzen-gns.txt
+++ b/draft-schanzen-gns.txt
@@ -63,32 +63,33 @@ Table of Contents
    1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
    2.  Zones . . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
    3.  Resource Records  . . . . . . . . . . . . . . . . . . . . . .   4
-     3.1.  PKEY  . . . . . . . . . . . . . . . . . . . . . . . . . .   5
-     3.2.  GNS2DNS . . . . . . . . . . . . . . . . . . . . . . . . .   6
-     3.3.  LEHO  . . . . . . . . . . . . . . . . . . . . . . . . . .   6
-     3.4.  NICK  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
-     3.5.  BOX . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
-     3.6.  VPN . . . . . . . . . . . . . . . . . . . . . . . . . . .   8
-   4.  Publishing Records  . . . . . . . . . . . . . . . . . . . . .   8
-     4.1.  Key Derivations . . . . . . . . . . . . . . . . . . . . .   8
-     4.2.  Resource Records Block  . . . . . . . . . . . . . . . . .   9
-     4.3.  Record Data Encryption and Decryption . . . . . . . . . .  11
-   5.  Internationalization and Character Encoding . . . . . . . . .  13
-   6.  Name Resolution . . . . . . . . . . . . . . . . . . . . . . .  13
-     6.1.  Entry Zone  . . . . . . . . . . . . . . . . . . . . . . .  13
-     6.2.  Record Retrieval  . . . . . . . . . . . . . . . . . . . .  14
-     6.3.  Record Processing . . . . . . . . . . . . . . . . . . . .  15
-       6.3.1.  PKEY  . . . . . . . . . . . . . . . . . . . . . . . .  15
-       6.3.2.  GNS2DNS . . . . . . . . . . . . . . . . . . . . . . .  15
-       6.3.3.  CNAME . . . . . . . . . . . . . . . . . . . . . . . .  16
-       6.3.4.  BOX . . . . . . . . . . . . . . . . . . . . . . . . .  16
-       6.3.5.  VPN . . . . . . . . . . . . . . . . . . . . . . . . .  16
-   7.  Zone Revocation . . . . . . . . . . . . . . . . . . . . . . .  16
-   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
-   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  17
-   10. Test Vectors  . . . . . . . . . . . . . . . . . . . . . . . .  17
-   11. Normative References  . . . . . . . . . . . . . . . . . . . .  19
-   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  20
+     3.1.  Record Types  . . . . . . . . . . . . . . . . . . . . . .   5
+     3.2.  PKEY  . . . . . . . . . . . . . . . . . . . . . . . . . .   6
+     3.3.  GNS2DNS . . . . . . . . . . . . . . . . . . . . . . . . .   6
+     3.4.  LEHO  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
+     3.5.  NICK  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
+     3.6.  BOX . . . . . . . . . . . . . . . . . . . . . . . . . . .   8
+     3.7.  VPN . . . . . . . . . . . . . . . . . . . . . . . . . . .   8
+   4.  Publishing Records  . . . . . . . . . . . . . . . . . . . . .   9
+     4.1.  Key Derivations . . . . . . . . . . . . . . . . . . . . .   9
+     4.2.  Resource Records Block  . . . . . . . . . . . . . . . . .  10
+     4.3.  Record Data Encryption and Decryption . . . . . . . . . .  12
+   5.  Internationalization and Character Encoding . . . . . . . . .  14
+   6.  Name Resolution . . . . . . . . . . . . . . . . . . . . . . .  14
+     6.1.  Entry Zone  . . . . . . . . . . . . . . . . . . . . . . .  14
+     6.2.  Record Retrieval  . . . . . . . . . . . . . . . . . . . .  15
+     6.3.  Record Processing . . . . . . . . . . . . . . . . . . . .  16
+       6.3.1.  PKEY  . . . . . . . . . . . . . . . . . . . . . . . .  16
+       6.3.2.  GNS2DNS . . . . . . . . . . . . . . . . . . . . . . .  16
+       6.3.3.  CNAME . . . . . . . . . . . . . . . . . . . . . . . .  17
+       6.3.4.  BOX . . . . . . . . . . . . . . . . . . . . . . . . .  17
+       6.3.5.  VPN . . . . . . . . . . . . . . . . . . . . . . . . .  17
+   7.  Zone Revocation . . . . . . . . . . . . . . . . . . . . . . .  18
+   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  18
+   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  18
+   10. Test Vectors  . . . . . . . . . . . . . . . . . . . . . . . .  18
+   11. Normative References  . . . . . . . . . . . . . . . . . . . .  20
+   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  21
 
 1.  Introduction
 
@@ -105,7 +106,6 @@ Table of Contents
    vulnerable, especially to attackers that have the technical
    capabilities of an entire nation state at their disposal.  This
    specification describes a censorship-resistant, privacy-preserving
-   and decentralized name system: The GNU Name System (GNS).  It is
 
 
 
@@ -114,6 +114,7 @@ Schanzenbach, et al.     Expires 24 January 2020            
    [Page 2]
 Internet-Draft             The GNU Name System                 July 2019
 
 
+   and decentralized name system: The GNU Name System (GNS).  It is
    designed to provide a secure alternative to DNS, especially when
    censorship or manipulation is encountered.  GNS can bind names to any
    kind of cryptographically secured token, enabling it to double in
@@ -164,7 +165,6 @@ Internet-Draft             The GNU Name System              
   July 2019
 
 
 
-
 Schanzenbach, et al.     Expires 24 January 2020                [Page 3]
 
 Internet-Draft             The GNU Name System                 July 2019
@@ -259,7 +259,43 @@ Internet-Draft             The GNU Name System             
    July 2019
       Private records should still be considered just like regular
       records when resolving labels in local zones.
 
-3.1.  PKEY
+3.1.  Record Types
+
+   GNS-specific record type numbers start at 2^16, i.e. after the record
+   type numbers for DNS.  The following is a list of defined and
+   reserved record types in GNS:
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020                [Page 5]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
+              Number                | Type            | Comment
+              ------------------------------------------------------------
+              65536                 | PKEY            | GNS delegation
+              65537                 | NICK            | GNS zone nickname
+              65538                 | LEHO            | Legacy hostname
+              65539                 | VPN             | Virtual private network
+              65540                 | GNS2DNS         | DNS delegation
+              65541                 | BOX             | Boxed record (for 
TLSA/SRV)
+              65542 up to 2^24 - 1  | -               | Reserved
+              2^24 up to 2^32 - 1   | -               | Unassigned / For 
private use
+
+                                  Figure 3
+
+3.2.  PKEY
 
    In GNS, a delegation of a label to a zone is represented through a
    PKEY record.  A PKEY resource record contains the public key of the
@@ -275,16 +311,9 @@ Internet-Draft             The GNU Name System             
    July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
+                                  Figure 4
 
-
-Schanzenbach, et al.     Expires 24 January 2020                [Page 5]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
-                                  Figure 3
-
-3.2.  GNS2DNS
+3.3.  GNS2DNS
 
    It is possible to delegate a label back into DNS through a GNS2DNS
    record.  The resource record contains a DNS name for the resolver to
@@ -292,6 +321,23 @@ Internet-Draft             The GNU Name System             
    July 2019
    format defined in [RFC1034] for DNS names.  A GNS2DNS DATA entry has
    the following format:
 
+
+
+
+
+
+
+
+
+
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020                [Page 6]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
               0     8     16    24    32    40    48    56
               +-----+-----+-----+-----+-----+-----+-----+-----+
               |                    DNS NAME                   |
@@ -305,9 +351,9 @@ Internet-Draft             The GNU Name System              
   July 2019
               |                                               |
               +-----------------------------------------------+
 
-                                  Figure 4
+                                  Figure 5
 
-3.3.  LEHO
+3.4.  LEHO
 
    Legacy hostname records can be used by applications that are expected
    to supply a DNS name on the application layer.  The most common use
@@ -326,29 +372,28 @@ Internet-Draft             The GNU Name System            
     July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                  Figure 5
+                                  Figure 6
 
    NOTE: If an application uses a LEHO value in an HTTP request header
-
-
-
-
-Schanzenbach, et al.     Expires 24 January 2020                [Page 6]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
    (e.g.  "Host:" header) it must be converted to a punycode
    representation [RFC5891].
 
-3.4.  NICK
+3.5.  NICK
 
    Nickname records can be used by zone administrators to publish an
    indication on what label this zone prefers to be referred to.  This
    is a suggestion to other zones what label to use when creating a PKEY
-   Section 3.1 record containing this zone's public zone key.  A NICK
+   Section 3.2 record containing this zone's public zone key.  A NICK
    resource record contains an UTF-8 string (not 0-terminated)
    representing the preferred label.  This string may NOT inlcude a ".".
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020                [Page 7]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
    This record SHOULD only be stored under the empty label "@".  A NICK
    DATA entry has the following format:
 
@@ -360,9 +405,9 @@ Internet-Draft             The GNU Name System              
   July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                  Figure 6
+                                  Figure 7
 
-3.5.  BOX
+3.6.  BOX
 
    A BOX DATA entry has the following format:
 
@@ -376,7 +421,7 @@ Internet-Draft             The GNU Name System              
   July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                  Figure 7
+                                  Figure 8
 
    PROTO  the 16-bit protocol number, e.g. 6 for tcp.  In network byte
       order.
@@ -387,19 +432,23 @@ Internet-Draft             The GNU Name System            
     July 2019
    TYPE  is the 32-bit record type of the boxed record.  In network byte
       order.
 
+   RECORD DATA  is a variable length field containing the "DATA" format
+      of TYPE as defined for the respective TYPE in DNS.
 
+3.7.  VPN
 
-Schanzenbach, et al.     Expires 24 January 2020                [Page 7]
-
-Internet-Draft             The GNU Name System                 July 2019
+   A VPN DATA entry has the following format:
 
 
-   RECORD DATA  is a variable length field containing the "DATA" format
-      of TYPE as defined for the respective TYPE in DNS.
 
-3.6.  VPN
 
-   A VPN DATA entry has the following format:
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020                [Page 8]
+
+Internet-Draft             The GNU Name System                 July 2019
+
 
               0     8     16    24    32    40    48    56
               +-----+-----+-----+-----+-----+-----+-----+-----+
@@ -414,7 +463,7 @@ Internet-Draft             The GNU Name System              
   July 2019
               |                                               |
               +-----------------------------------------------+
 
-                                  Figure 8
+                                  Figure 9
 
 4.  Publishing Records
 
@@ -441,15 +490,6 @@ Internet-Draft             The GNU Name System             
    July 2019
    SHA256 for the expansion phase.
 
    PRK_h  is key material retrieved using an HKDF using the string "key-
-
-
-
-
-Schanzenbach, et al.     Expires 24 January 2020                [Page 8]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
       derivation" as salt and the public zone key "zk" as initial keying
       material.
 
@@ -458,6 +498,14 @@ Internet-Draft             The GNU Name System             
    July 2019
 
    d  is the 256-bit private zone key as defined in Section 2.
 
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020                [Page 9]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
    label  is a UTF-8 string under which the resource records are
       published.
 
@@ -501,7 +549,15 @@ Internet-Draft             The GNU Name System             
    July 2019
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020                [Page 9]
+
+
+
+
+
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 10]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -531,7 +587,7 @@ Internet-Draft             The GNU Name System              
   July 2019
               /                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                  Figure 9
+                                 Figure 10
 
    where:
 
@@ -557,7 +613,7 @@ Internet-Draft             The GNU Name System              
   July 2019
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 10]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 11]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -606,14 +662,14 @@ Internet-Draft             The GNU Name System            
     July 2019
               /                     PADDING                   /
               /                                               /
 
-                                 Figure 10
+                                 Figure 11
 
    where:
 
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 11]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 12]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -663,13 +719,13 @@ Internet-Draft             The GNU Name System            
     July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                 Figure 11
+                                 Figure 12
 
 
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 12]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 13]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -686,7 +742,7 @@ Internet-Draft             The GNU Name System              
   July 2019
               |                                               |
               +-----+-----+-----+-----+-----+-----+-----+-----+
 
-                                 Figure 12
+                                 Figure 13
 
    The keys and IVs are used for a CFB128-AES-256 and CFB128-TWOFISH-256
    chained symmetric cipher.  Both ciphers are used in Cipher FeedBack
@@ -725,7 +781,7 @@ Internet-Draft             The GNU Name System              
   July 2019
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 13]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 14]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -781,7 +837,7 @@ Internet-Draft             The GNU Name System              
   July 2019
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 14]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 15]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -837,7 +893,7 @@ Internet-Draft             The GNU Name System              
   July 2019
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 15]
+Schanzenbach, et al.     Expires 24 January 2020               [Page 16]
 
 Internet-Draft             The GNU Name System                 July 2019
 
@@ -886,18 +942,28 @@ Internet-Draft             The GNU Name System            
     July 2019
    result is returned if the resolver implementation does not support
    any of the tunnnels provided in the VPN records.
 
-7.  Zone Revocation
 
-   TODO
 
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 16]
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 17]
 
 Internet-Draft             The GNU Name System                 July 2019
 
 
+7.  Zone Revocation
+
+   In order to revoke a zone, a signed revocation object must be
+   published.  This object must be signed using the private zone key.
+   The revocation object is flooded in the overlay network.  To prevent
+   flooding attacks, the revocation message must contain a proof-of-
+   work.  The revocation message may be calculated ahead of time.
+
+   A revocation message is defined as follows:
+
 8.  Security Considerations
 
    TODO
@@ -936,6 +1002,14 @@ Internet-Draft             The GNU Name System            
     July 2019
             6d656b27392b0fee
 
             d_h :=
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 18]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
             01fb61f482c17633
             77611c4c2509e0f3
             81b0e7e4405c10bd
@@ -946,14 +1020,6 @@ Internet-Draft             The GNU Name System            
     July 2019
             f4e29a3310767e3b
             8b38bc1b276ce2ba
             9bf1b49df1e120a3
-
-
-
-Schanzenbach, et al.     Expires 24 January 2020               [Page 17]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
             20ecc9dffb68416f
             11729ad878ad3bdf
             d0b4db2626b620d7
@@ -992,6 +1058,14 @@ Internet-Draft             The GNU Name System            
     July 2019
 
 
             RRBLOCK :=
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 19]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
             055cb070e05fe6de SIGNATURE
             ad694a50e5b4dedd
             b9fdcbdbae004f65
@@ -1002,14 +1076,6 @@ Internet-Draft             The GNU Name System           
      July 2019
             10df4f39f5ba9f46____________
             8cb514a56c0eaae0 zk_h
             56745158a63ee4dd
-
-
-
-Schanzenbach, et al.     Expires 24 January 2020               [Page 18]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
             76853cb9545e326e
             76d7fa920f818291____________
             000000540000000f SIZE (=84) | PURPOSE (=15)
@@ -1049,6 +1115,13 @@ Internet-Draft             The GNU Name System           
      July 2019
               DOI 10.17487/RFC5869, May 2010,
               <https://www.rfc-editor.org/info/rfc5869>.
 
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 20]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
    [RFC5890]  Klensin, J., "Internationalized Domain Names for
               Applications (IDNA): Definitions and Document Framework",
               RFC 5890, DOI 10.17487/RFC5890, August 2010,
@@ -1059,13 +1132,6 @@ Internet-Draft             The GNU Name System           
      July 2019
               DOI 10.17487/RFC5891, August 2010,
               <https://www.rfc-editor.org/info/rfc5891>.
 
-
-
-Schanzenbach, et al.     Expires 24 January 2020               [Page 19]
-
-Internet-Draft             The GNU Name System                 July 2019
-
-
    [RFC6895]  Eastlake 3rd, D., "Domain Name System (DNS) IANA
               Considerations", BCP 42, RFC 6895, DOI 10.17487/RFC6895,
               April 2013, <https://www.rfc-editor.org/info/rfc6895>.
@@ -1104,6 +1170,14 @@ Authors' Addresses
    CH-2501 Biel/Bienne
    Switzerland
 
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 21]
+
+Internet-Draft             The GNU Name System                 July 2019
+
+
    Email: address@hidden
 
 
@@ -1117,4 +1191,42 @@ Authors' Addresses
 
 
 
-Schanzenbach, et al.     Expires 24 January 2020               [Page 20]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Schanzenbach, et al.     Expires 24 January 2020               [Page 22]
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index d695e1a..5959ad8 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -255,6 +255,29 @@
          regular records when resolving labels in local zones.
        </dd>
      </dl>
+     <section anchor="gnsrecords_numbers" numbered="true" toc="default">
+       <name>Record Types</name>
+       <t>
+         GNS-specific record type numbers start at 2^16, i.e. after the record
+         type numbers for DNS. The following is a list of defined and reserved
+         record types in GNS:
+       </t>
+       <figure anchor="figure_rrtypenums">
+         <artwork name="" type="" align="left" alt=""><![CDATA[
+           Number                | Type            | Comment
+           ------------------------------------------------------------
+           65536                 | PKEY            | GNS delegation
+           65537                 | NICK            | GNS zone nickname
+           65538                 | LEHO            | Legacy hostname
+           65539                 | VPN             | Virtual private network
+           65540                 | GNS2DNS         | DNS delegation
+           65541                 | BOX             | Boxed record (for 
TLSA/SRV)
+           65542 up to 2^24 - 1  | -               | Reserved
+           2^24 up to 2^32 - 1   | -               | Unassigned / For private 
use
+           ]]></artwork>
+         <!--        <postamble>which is a very simple example.</postamble>-->
+       </figure>
+     </section>
      <section anchor="gnsrecords_pkey" numbered="true" toc="default">
        <name>PKEY</name>
        <t>In GNS, a delegation of a label to a zone is represented through a 
PKEY

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]