diff --git a/i2p2www/pages/site/docs/api/sam.html b/i2p2www/pages/site/docs/api/sam.html index 3297fe63..b971df37 100644 --- a/i2p2www/pages/site/docs/api/sam.html +++ b/i2p2www/pages/site/docs/api/sam.html @@ -1,7 +1,7 @@ {% extends "global/layout.html" %} {% block title %}SAM V1 Specification{% endblock %} -{% block lastupdated %}August 2010{% endblock %} -{% block accuratefor %}0.8{% endblock %} +{% block lastupdated %}June 2014{% endblock %} +{% block accuratefor %}0.9.14{% endblock %} {% block content %}

Specified below is version 1 of a simple client protocol for interacting with I2P. @@ -11,6 +11,17 @@ Newer alternatives: BOB.

+

I2P 0.9.14 Changes

+

+The reported version remains "1.0". +

+

+ +

Version 1 Protocol

 ----------------------------------------------------------------------
 Simple Anonymous Messaging (SAM version 1.0) Specification
@@ -51,7 +62,9 @@ and
 
   HELLO REPLY RESULT=$result VERSION=1.0
 
-The current version for both must be "1.0".
+As of I2P 0.9.14, the MIN parameter is optional.
+The MAX parameter must be provided and be greater than or equal to "1" and
+less than "2" to use version 1.
 
 The RESULT value may be one of:
 
@@ -311,6 +324,11 @@ which is answered by
       PUB=$pubkey
       PRIV=$privkey
 
+As of I2P 0.9.14, an optional parameter SIGNATURE_TYPE is supported.
+The SIGNATURE_TYPE value may be any name (e.g. ECDSA_SHA256_P256, case insensitive) or number (e.g. 1)
+that is supported by Key Certificates.
+The default is DSA_SHA1.
+
 ----------------------------------------------------------------------
 RESULT values
 ----------------------------------------------------------------------
diff --git a/i2p2www/pages/site/docs/api/samv2.html b/i2p2www/pages/site/docs/api/samv2.html
index b4707c90..d0d16b83 100644
--- a/i2p2www/pages/site/docs/api/samv2.html
+++ b/i2p2www/pages/site/docs/api/samv2.html
@@ -1,7 +1,7 @@
 {% extends "global/layout.html" %}
 {% block title %}SAM V2 Specification{% endblock %}
-{% block lastupdated %}August 2010{% endblock %}
-{% block accuratefor %}0.8{% endblock %}
+{% block lastupdated %}June 2014{% endblock %}
+{% block accuratefor %}0.9.14{% endblock %}
 {% block content %}
 

Specified below is a simple client protocol for interacting with I2P.

@@ -14,8 +14,9 @@ Alternatives: BOB.

-

-Version 2 Changes +

Version 2 Changes

+

+SAM V2 was introduced in I2P release 0.6.1.31. Compared to version 1, SAM v2 provides a way to manage several sockets on the same I2P destination in parallel, i.e. the client does not have to wait for data being successfully sent on one socket before sending @@ -23,7 +24,18 @@ data on another socket. All data transits through the same client<-->SAM socket. For multiple sockets, see SAM V3.

+

I2P 0.9.14 Changes

+

+The reported version remains "2.0". +

+

+ +

Version 2 Protocol

 ----------------------------------------------------------------------
 Simple Anonymous Messaging (SAM version 2.0) Specification
@@ -64,8 +76,9 @@ and
 
 ***   HELLO REPLY RESULT=$result VERSION=2.0
 
-*** In order to force protocol version 2.0, the values of $min and $max
-*** must be "2.0".
+As of I2P 0.9.14, the MIN parameter is optional.
+The MAX parameter must be provided and be greater than or equal to "2" and
+less than "3" to use version 2.
 
 The RESULT value may be one of:
 
@@ -378,6 +391,11 @@ which is answered by
       PUB=$pubkey
       PRIV=$privkey
 
+As of I2P 0.9.14, an optional parameter SIGNATURE_TYPE is supported.
+The SIGNATURE_TYPE value may be any name (e.g. ECDSA_SHA256_P256, case insensitive) or number (e.g. 1)
+that is supported by Key Certificates.
+The default is DSA_SHA1.
+
 ----------------------------------------------------------------------
 RESULT values
 ----------------------------------------------------------------------
diff --git a/i2p2www/pages/site/docs/api/samv3.html b/i2p2www/pages/site/docs/api/samv3.html
index 700d34ae..3c091ac8 100644
--- a/i2p2www/pages/site/docs/api/samv3.html
+++ b/i2p2www/pages/site/docs/api/samv3.html
@@ -1,7 +1,7 @@
 {% extends "global/layout.html" %}
 {% block title %}SAM V3{% endblock %}
-{% block lastupdated %}August 2010{% endblock %}
-{% block accuratefor %}0.8{% endblock %}
+{% block lastupdated %}June 2014{% endblock %}
+{% block accuratefor %}0.9.14{% endblock %}
 {% block content %}
 

Specified below is a simple client protocol for interacting with I2P.

@@ -13,8 +13,10 @@ Alternatives: BOB.

-

-Version 3 Changes +

Version 3 Changes

+

Version 3.0 Changes

+

+Version 3.0 was introduced in I2P release 0.7.3. SAM v2 provided a way to manage several sockets on the same I2P destination in parallel, i.e. the client does not have to wait for data being successfully sent on one socket before sending @@ -27,14 +29,24 @@ This is similar to BOB.
SAM v3 also offers a UDP port for sending datagrams through I2P, and can forward back I2P datagrams to the client's datagram server. -

+

-Version 3 Language Libraries +

Version 3.1 Changes

+

+Version 3.1 was introduced in I2P release 0.9.14. +

+

+ +

Version 3 Language Libraries

-Version 3 Protocol +

Version 3 Protocol

 ----------------------------------------------------------------------
 Simple Anonymous Messaging (SAM version 3.0) Specification
@@ -82,10 +94,11 @@ a HELLO and the bridge sending a HELLO REPLY:
 
 and
 
-<-  HELLO REPLY RESULT=OK VERSION=3.0
+<-  HELLO REPLY RESULT=OK VERSION=3.1
 
-*** In order to force protocol version 3.0, the values of $min and $max
-*** must be "3.0".
+As of version 3.1 (I2P 0.9.14), the MIN and MAX parameters are optional.
+SAM will always return the highest version possible given the
+MIN and MAX constraints, or 3.1 if no constraints are given.
 
 If the SAM bridge cannot find a suitable version, it replies with :
 
@@ -122,8 +135,13 @@ received through other forms are answered with an error message) :
 DESTINATION specifies what destination should be used for 
 sending and receiving messages/streams.  It is the base 64 encoding of
 the concatenation of the destination, private key, and signing private key.
-If the destination is specified as TRANSIENT,
-the SAM bridge creates a new destination.
+
+If the destination is specified as TRANSIENT, the SAM bridge creates a new destination.
+As of version 3.1 (I2P 0.9.14), if the destination is TRANSIENT, an optional parameter
+SIGNATURE_TYPE is supported. The SIGNATURE_TYPE value may be any name
+(e.g. ECDSA_SHA256_P256, case insensitive) or number (e.g. 1)
+supported by Key Certificates.
+The default is DSA_SHA1.
 
 {$nickname} is the choice of the client. No whitespace is allowed.
 
@@ -468,6 +486,11 @@ which is answered by
       PUB=$pubkey
       PRIV=$privkey
 
+As of I2P 0.9.14, an optional parameter SIGNATURE_TYPE is supported.
+The SIGNATURE_TYPE value may be any name (e.g. ECDSA_SHA256_P256, case insensitive) or number (e.g. 1)
+that is supported by Key Certificates.
+The default is DSA_SHA1.
+
 ----------------------------------------------------------------------
 RESULT values
 ----------------------------------------------------------------------
diff --git a/i2p2www/pages/site/docs/spec/common-structures.html b/i2p2www/pages/site/docs/spec/common-structures.html
index 56447b95..d2832df3 100644
--- a/i2p2www/pages/site/docs/spec/common-structures.html
+++ b/i2p2www/pages/site/docs/spec/common-structures.html
@@ -133,7 +133,7 @@ This structure is used for verifying signatures.
 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.
+The default type is DSA_SHA1.
 {% endtrans %}
 {% trans -%}
 As of release 0.9.12, other types may be supported, depending on context.
@@ -141,13 +141,13 @@ As of release 0.9.12, other types may be supported, depending on context.
 
 
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{% trans %}Type{% endtrans %}{% trans %}Length (bytes){% endtrans %}
DSA-160128
ECDSA-SHA256-P25664
ECDSA-SHA384-P38496
ECDSA-SHA512-P521132
RSA-SHA256-2048256
RSA-SHA384-3072384
RSA-SHA512-4096512
DSA_SHA1128
ECDSA_SHA256_P25664
ECDSA_SHA384_P38496
ECDSA_SHA512_P521132
RSA_SHA256_2048256
RSA_SHA384_3072384
RSA_SHA512_4096512

Javadoc

@@ -162,7 +162,7 @@ This structure is used for creating signatures. Key type and length are specified when created. {% endtrans %} {% trans -%} -The default type is DSA-160. +The default type is DSA_SHA1. {% endtrans %} {% trans -%} As of release 0.9.12, other types may be supported, depending on context. @@ -170,13 +170,13 @@ As of release 0.9.12, other types may be supported, depending on context. - - - - - - - + + + + + + +
{% trans %}Type{% endtrans %}{% trans %}Length (bytes){% endtrans %}
DSA-16020
ECDSA-SHA256-P25632
ECDSA-SHA384-P38448
ECDSA-SHA512-P52166
RSA-SHA256-2048512
RSA-SHA384-3072768
RSA-SHA512-40961024
DSA_SHA120
ECDSA_SHA256_P25632
ECDSA_SHA384_P38448
ECDSA_SHA512_P52166
RSA_SHA256_2048512
RSA_SHA384_3072768
RSA_SHA512_40961024

Javadoc

@@ -191,7 +191,7 @@ This structure represents the signature of some data. Signature type and length are inferred from the type of key used. {% endtrans %} {% trans -%} -The default type is DSA-160. +The default type is DSA_SHA1. {% endtrans %} {% trans -%} As of release 0.9.12, other types may be supported, depending on context. @@ -199,13 +199,13 @@ As of release 0.9.12, other types may be supported, depending on context. - - - - - - - + + + + + + +
{% trans %}Type{% endtrans %}{% trans %}Length (bytes){% endtrans %}
DSA-16040
ECDSA-SHA256-P25664
ECDSA-SHA384-P38496
ECDSA-SHA512-P521132
RSA-SHA256-2048256
RSA-SHA384-3072384
RSA-SHA512-4096512
DSA_SHA140
ECDSA_SHA256_P25664
ECDSA_SHA384_P38496
ECDSA_SHA512_P521132
RSA_SHA256_2048256
RSA_SHA384_3072384
RSA_SHA512_4096512

Javadoc

@@ -325,7 +325,7 @@ however non-NULL certs are not widely used, and any checking is left to the appl

Key certificates are preliminary, and are scheduled to be introduced in release 0.9.12. Prior to that release, all PublicKeys were 256-byte ElGamal keys, and -all SigningPublicKeys were 128-byte DSA-160 keys. +all SigningPublicKeys were 128-byte DSA-SHA1 keys. A key certificate provides a mechanism to indicate the type of the PublicKey and SigningPublicKey in the Destination or RouterIdentity, and to package any key data in excess of the standard lengths. @@ -352,13 +352,13 @@ The key certificate payload contains: The defined Signing Key types are:

- - - - - - - + + + + + + +
TypeType CodeTotal Public Key Length
DSA-1600128
ECDSA-SHA256-P256164
ECDSA-SHA384-P384296
ECDSA-SHA512-P5213132
RSA-SHA256-20484256
RSA-SHA384-30725384
RSA-SHA512-40966512
DSA_SHA10128
ECDSA_SHA256_P256164
ECDSA_SHA384_P384296
ECDSA_SHA512_P5213132
RSA_SHA256_20484256
RSA_SHA384_30725384
RSA_SHA512_40966512

@@ -370,7 +370,7 @@ The defined Crypto Public Key types are:

When a Key Certificate is not present, the preceeding 384 bytes in the Destination or RouterIdentity -are defined as the 256-byte ElGamal PublicKey followed by the 128-byte DSA-160 SigningPublicKey. +are defined as the 256-byte ElGamal PublicKey followed by the 128-byte DSA-SHA1 SigningPublicKey. When a Key Certificate is present, the preceeding 384 bytes are redefined as follows:

  • Complete or first portion of Crypto Public Key @@ -393,13 +393,13 @@ the boundary between the two keys is to be specified in a future revision of thi Example layouts using an ElGamal Crypto Public Key and the Signing Public Key type indicated:

    - - - - - - - + + + + + + +
    Signing Key TypePadding LengthExcess Signing Key Data in Cert
    DSA-16000
    ECDSA-SHA256-P256640
    ECDSA-SHA384-P384320
    ECDSA-SHA512-P52104
    RSA-SHA256-20480128
    RSA-SHA384-30720256
    RSA-SHA512-40960384
    DSA_SHA100
    ECDSA_SHA256_P256640
    ECDSA_SHA384_P384320
    ECDSA_SHA512_P52104
    RSA_SHA256_20480128
    RSA_SHA384_30720256
    RSA_SHA512_40960384