summaryrefslogtreecommitdiff
path: root/draft-schanzen-r5n.xml
diff options
context:
space:
mode:
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r--draft-schanzen-r5n.xml146
1 files changed, 121 insertions, 25 deletions
diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml
index 2b246dd..a5b5e26 100644
--- a/draft-schanzen-r5n.xml
+++ b/draft-schanzen-r5n.xml
@@ -1099,34 +1099,141 @@ BEGIN
1099 <t> 1099 <t>
1100 A Path Element represents a hop in the path a message has taken 1100 A Path Element represents a hop in the path a message has taken
1101 through the network. 1101 through the network.
1102 The wire format of a Path Element is illustrated in
1103 <xref target="figure_pathelement"/>.
1104 </t>
1105 <figure anchor="figure_pathelement" title="The Wire Format of a Path Element.">
1106 <artwork name="" type="" align="left" alt=""><![CDATA[
11070 8 16 24 32 40 48 56
1108+-----+-----+-----+-----+-----+-----+-----+-----+
1109| SIGNATURE |
1110| (64 byte) |
1111| |
1112| |
1113| |
1114| |
1115| |
1116| |
1117+-----+-----+-----+-----+-----+-----+-----+-----+
1118| PEER ID |
1119| (32 byte) |
1120| |
1121| |
1122+-----+-----+-----+-----+-----+-----+-----+-----+
1123 ]]></artwork>
1124 </figure>
1125 <t>where:</t>
1126 <dl>
1127 <dt>SIGNATURE</dt>
1128 <dd>
1129 is a 64 byte EdDSA signature using the current hop's private
1130 key affirming the previous and next hops.
1131 </dd>
1132 <dt>PEER ID</dt>
1133 <dd>
1134 is the EdDSA public key of the peer on the path.
1135 </dd>
1136 </dl>
1137 <t>
1102 An ordered list of Path Elements may be appended to any routed 1138 An ordered list of Path Elements may be appended to any routed
1103 <tt>PutMessage</tt>s or <tt>ResultMessage</tt>s. 1139 <tt>PutMessage</tt>s or <tt>ResultMessage</tt>s.
1104 The signature of a Path Element is created by the current hop 1140 The signature of a Path Element is created by the current hop
1105 after it made its routing decision identifiying the successor peer. 1141 after it made its routing decision identifiying the successor peer.
1142 The wire format of an example path from Peers A over B and C to D is
1143 illustrated in <xref target="figure_path_ex"/>.
1106 </t> 1144 </t>
1145 <figure anchor="figure_path_ex" title="Example of a path with a path length of 3. As illustrated, the Peer ID of the last hop is omitted.">
1146 <artwork name="" type="" align="left" alt=""><![CDATA[
11470 8 16 24 32 40 48 56
1148+-----+-----+-----+-----+-----+-----+-----+-----+
1149| SIGNATURE A |
1150| (64 byte) |
1151| |
1152| |
1153| |
1154| |
1155| |
1156| |
1157+-----+-----+-----+-----+-----+-----+-----+-----+
1158| PEER A |
1159| (32 byte) |
1160| |
1161| |
1162+-----+-----+-----+-----+-----+-----+-----+-----+
1163| SIGNATURE B |
1164| (64 byte) |
1165| |
1166| |
1167| |
1168| |
1169| |
1170| |
1171+-----+-----+-----+-----+-----+-----+-----+-----+
1172| PEER B |
1173| (32 byte) |
1174| |
1175| |
1176+-----+-----+-----+-----+-----+-----+-----+-----+
1177| SIGNATURE C |
1178| (64 byte) |
1179| |
1180| |
1181| |
1182| |
1183| |
1184| |
1185+-----+-----+-----+-----+-----+-----+-----+-----+
1186| PEER C |
1187| (32 byte) |
1188| |
1189| |
1190+-----+-----+-----+-----+-----+-----+-----+-----+
1191| SIGNATURE D |
1192| (64 byte) |
1193| |
1194| |
1195| |
1196| |
1197| |
1198| |
1199+-----+-----+-----+-----+-----+-----+-----+-----+
1200 ]]></artwork>
1201 </figure>
1202
1107 <t> 1203 <t>
1108 A path may be truncated in which case the signature of the truncated 1204 A path may be truncated in which case the signature of the truncated
1109 Path Element is omitted leaving only the Peer ID required for the 1205 Path Element is omitted leaving only the Peer ID required for the
1110 verification of the subsequent Path Element signature. 1206 verification of the subsequent Path Element signature.
1111 Such a truncated path is indicated with the respective flag. 1207 Such a truncated path is indicated with the respective flag (<xref target="route_flags"/>).
1112 The Peer ID of the last Path Element is omitted as it must be that of 1208 The Peer ID of the last Path Element is omitted as it must be that of
1113 the sender of the PutMesssage or ResultMessage. 1209 the sender of the PutMesssage or ResultMessage.
1114 The wire format of a Path Element is illustrated in 1210 The wire format of a truncated example path from Peers B over C to D
1115 <xref target="figure_pathelement"/>. 1211 is illustrated in <xref target="figure_path_ex_trunc"/>.
1116 </t> 1212 </t>
1117 <!-- TODO-GROTHOFF: We could swap the fields in order to facilitate easier processging 1213 <figure anchor="figure_path_ex_trunc" title="Example of a truncated path with a path length of 1. As illustrated, the Peer ID of the last hop is omitted.">
1118 => Yes, swap. 1214 <artwork name="" type="" align="left" alt=""><![CDATA[
1119 -->
1120 <figure anchor="figure_pathelement" title="The Wire Format of a Path Element.">
1121 <artwork name="" type="" align="left" alt=""><![CDATA[
11220 8 16 24 32 40 48 56 12150 8 16 24 32 40 48 56
1123+-----+-----+-----+-----+-----+-----+-----+-----+ 1216+-----+-----+-----+-----+-----+-----+-----+-----+
1124| PEER ID | 1217| PEER B |
1125| (32 byte) | 1218| (32 byte) |
1126| | 1219| |
1127| | 1220| |
1128+-----+-----+-----+-----+-----+-----+-----+-----+ 1221+-----+-----+-----+-----+-----+-----+-----+-----+
1129| SIGNATURE | 1222| SIGNATURE C |
1223| (64 byte) |
1224| |
1225| |
1226| |
1227| |
1228| |
1229| |
1230+-----+-----+-----+-----+-----+-----+-----+-----+
1231| PEER C |
1232| (32 byte) |
1233| |
1234| |
1235+-----+-----+-----+-----+-----+-----+-----+-----+
1236| SIGNATURE D |
1130| (64 byte) | 1237| (64 byte) |
1131| | 1238| |
1132| | 1239| |
@@ -1137,20 +1244,8 @@ BEGIN
1137+-----+-----+-----+-----+-----+-----+-----+-----+ 1244+-----+-----+-----+-----+-----+-----+-----+-----+
1138 ]]></artwork> 1245 ]]></artwork>
1139 </figure> 1246 </figure>
1140 <t>where:</t>
1141 <dl>
1142 <dt>PEER ID</dt>
1143 <dd>
1144 is the EdDSA public key of the peer on the path.
1145 </dd>
1146 <dt>SIGNATURE</dt>
1147 <dd>
1148 is a 64 byte EdDSA signature using the current hop's private
1149 key affirming the previous and next hops.
1150 </dd>
1151 </dl>
1152 <t> 1247 <t>
1153 The SIGNATURE covers a 64-bit contextualization header, the 1248 The SIGNATURE field in a Path Element covers a 64-bit contextualization header, the
1154 the block expiration, a hash of the block 1249 the block expiration, a hash of the block
1155 payload, as well as the predecessor peer ID and the peer ID of the 1250 payload, as well as the predecessor peer ID and the peer ID of the
1156 successor that the peer making the signature is routing the 1251 successor that the peer making the signature is routing the
@@ -1212,11 +1307,12 @@ BEGIN
1212 </dd> 1307 </dd>
1213 <dt>PEER PREDECESSOR</dt> 1308 <dt>PEER PREDECESSOR</dt>
1214 <dd> 1309 <dd>
1215 the Peer ID of the previous hop. 1310 the Peer ID of the previous hop. If the signing peer initiated
1311 the PUT, this field is set to all zeroes.
1216 </dd> 1312 </dd>
1217 <dt>PEER SUCCESSOR</dt> 1313 <dt>PEER SUCCESSOR</dt>
1218 <dd> 1314 <dd>
1219 the Peer ID of the next hop (not of the signer!). 1315 the Peer ID of the next hop (not of the signer).
1220 </dd> 1316 </dd>
1221 </dl> 1317 </dl>
1222 </section> 1318 </section>