add use cases for each sig type

This commit is contained in:
zzz
2016-01-27 18:32:31 +00:00
parent b5f64e2e6a
commit 8780d7441d

View File

@ -1,7 +1,7 @@
{% extends "global/layout.html" %}
{% block title %}{% trans %}Common structures Specification{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}April 2015{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.19{% endblock %}
{% block lastupdated %}{% trans %}January 2016{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.24{% endblock %}
{% block content_nav %}
<table border=1>
<tr><th>{% trans %}Type{% endtrans %}</th></tr>
@ -143,15 +143,23 @@ As of release 0.9.12, other types may be supported, depending on context.
{% endtrans %}</p>
<table border=1>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">128</td><td>&nbsp;</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">64</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">96</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">132</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">256</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">384</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">512</td><td align="center">0.9.12</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">32</td><td align="center">0.9.15</td></tr>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th><th>{% trans %}Usage{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">128</td><td>&nbsp;</td>
<td>Legacy Router Identities and Destinations</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">64</td><td align="center">0.9.12</td>
<td>Recent Destinations</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">96</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">132</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">256</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">384</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">512</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">32</td><td align="center">0.9.15</td>
<td>Recent Router Identities and Destinations</td></tr>
</table>
<h4>{% trans %}Notes{% endtrans %}</h4>
@ -186,15 +194,23 @@ As of release 0.9.12, other types may be supported, depending on context.
{% endtrans %}</p>
<table border=1>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">20</td><td>&nbsp;</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">32</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">48</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">66</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">512</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">768</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">1024</td><td align="center">0.9.12</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">32</td><td align="center">0.9.15</td></tr>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th><th>{% trans %}Usage{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">20</td><td>&nbsp;</td>
<td>Legacy Router Identities and Destinations</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">32</td><td align="center">0.9.12</td>
<td>Recent Destinations</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">48</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">66</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">512</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">768</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">1024</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">32</td><td align="center">0.9.15</td>
<td>Recent Router Identities and Destinations</td></tr>
</table>
<h4>{% trans %}Notes{% endtrans %}</h4>
@ -229,15 +245,23 @@ As of release 0.9.12, other types may be supported, depending on context.
{% endtrans %}</p>
<table border=1>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">40</td><td>&nbsp;</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">64</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">96</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">132</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">256</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">384</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">512</td><td align="center">0.9.12</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">64</td><td align="center">0.9.15</td></tr>
<tr><th>{% trans %}Type{% endtrans %}</th><th>{% trans %}Length (bytes){% endtrans %}</th><th>{% trans %}Since{% endtrans %}</th><th>{% trans %}Usage{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">40</td><td>&nbsp;</td>
<td>Legacy Router Identities and Destinations</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">64</td><td align="center">0.9.12</td>
<td>Recent Destinations</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">96</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">132</td><td align="center">0.9.12</td>
<td>Rarely used for Destinations</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">256</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">384</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">512</td><td align="center">0.9.12</td>
<td>Offline signing, never used for Router Identities or Destinations</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">64</td><td align="center">0.9.15</td>
<td>Recent Router Identities and Destinations</td></tr>
</table>
<h4>{% trans %}Notes{% endtrans %}</h4>
@ -372,7 +396,7 @@ As of 0.9.12, a Key Certificate may be used to specify the signing public key ty
<h4>{% trans %}Key Certificates{% endtrans %}</h4>
<p>
Key certificates are preliminary, and are scheduled to be introduced in release 0.9.12.
Key certificates were introduced in release 0.9.12.
Prior to that release, all PublicKeys were 256-byte ElGamal keys, and
all SigningPublicKeys were 128-byte DSA-SHA1 keys.
A key certificate provides a mechanism to indicate the type of the PublicKey and SigningPublicKey
@ -381,7 +405,7 @@ standard lengths.
</p><p>
By maintaining exactly 384 bytes before the certificate, and putting any excess key
data inside the certificate, we maintain compatibility for any software that
parses Destinations and RouterIdentities.
parses Destinations and Router Identities.
</p><p>
The key certificate payload contains:
@ -400,15 +424,23 @@ The key certificate payload contains:
<p>
The defined Signing Key types are:
</p><table border=1>
<tr><th>Type</th><th>Type Code</th><th>Total Public Key Length</th><th>{% trans %}Since{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">0</td><td align="center">128</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">1</td><td align="center">64</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">2</td><td align="center">96</td><td align="center">0.9.12</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">3</td><td align="center">132</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">4</td><td align="center">256</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">5</td><td align="center">384</td><td align="center">0.9.12</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">6</td><td align="center">512</td><td align="center">0.9.12</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">7</td><td align="center">32</td><td align="center">0.9.15</td></tr>
<tr><th>Type</th><th>Type Code</th><th>Total Public Key Length</th><th>{% trans %}Since{% endtrans %}</th><th>{% trans %}Usage{% endtrans %}</th></tr>
<tr><td>DSA_SHA1</td><td align="center">0</td><td align="center">128</td><td align="center">0.9.12</td>
<td>Legacy Router Identities and Destinations, never explicitly set</td></tr>
<tr><td>ECDSA_SHA256_P256</td><td align="center">1</td><td align="center">64</td><td align="center">0.9.12</td>
<td>Recent Destinations</td></tr>
<tr><td>ECDSA_SHA384_P384</td><td align="center">2</td><td align="center">96</td><td align="center">0.9.12</td>
<td>Sometimes used for Destinations</td></tr>
<tr><td>ECDSA_SHA512_P521</td><td align="center">3</td><td align="center">132</td><td align="center">0.9.12</td>
<td>Sometimes used for Destinations</td></tr>
<tr><td>RSA_SHA256_2048</td><td align="center">4</td><td align="center">256</td><td align="center">0.9.12</td>
<td>Offline only; never used in Key Certificates for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA384_3072</td><td align="center">5</td><td align="center">384</td><td align="center">0.9.12</td>
<td>Offline only; never used in Key Certificates for Router Identities or Destinations</td></tr>
<tr><td>RSA_SHA512_4096</td><td align="center">6</td><td align="center">512</td><td align="center">0.9.12</td>
<td>Offline only; never used in Key Certificates for Router Identities or Destinations</td></tr>
<tr><td>EdDSA_SHA512_Ed25519</td><td align="center">7</td><td align="center">32</td><td align="center">0.9.15</td>
<td>Recent Router Identities and Destinations</td></tr>
</table>
<p>