From 8780d7441debf8456d87bc3d489a2261d25963f1 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 27 Jan 2016 18:32:31 +0000 Subject: [PATCH] add use cases for each sig type --- .../site/docs/spec/common-structures.html | 112 +++++++++++------- 1 file changed, 72 insertions(+), 40 deletions(-) diff --git a/i2p2www/pages/site/docs/spec/common-structures.html b/i2p2www/pages/site/docs/spec/common-structures.html index e886a557a..4d6d2af90 100644 --- a/i2p2www/pages/site/docs/spec/common-structures.html +++ b/i2p2www/pages/site/docs/spec/common-structures.html @@ -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> </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> </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> </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> </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> </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> </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> -- GitLab