From 681f794ae7da23c0ca7ad21c2754cd9225077f07 Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Sun, 31 May 2015 01:17:00 +0100 Subject: [PATCH] IFA-0001: Factored out non-DNS types to IFA-0002 --- README.md | 4 +- ifa-0001.md | 63 ------------------------------ ifa-0002.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 64 deletions(-) create mode 100644 ifa-0002.md diff --git a/README.md b/README.md index bc0a835..34f2418 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,13 @@ IFA Proposals |--------------|-------------------------------|----------|----------| | [0000][0000] | Proposal Guidelines & Process | Process | Draft | | [0001][0001] | Domain Names | Standard | Draft | +| [0002][0002] | Domain Names - Non-DNS Types | Standard | Draft | *This list does not contain proposals that have been deferred, rejected, or withdrawn.* [0000]:https://github.com/ifa-wg/proposals/blob/master/ifa-0000.md [0001]:https://github.com/ifa-wg/proposals/blob/master/ifa-0001.md +[0002]:https://github.com/ifa-wg/proposals/blob/master/ifa-0002.md How-To ======= @@ -29,4 +31,4 @@ Before submitting a PR for a new proposal or to update an existing proposal, ins You must include DocToc markup in the document before running DocToc: - \ No newline at end of file + diff --git a/ifa-0001.md b/ifa-0001.md index 7c7dafc..f94d7c7 100644 --- a/ifa-0001.md +++ b/ifa-0001.md @@ -24,7 +24,6 @@ This document was authored by Hugo Landau, with input from Zach Lym, Jeremy Rand - [The Domain Name Object Schema](#the-domain-name-object-schema) - [Abstract Constructs](#abstract-constructs) - [DNS-Compatible Records](#dns-compatible-records) - - [Non-DNS Item Types](#non-dns-item-types) - [Administrative Constructs](#administrative-constructs) - [Experimental DNS-Compatible Item Types](#experimental-dns-compatible-item-types) - [Interpretation of DNS Names](#interpretation-of-dns-names) @@ -472,68 +471,6 @@ Except where otherwise specified, any item with a value of `null` SHALL be treat "loc": "10 Downing Street" -#### Non-DNS Item Types - - - "tor": Used to specify zero or more Tor hidden service addresses. - - The value for this item SHALL be one of the following forms: - - - An empty array. This denotes that hidden service connectivity is not available via the current object. This is the default semantic if the "tor" item type is not present. - - - An array of one or more strings. Each such string SHALL contain a Tor onion address, including the ".onion" suffix. (Note that the value MUST NOT be an URL.) The string MUST NOT have a trailing dot. - - This form denotes that the current object is mappable to any of the Tor hidden services with the given addresses. Client implementations should select an address in a similar fashion to the selection of IP addresses; sort the addresses randomly and try them in order until all addresses are exhausted. - - - A string. Where this form is encountered, it SHALL be substituted with an array containing that string and be processed as though that was what was encountered, as per the above form. - - Examples: - - "tor": [] // No hidden service available - "tor": "qaneqo4kcreewkvq.onion" // One hidden service available - "tor": ["xo920axk34lannrw.onion"] // One hidden service available - "tor": ["ganeqo4kcreewkvq.onion", "xo920axk34lannrw.onion"] // Two hidden services available - - The following example forms are NOT valid: - - "tor": "ganeqo4kcreewkvq" - "tor": "ganeqo4kcreewkvq.onion." - "tor": "http://ganeqo4kcreewkvq.onion" - "tor": {} - - - "i2p": Used to specify zero or more I2P eepsite addresses. - - The value for this item SHALL be one of the following forms: - - - An empty array. This denotes that I2P eepsite connectivity is not available via the current object. This is the default semantic if the "i2p" item type is not present. - - - An array of one or more strings. Each such string SHALL contain a base32-form I2P eepsite address, including the ".b32.i2p" suffix. (Note that the value MUST NOT be an URL.) The string MUST NOT have a trailing dot. - - This form denotes that the current object is mappable to any of the I2P eepsites with the given addresses. Client implementations should select an address in a similar fashion to the selection of IP addresses; sort the addresses randomly and try them in order until all addresses are exhausted. - - The address MUST be of the base32 form and MUST NOT be a friendly name like "example.i2p". - - - A string. Where this form is encountered, it SHALL be substituted with an array containing that string and be processed as thoug that was what was encountered, as per the above form. - - Examples: - - "i2p": [] // No eepsite available - "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p" // One eepsite available - "i2p": ["vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p"] // One eepsite available - "i2p": ["vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p", - "idphjncvywzvcjur2zeep2a44s5dxduzv7iytgihg7vdx3x5hnkq.b32.i2p"] // Two eepsites available - - The following example forms are NOT valid: - - "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq" - "i2p": "example.i2p" - "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p." - "i2p": "http://vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p" - "i2p": {} - - - "freenet": Provides a Freenet freesite key. - - The value for this item SHALL take the form of a string containing a Freenet freesite key, e.g. "USK@0I8g...xbZ4,AQACAAE/Example/42/". - #### Administrative Constructs - "info": This optional item can be used to provide WHOIS-like information. diff --git a/ifa-0002.md b/ifa-0002.md new file mode 100644 index 0000000..f3d4870 --- /dev/null +++ b/ifa-0002.md @@ -0,0 +1,110 @@ +Domain Names — Non-DNS Types +============================ + + IFA Proposal No. 2 + Title: Domain Names — Non-DNS Types + Status: Draft + Type: Standards Track + Created: 2015-05-31 + +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. + +This document is released into the public domain. + +This document was authored by Hugo Landau. + + + +**Table of Contents** + +- [Introduction](#introduction) +- [Non-DNS Item Types](#non-dns-item-types) +- [Changes to Processing Rules](#changes-to-processing-rules) +- [Newly Deprecated Item Types](#newly-deprecated-item-types) +- [Changelog](#changelog) + + + +Introduction +------------ +This document extends the Domain Names specification, IFA-0001. It specifies additional item types which are not DNS mappable at the time of writing. Currently, these types are used to express endpoints for various darknet technologies. + +Non-DNS Item Types +------------------ + + - "tor": Used to specify zero or more Tor hidden service addresses. + + The value for this item SHALL be one of the following forms: + + - An empty array. This denotes that hidden service connectivity is not available via the current object. This is the default semantic if the "tor" item type is not present. + + - An array of one or more strings. Each such string SHALL contain a Tor onion address, including the ".onion" suffix. (Note that the value MUST NOT be an URL.) The string MUST NOT have a trailing dot. + + This form denotes that the current object is mappable to any of the Tor hidden services with the given addresses. Client implementations should select an address in a similar fashion to the selection of IP addresses; sort the addresses randomly and try them in order until all addresses are exhausted. + + - A string. Where this form is encountered, it SHALL be substituted with an array containing that string and be processed as though that was what was encountered, as per the above form. + + Examples: + + "tor": [] // No hidden service available + "tor": "qaneqo4kcreewkvq.onion" // One hidden service available + "tor": ["xo920axk34lannrw.onion"] // One hidden service available + "tor": ["ganeqo4kcreewkvq.onion", "xo920axk34lannrw.onion"] // Two hidden services available + + The following example forms are NOT valid: + + "tor": "ganeqo4kcreewkvq" + "tor": "ganeqo4kcreewkvq.onion." + "tor": "http://ganeqo4kcreewkvq.onion" + "tor": {} + + - "i2p": Used to specify zero or more I2P eepsite addresses. + + The value for this item SHALL be one of the following forms: + + - An empty array. This denotes that I2P eepsite connectivity is not available via the current object. This is the default semantic if the "i2p" item type is not present. + + - An array of one or more strings. Each such string SHALL contain a base32-form I2P eepsite address, including the ".b32.i2p" suffix. (Note that the value MUST NOT be an URL.) The string MUST NOT have a trailing dot. + + This form denotes that the current object is mappable to any of the I2P eepsites with the given addresses. Client implementations should select an address in a similar fashion to the selection of IP addresses; sort the addresses randomly and try them in order until all addresses are exhausted. + + The address MUST be of the base32 form and MUST NOT be a friendly name like "example.i2p". + + - A string. Where this form is encountered, it SHALL be substituted with an array containing that string and be processed as thoug that was what was encountered, as per the above form. + + Examples: + + "i2p": [] // No eepsite available + "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p" // One eepsite available + "i2p": ["vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p"] // One eepsite available + "i2p": ["vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p", + "idphjncvywzvcjur2zeep2a44s5dxduzv7iytgihg7vdx3x5hnkq.b32.i2p"] // Two eepsites available + + The following example forms are NOT valid: + + "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq" + "i2p": "example.i2p" + "i2p": "vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p." + "i2p": "http://vbcc75tfgauz5qc6tlggfduudeva755sncjyuv5sfjhy7o2ltuqq.b32.i2p" + "i2p": {} + + - "freenet": Provides a Freenet freesite key. + + The value for this item SHALL take the form of a string containing a Freenet freesite key, e.g. "USK@0I8g...xbZ4,AQACAAE/Example/42/". + +Changes to Processing Rules +--------------------------- + +There are no changes to item suppression or other processing rules. + +Newly Deprecated Item Types +--------------------------- + +The following item types are deprecated by this document and SHOULD NOT be used. + + - "i2p": The format proposed previously does not appear to make sense and includes extraneous fields. Since no actual implementations of that format are known, it has been deprecated in favour of a format more uniform with the "tor" item type. + +Changelog +--------- + + - 20150531: Initial revision, factored out from IFA-0001.