lsd0001

LSD0001: GNU Name System
Log | Files | Refs | README

commit 91d8559eb5b5202fa7ba0e755511ac66c0710261
parent 535890037ca351e0e63536b77e552655576c7d43
Author: Martin Schanzenbach <mschanzenbach@posteo.de>
Date:   Sun,  6 Sep 2020 10:14:25 +0200

zoneid

Diffstat:
Mdraft-schanzen-gns.xml | 105+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 62 insertions(+), 43 deletions(-)

diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml @@ -157,15 +157,15 @@ <dd> is the public zone key. </dd> - <dt>zid</dt> + <dt>ztype</dt> <dd> - is the unique identitfier of the zone type as registered in - GANA. + is the unique type of the zone type as registered in + GANA. A 32-bit number. </dd> - <dt>zname</dt> + <dt>zid</dt> <dd> - is a string representation of the zone type as registered in - GANA. + is the unique identifier of a zone. It consists of the "ztype" + and the public zone key "zk". </dd> <dt>HDKD-Private(d) -> d'</dt> <dd> @@ -177,16 +177,45 @@ is a HDKD function which blinds a public zone key "zk" of the respective type. </dd> - <dt>GNS-Label(zk) -> zkl</dt> + <dt>TLD(zk) -> zkl</dt> <dd> is a function which defines a mapping from zone public key to a string "zkl" of the respective type. - It is string which consists of a prefix - that uniquely defines the zone type followed by a zone - type specific string encoding of the public key, e.g.: - "&lt;zname&gt;-&lt;encode(zk)&gt;" + It is string which encodes the "ztype" as well as the zone + key "zk" into one or more labels. </dd> </dl> + <t> + The "zid" wire format is defined as follows: + </t> + <figure anchor="figure_zid"> + <artwork name="" type="" align="left" alt=""><![CDATA[ +0 8 16 24 32 40 48 56 ++-----+-----+-----+-----+-----+-----+-----+-----+ +| ZONE TYPE | PUBLIC ZONE KEY / ++-----+-----+-----+-----+ / +/ / +/ / + ]]></artwork> + <!-- <postamble>which is a very simple example.</postamble>--> + </figure> + <t> + The string representation of the "zid" is defined as: + </t> + <artwork name="" type="" align="left" alt=""><![CDATA[ +zkl := <Base32(zid)> + ]]></artwork> + <t> + If the resulting "zkl" should be longer than 63 characters, the + String must be divided into smaller labels separated by the label + separator ".". Where the most significant bytes of the "zid" be contained + in the rightmost label of the resulting string and the least significant + bytes in the leftmost label of the resulting string. For example, + assuming a "zkl" of 130 characters: + </t> + <artwork name="" type="" align="left" alt=""><![CDATA[ +zkl[126:129].zkl[63:125].zkl[0:62] + ]]></artwork> <!-- FIXME: We probably want to define more things here such as how zone types are registered and identified ? --> <section anchor="zone_types" numbered="true" toc="default"> @@ -223,14 +252,10 @@ generator of the elliptic curve. The public key is used to uniquely identify a GNS zone and is referred to as the "zone key". </dd> - <dt>zid</dt> + <dt>ztype</dt> <dd> is registered with the value "0" in GANA. </dd> - <dt>zname</dt> - <dd> - is registered with the string "pkey" in GANA. - </dd> <dt>p</dt> <dd> is the prime of edwards25519 as defined in <xref target="RFC7748" />, i.e. @@ -299,13 +324,12 @@ zk' := h mod L * zk while the multiplication of "d" with "h" is a scalar multiplication. Signatures for PKEY zones are 512-bit ECDSA deterministic signatures compliant with <xref target="RFC6979" />. - Finally, the label representation of a PKEY public zone key is - the Base32-encoding of "zk" prefixed with "pkey-": </t> - <artwork name="" type="" align="left" alt=""><![CDATA[ -zkl := "pkey-<Base32(zk)>" - ]]></artwork> - + <t> + The "zid" of a PKEY is 32 + 4 bytes in length. This means that + a Base32-encoded "zkl" will always fit into a single label and does + not need any further conversion. + </t> </section> <section anchor="zone_type_edkey" numbered="true" toc="default"> <name>EDKEY Zone</name> @@ -733,14 +757,13 @@ q := SHA512 (HDKD-Public(zk, label)) <artwork name="" type="" align="left" alt=""><![CDATA[ 0 8 16 24 32 40 48 56 +-----+-----+-----+-----+-----+-----+-----+-----+ -| ZONE TYPE | -+-----+-----+-----+-----+-----+-----+-----+-----+ | SIGNATURE | / / / / | | +-----+-----+-----+-----+-----+-----+-----+-----+ -| PUBLIC KEY | +| ZONE TYPE | PUBLIC ZONE KEY | ++-----+-----+-----+-----+ | / / / / | | @@ -1270,10 +1293,10 @@ NICK: john (Supplemental) +-----------------------------------------------+ | TIMESTAMP | +-----------------------------------------------+ -| PUBLIC KEY | -| | -| | -| | +| ZONE TYPE | PUBLIC ZONE KEY | ++-----+-----+-----+-----+ | +/ / +/ / +-----+-----+-----+-----+-----+-----+-----+-----+ ]]></artwork> </figure> @@ -1352,12 +1375,10 @@ NICK: john (Supplemental) | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ -| ZONE TYPE | -+-----+-----+-----+-----+-----+-----+-----+-----+ -| PUBLIC KEY | -| | -| | -| | +| ZONE TYPE | PUBLIC ZONE KEY | ++-----+-----+-----+-----+ | +/ / +/ / +-----+-----+-----+-----+-----+-----+-----+-----+ ]]></artwork> </figure> @@ -1397,9 +1418,9 @@ NICK: john (Supplemental) </dd> <dt>ZONE TYPE</dt> <dd> - The zone type ID (zid) corresponding to the zone public key. + The 32-bit zone type corresponding to the zone public key. </dd> - <dt>PUBLIC KEY</dt> + <dt>ZONE PUBLIC KEY</dt> <dd> is the public key "zk" of the zone which is being revoked and the key to be used to verify SIGNATURE. @@ -1416,12 +1437,10 @@ NICK: john (Supplemental) +-----+-----+-----+-----+-----+-----+-----+-----+ | SIZE (0x30) | PURPOSE (0x03) | +-----+-----+-----+-----+-----+-----+-----+-----+ -| ZONE TYPE | -+-----+-----+-----+-----+-----+-----+-----+-----+ -| PUBLIC KEY | +| ZONE TYPE | ZONE PUBLIC KEY | ++-----+-----+-----+-----+ | / / / / -| | +-----+-----+-----+-----+-----+-----+-----+-----+ | TIMESTAMP | +-----+-----+-----+-----+-----+-----+-----+-----+ @@ -1441,9 +1460,9 @@ NICK: john (Supplemental) </dd> <dt>ZONE TYPE</dt> <dd> - The zone type ID (zid) corresponding to the zone public key. + The 32-bit zone type corresponding to the zone public key. </dd> - <dt>PUBLIC KEY / TIMESTAMP</dt> + <dt>ZONE PUBLIC KEY / TIMESTAMP</dt> <dd>Both values as defined in the revocation data object above.</dd> </dl> <t>