aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-02-01 21:30:35 +0100
committerChristian Grothoff <christian@grothoff.org>2022-02-01 21:30:39 +0100
commitcf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274 (patch)
treea8db9f4a5678d261a9eb90e68f37735b3c4e001d
parent3be156e53fc298e5cd05fa8e4ba1bbcc658f8a26 (diff)
downloadlsd0001-cf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274.tar.gz
lsd0001-cf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274.zip
adding FIXMEs to be discussed, might be reasonable optimizations...
-rw-r--r--draft-schanzen-gns.xml24
1 files changed, 21 insertions, 3 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index 5682f02..2f64c20 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -1545,7 +1545,7 @@ NONCE := HKDF-Expand (PRK_n, label, 128 / 8)
1545 <t> 1545 <t>
1546 Any API which allows storing a value under a 512-bit key and retrieving 1546 Any API which allows storing a value under a 512-bit key and retrieving
1547 one or more values from the key can be used by an implementation for record storage. 1547 one or more values from the key can be used by an implementation for record storage.
1548 To be useful, the API MUST permit storing at least 164 byte values 1548 To be useful, the API MUST permit storing at least 176 byte values
1549 to be able to support the defined zone delegation record encodings, 1549 to be able to support the defined zone delegation record encodings,
1550 and SHOULD allow at least 1024 byte values. 1550 and SHOULD allow at least 1024 byte values.
1551 We assume that an implementation realizes two procedures on top of a 1551 We assume that an implementation realizes two procedures on top of a
@@ -1645,20 +1645,23 @@ q := SHA-512 (ZKDF-Public(zk, label))
1645 ]]></artwork> 1645 ]]></artwork>
1646 </figure> 1646 </figure>
1647 <t>The RRBLOCK Wire Format.</t> 1647 <t>The RRBLOCK Wire Format.</t>
1648 <!-- FIXME: Should we remove size and purpose from the wire format? They are entirely redundant, right?
1649 I (CG) also think we should then move the expiration first (before ztype), so that it is aligned. -->
1648 <dl> 1650 <dl>
1649 <dt>ZONE TYPE</dt> 1651 <dt>ZONE TYPE</dt>
1650 <dd> 1652 <dd>
1651 is the 32-bit zone type. 1653 is the 32-bit ztype.
1652 </dd> 1654 </dd>
1653 <dt>ZONE KEY</dt> 1655 <dt>ZONE KEY</dt>
1654 <dd> 1656 <dd>
1655 is the blinded zone key "ZKDF-Public(zk, label)" 1657 is the blinded zone key "ZKDF-Public(zk, label)"
1656 to be used to verify SIGNATURE. 1658 to be used to verify SIGNATURE.
1659 The length and format of the public key depends on the ztype.
1657 </dd> 1660 </dd>
1658 <dt>SIGNATURE</dt> 1661 <dt>SIGNATURE</dt>
1659 <dd> 1662 <dd>
1660 The signature is computed over the data following 1663 The signature is computed over the data following
1661 this field. 1664 this field. The length and format of the signature depends on the ztype.
1662 The signature is created using the Sign() function of 1665 The signature is created using the Sign() function of
1663 the cryptosystem of the zone and the derived private key 1666 the cryptosystem of the zone and the derived private key
1664 "ZKDF-Private(d, label)" (see <xref target="zones" />). 1667 "ZKDF-Private(d, label)" (see <xref target="zones" />).
@@ -1673,6 +1676,12 @@ q := SHA-512 (ZKDF-Public(zk, label))
1673 size significantly below 4 GB. However, a minimum block size of 1676 size significantly below 4 GB. However, a minimum block size of
1674 62 kilobytes MUST be supported. 1677 62 kilobytes MUST be supported.
1675 <!-- See GNUNET_CONSTANTS_MAX_BLOCK_SIZE --> 1678 <!-- See GNUNET_CONSTANTS_MAX_BLOCK_SIZE -->
1679 <!-- FIXME: I (CG) think for storage we should go for the minimum
1680 as an embedded system may not be able to handle 62k and may
1681 still find utility in GNS with smaller records; for the
1682 client-side resolver, we MAY choose to require a higher limit;
1683 but it is unclear that this belongs here with this field!
1684 (and I think we should kill the field! see above!) -->
1676 </dd> 1685 </dd>
1677 <dt>PURPOSE</dt> 1686 <dt>PURPOSE</dt>
1678 <dd> 1687 <dd>
@@ -1706,6 +1715,15 @@ q := SHA-512 (ZKDF-Public(zk, label))
1706 The wire format of the RDATA is illustrated in 1715 The wire format of the RDATA is illustrated in
1707 <xref target="figure_rdata"/>. 1716 <xref target="figure_rdata"/>.
1708 </t> 1717 </t>
1718 <!-- FIXME: I (CG) think we can do better here:
1719 use the canonical TYPE-LENGTH-(FLAGS-EXPR)-VALUE
1720 (as in TLV) instead of LENGTH-TYPE-(FLAGS-EXPR)-VALUE;
1721 we should consider using 16 bit for DATA SIZE and
1722 FLAGS (improves alignment, hardly a good use for 32-bit
1723 flags or values);
1724 We MAY also consider removing RRCOUNT, just bad
1725 for alignment, and --- strictly speaking --- redundant,
1726 just causes another error check for implementations. -->
1709 <figure anchor="figure_rdata"> 1727 <figure anchor="figure_rdata">
1710 <artwork name="" type="" align="left" alt=""><![CDATA[ 1728 <artwork name="" type="" align="left" alt=""><![CDATA[
17110 8 16 24 32 40 48 56 17290 8 16 24 32 40 48 56