forked from I2P_Developers/i2p.www
Streaming spec update for variable signatures
Add link to streaming spec on doc index
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Index to Technical Documentation{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}May 2013{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.6{% endblock %}
|
||||
{% block lastupdated %}{% trans %}January 2014{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.10{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans -%}
|
||||
Following is an index to the technical documentation for I2P.
|
||||
@@ -81,6 +81,8 @@ HTTP Bidir Proxy
|
||||
<ul><li>
|
||||
<a href="{{ site_url('docs/api/streaming') }}">{{ _('Streaming Library') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ site_url('docs/spec/streaming') }}">{{ _('Streaming Protocol Specification') }}</a>
|
||||
</li><li>
|
||||
<a href="http://docs.i2p-projekt.de/javadoc/net/i2p/client/streaming/package-summary.html">{{ _('Streaming Javadoc') }}</a>
|
||||
</li><li>
|
||||
<a href="{{ site_url('docs/spec/datagrams') }}">{{ _('Datagrams') }}</a>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Common structures Specification{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}January 2014{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.9{% endblock %}
|
||||
{% block accuratefor %}0.9.10{% endblock %}
|
||||
{% block content %}
|
||||
<p>{% trans i2np=site_url('docs/protocol/i2np'),
|
||||
i2cp=site_url('docs/protocol/i2cp'),
|
||||
@@ -505,6 +505,8 @@ total length: 387+ bytes
|
||||
<ul><li>{% trans -%}
|
||||
The certificate for a RouterIdentity is currently unused and is always NULL.
|
||||
{%- endtrans %}</li><li>
|
||||
Do not assume that RouterIdentities are always 387 bytes!
|
||||
They are 387 bytes plus the certificate length specified at bytes 385-386, which may be non-zero in a future release.
|
||||
</li><li>
|
||||
As of release 0.9.11, if the certificate is a Key Certificate, the boundaries of the
|
||||
key fields may vary. See the Key Certificate section above for details.
|
||||
@@ -561,6 +563,9 @@ which was disabled in version 0.6, it is currently unused
|
||||
except for the IV for LeaseSet encryption,
|
||||
which is deprecated. The public key in the LeaseSet is used instead.
|
||||
</li><li>
|
||||
Do not assume that Destinations are always 387 bytes!
|
||||
They are 387 bytes plus the certificate length specified at bytes 385-386, which may be non-zero.
|
||||
</li><li>
|
||||
As of release 0.9.11, if the certificate is a Key Certificate, the boundaries of the
|
||||
key fields may vary. See the Key Certificate section above for details.
|
||||
</li></ul>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{% extends "global/layout.html" %}
|
||||
{% block title %}{% trans %}Streaming Library Specification{% endtrans %}{% endblock %}
|
||||
{% block lastupdated %}{% trans %}December 2013{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.9{% endblock %}
|
||||
{% block lastupdated %}{% trans %}January 2014{% endtrans %}{% endblock %}
|
||||
{% block accuratefor %}0.9.10{% endblock %}
|
||||
{% block content %}
|
||||
<p><a href="{{ site_url('docs/api/streaming') }}">{% trans -%}
|
||||
See the Streaming page for an overview of the Streaming Library.
|
||||
@@ -103,13 +103,16 @@ SIGNATURE_INCLUDED must be set also.
|
||||
<tr><td>2<td>RESET<td align="center">--<td align="center">--<td>
|
||||
Abnormal close.
|
||||
SIGNATURE_INCLUDED must be set also.
|
||||
<tr><td>3<td>SIGNATURE_INCLUDED<td align="center">4<td>40 byte <a href="{{ site_url('docs/spec/common-structures') }}#type_Signature">DSA Signature</a>
|
||||
<tr><td>3<td>SIGNATURE_INCLUDED<td align="center">4<td>variable length <a href="{{ site_url('docs/spec/common-structures') }}#type_Signature">Signature</a>
|
||||
<td>
|
||||
Currently sent only with SYNCHRONIZE, CLOSE, and RESET, where it is required,
|
||||
and with ECHO, where it is required for a ping.
|
||||
The signature uses the Destination's <a href="{{ site_url('docs/spec/common-structures') }}#type_SigningPublicKey">DSA signing keys</a>
|
||||
to sign the entire header and payload with the 40-byte space in the option data field
|
||||
The signature uses the Destination's <a href="{{ site_url('docs/spec/common-structures') }}#type_SigningPublicKey">signing keys</a>
|
||||
to sign the entire header and payload with the space in the option data field
|
||||
for the signature being set to all zeroes.
|
||||
<br>
|
||||
Prior to release 0.9.11, the signature was always 40 bytes.
|
||||
As of release 0.9.11, the signature may be variable-length, see below for details.
|
||||
<tr><td>4<td>SIGNATURE_REQUESTED<td align="center">--<td align="center">--<td>
|
||||
Unused. Requests every packet in the other direction to have SIGNATURE_INCLUDED
|
||||
<tr><td>5<td>FROM_INCLUDED<td align="center">2<td>387+ byte <a href="{{ site_url('docs/spec/common-structures') }}#struct_Destination">Destination</a>
|
||||
@@ -138,4 +141,24 @@ and is always present.
|
||||
<tr><td>11-15<td>unused<td><td><td>
|
||||
</table>
|
||||
|
||||
<h4>Variable Length Signature Notes</h4>
|
||||
<p>
|
||||
Prior to release 0.9.11, the signature in the option field was always 40 bytes.
|
||||
As of release 0.9.11, the signature is variable length.
|
||||
The Signature type and length are inferred from the type of key used in the FROM_INCLUDED option
|
||||
and the <a href="{{ site_url('docs/spec/common-structures') }}#type_Signature">Signature documentation</a>.
|
||||
<ul><li>
|
||||
When a packet contains both FROM_INCLUDED and SIGNATURE_INCLUDED (as in SYNCHRONIZE), the inference may be made directly.
|
||||
</li><li>
|
||||
When a packet does not contain FROM_INCLUDED, the inference must be made from a previous SYNCHRONIZE packet.
|
||||
</li><li>
|
||||
When a packet does not contain FROM_INCLUDED, and there was no previous SYNCHRONIZE packet
|
||||
(for example a stray CLOSE or RESET packet), the inference can be made from the length of the remaining options
|
||||
(since SIGNATURE_INCLUDED is the last option), but the packet will probably be discarded anyway, since there is no FROM available
|
||||
to validate the signature.
|
||||
If more option fields are defined in the future, they must be accounted for.
|
||||
</li></ul>
|
||||
</p>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
Reference in New Issue
Block a user