diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-02-01 21:30:35 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-02-01 21:30:39 +0100 |
commit | cf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274 (patch) | |
tree | a8db9f4a5678d261a9eb90e68f37735b3c4e001d | |
parent | 3be156e53fc298e5cd05fa8e4ba1bbcc658f8a26 (diff) | |
download | lsd0001-cf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274.tar.gz lsd0001-cf3e1eb44b6d8feb4e4e7db7f9a2e8ede337c274.zip |
adding FIXMEs to be discussed, might be reasonable optimizations...
-rw-r--r-- | draft-schanzen-gns.xml | 24 |
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[ |
1711 | 0 8 16 24 32 40 48 56 | 1729 | 0 8 16 24 32 40 48 56 |