diff options
Diffstat (limited to 'draft-schanzen-r5n.xml')
-rw-r--r-- | draft-schanzen-r5n.xml | 146 |
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[ | ||
1107 | 0 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[ | ||
1147 | 0 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[ | ||
1122 | 0 8 16 24 32 40 48 56 | 1215 | 0 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> |