From bda1bb74f156a19f983edc3f0ce3aea1e3a954fa Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 21 Jan 2014 20:08:45 +0000
Subject: [PATCH] more key length tables

---
 .../site/docs/spec/common-structures.html     | 75 ++++++++++++++++---
 1 file changed, 63 insertions(+), 12 deletions(-)

diff --git a/i2p2www/pages/site/docs/spec/common-structures.html b/i2p2www/pages/site/docs/spec/common-structures.html
index 371579a91..60324d909 100644
--- a/i2p2www/pages/site/docs/spec/common-structures.html
+++ b/i2p2www/pages/site/docs/spec/common-structures.html
@@ -100,37 +100,88 @@ This structure is used for AES256 encryption and decryption.
 <h2 id="type_SigningPublicKey">SigningPublicKey</h2>
 <h4>{% trans %}Description{% endtrans %}</h4>
 <p>{% trans cryptography=site_url('docs/how/cryptography') -%}
-This structure is used for verifying <a href="{{ cryptography }}#DSA">DSA</a> signatures.
+This structure is used for verifying signatures.
 {% endtrans %}</p>
 <h4>{% trans %}Contents{% endtrans %}</h4>
 <p>{% trans -%}
-128 bytes
+Key type and length are inferred from context or are specified in the Key Certificate of a Destination.
+{% endtrans %}
+{% trans -%}
+The default type is DSA-160.
+{% endtrans %}
+{% trans -%}
+As of release 0.9.11, 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></tr>
+<tr><td>DSA-160</td><td align="center">128</td></tr>
+<tr><td>ECDSA-SHA256-P256</td><td align="center">64</td></tr>
+<tr><td>ECDSA-SHA384-P384</td><td align="center">96</td></tr>
+<tr><td>ECDSA-SHA512-P521</td><td align="center">132</td></tr>
+<tr><td>RSA-SHA256-2048</td><td align="center">256</td></tr>
+<tr><td>RSA-SHA384-3072</td><td align="center">384</td></tr>
+<tr><td>RSA-SHA512-4096</td><td align="center">512</td></tr>
+</table>
+
 <h4><a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/SigningPublicKey.html">Javadoc</a></h4>
 
 <h2 id="type_SigningPrivateKey">SigningPrivateKey</h2>
 <h4>{% trans %}Description{% endtrans %}</h4>
 <p>{% trans cryptography=site_url('docs/how/cryptography') -%}
-This structure is used for creating <a href="{{ cryptography }}#DSA">DSA</a> signatures.
+This structure is used for creating signatures.
 {% endtrans %}</p>
 <h4>{% trans %}Contents{% endtrans %}</h4>
 <p>{% trans -%}
-20 bytes
+Key type and length are specified when created.
+{% endtrans %}
+{% trans -%}
+The default type is DSA-160.
+{% endtrans %}
+{% trans -%}
+As of release 0.9.11, 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></tr>
+<tr><td>DSA-160</td><td align="center">20</td></tr>
+<tr><td>ECDSA-SHA256-P256</td><td align="center">32</td></tr>
+<tr><td>ECDSA-SHA384-P384</td><td align="center">48</td></tr>
+<tr><td>ECDSA-SHA512-P521</td><td align="center">66</td></tr>
+<tr><td>RSA-SHA256-2048</td><td align="center">512</td></tr>
+<tr><td>RSA-SHA384-3072</td><td align="center">768</td></tr>
+<tr><td>RSA-SHA512-4096</td><td align="center">1024</td></tr>
+</table>
+
 <h4><a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/SigningPrivateKey.html">Javadoc</a></h4>
 
 <h2 id="type_Signature">Signature</h2>
 <h4>{% trans %}Description{% endtrans %}</h4>
 <p>{% trans cryptography=site_url('docs/how/cryptography') -%}
-This structure represents the <a href="{{ cryptography }}#DSA">DSA</a> signature of some data.
+This structure represents the signature of some data.
 {% endtrans %}</p>
 <h4>{% trans %}Contents{% endtrans %}</h4>
 <p>{% trans -%}
-40 bytes
+Signature type and length are inferred from the type of key used.
+{% endtrans %}
+{% trans -%}
+The default type is DSA-160.
+{% endtrans %}
+{% trans -%}
+As of release 0.9.11, 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></tr>
+<tr><td>DSA-160</td><td align="center">40</td></tr>
+<tr><td>ECDSA-SHA256-P256</td><td align="center">64</td></tr>
+<tr><td>ECDSA-SHA384-P384</td><td align="center">96</td></tr>
+<tr><td>ECDSA-SHA512-P521</td><td align="center">132</td></tr>
+<tr><td>RSA-SHA256-2048</td><td align="center">256</td></tr>
+<tr><td>RSA-SHA384-3072</td><td align="center">384</td></tr>
+<tr><td>RSA-SHA512-4096</td><td align="center">512</td></tr>
+</table>
+
 <h4><a href="http://docs.i2p-projekt.de/javadoc/net/i2p/data/Signature.html">Javadoc</a></h4>
 
 <h2 id="type_Hash">Hash</h2>
@@ -275,9 +326,9 @@ The defined Signing Key types are:
 <tr><td>ECDSA-SHA256-P256</td><td align="center">1</td><td align="center">64</td></tr>
 <tr><td>ECDSA-SHA384-P384</td><td align="center">2</td><td align="center">96</td></tr>
 <tr><td>ECDSA-SHA512-P521</td><td align="center">3</td><td align="center">132</td></tr>
-<tr><td>RSA-SHA256-2048</td><td align="center">4</td><td align="center">512</td></tr>
-<tr><td>RSA-SHA384-3072</td><td align="center">5</td><td align="center">768</td></tr>
-<tr><td>RSA-SHA512-4096</td><td align="center">6</td><td align="center">1024</td></tr>
+<tr><td>RSA-SHA256-2048</td><td align="center">4</td><td align="center">256</td></tr>
+<tr><td>RSA-SHA384-3072</td><td align="center">5</td><td align="center">384</td></tr>
+<tr><td>RSA-SHA512-4096</td><td align="center">6</td><td align="center">512</td></tr>
 </table>
 
 <p>
@@ -316,9 +367,9 @@ Example layouts using an ElGamal Crypto Public Key and the Signing Public Key ty
 <tr><td>ECDSA-SHA256-P256</td><td align="center">64</td><td align="center">0</td></tr>
 <tr><td>ECDSA-SHA384-P384</td><td align="center">32</td><td align="center">0</td></tr>
 <tr><td>ECDSA-SHA512-P521</td><td align="center">0</td><td align="center">4</td></tr>
-<tr><td>RSA-SHA256-2048</td><td align="center">0</td><td align="center">384</td></tr>
-<tr><td>RSA-SHA384-3072</td><td align="center">0</td><td align="center">648</td></tr>
-<tr><td>RSA-SHA512-4096</td><td align="center">0</td><td align="center">896</td></tr>
+<tr><td>RSA-SHA256-2048</td><td align="center">0</td><td align="center">128</td></tr>
+<tr><td>RSA-SHA384-3072</td><td align="center">0</td><td align="center">256</td></tr>
+<tr><td>RSA-SHA512-4096</td><td align="center">0</td><td align="center">384</td></tr>
 </table>
 
 
-- 
GitLab