`__
+here. You can do this by forking the repository, adding yourself to the
+list with your name commented out, and your 516-char destination
+directly below it, like this:
+
+{%- endtrans %}
+
+{%- trans %}
+
+::
+
+ # idk
+ QuabT3H5ljZyd-PXCQjvDzdfCec-2yv8E9i6N71I5WHAtSEZgazQMReYNhPWakqOEj8BbpRvnarpHqbQjoT6yJ5UObKv2hA2M4XrroJmydPV9CLJUCqgCqFfpG-bkSo0gEhB-GRCUaugcAgHxddmxmAsJVRj3UeABLPHLYiakVz3CG2iBMHLJpnC6H3g8TJivtqabPYOxmZGCI-P~R-s4vwN2st1lJyKDl~u7OG6M6Y~gNbIzIYeQyNggvnANL3t6cUqS4v0Vb~t~CCtXgfhuK5SK65Rtkt2Aid3s7mrR2hDxK3SIxmAsHpnQ6MA~z0Nus-VVcNYcbHUBNpOcTeKlncXsuFj8vZL3ssnepmr2DCB25091t9B6r5~681xGEeqeIwuMHDeyoXIP0mhEcy3aEB1jcchLBRLMs6NtFKPlioxz0~Vs13VaNNP~78bTjFje5ya20ahWlO0Md~x5P5lWLIKDgaqwNdIrijtZAcILn1h18tmABYauYZQtYGyLTOXAAAA
+
+{%- endtrans %}
+
+{%- trans %}
+
+and submitting a pull request. That's all there is to it so help keep
+i2p alive, decentralized, and reliable.
+
+{%- endtrans %}
diff --git a/i2p2www/pages/site/docs/protocol/i2cp.html b/i2p2www/pages/site/docs/protocol/i2cp.html
index 410988bc..7a30d2a1 100644
--- a/i2p2www/pages/site/docs/protocol/i2cp.html
+++ b/i2p2www/pages/site/docs/protocol/i2cp.html
@@ -1,7 +1,7 @@
{% extends "global/layout.html" %}
{% block title %}I2CP{% endblock %}
-{% block lastupdated %}{% trans %}March 2019{% endtrans %}{% endblock %}
-{% block accuratefor %}0.9.39{% endblock %}
+{% block lastupdated %}{% trans %}May 2019{% endtrans %}{% endblock %}
+{% block accuratefor %}0.9.41{% endblock %}
{% block content %}
{% trans -%}
The I2P Client Protocol (I2CP) exposes a strong separation of concerns between
@@ -176,7 +176,7 @@ of sending a MessageStatus and awaiting a ReceiveMessageBegin.
i2cp.leaseSetAuthType
- | 0.9.39 |
+0.9.41 |
0
| 0-2
| 0
@@ -232,14 +232,17 @@ See proposal 123.
|
i2cp.leaseSetPrivKey
- | 0.9.39 |
+0.9.41 |
|
|
|
-A base 64 private key for the router to use to decrypt the encrypted leaseset,
-only if per-client authentication is enabled
+A base 64 X25519 private key for the router to use to decrypt the encrypted LS2 locally,
+only if per-client authentication is enabled.
+Optionally preceded by the key type and ':'.
+Only "ECIES_X25519:" is supported, which is the default.
See proposal 123.
+Do not confuse with i2cp.leaseSetPrivateKey which is for LS1.
|
@@ -661,7 +664,7 @@ See proposal 123.
i2cp.leaseSetAuthType
- | 0.9.39 |
+0.9.41 |
0
| 0-2
| 0
@@ -706,12 +709,13 @@ See proposals 123, 144, and 145.
|
|
| {% trans -%}
-Base 64 private key for encryption.
+Base 64 private key for encryption, for old encrypted LS1.
Optionally preceded by the key type and ':'.
Only "ELGAMAL_2048:" is supported, which is the default.
I2CP will generate the public key from the private key.
Use for persistent leaseset keys across restarts.
{%- endtrans %} |
+Do not confuse with i2cp.leaseSetPrivKey which is for LS2.
diff --git a/i2p2www/spec/encryptedleaseset.rst b/i2p2www/spec/encryptedleaseset.rst
index 812d4918..f2c07cfc 100644
--- a/i2p2www/spec/encryptedleaseset.rst
+++ b/i2p2www/spec/encryptedleaseset.rst
@@ -4,7 +4,7 @@ Encrypted LeaseSet Specification
.. meta::
:category: Protocols
:lastupdated: May 2019
- :accuratefor: 0.9.40
+ :accuratefor: 0.9.41
.. contents::
@@ -675,6 +675,7 @@ authCookie = DECRYPT(clientKey_i, clientIV_i, clientCookie_i)
Pre-shared key client authorization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Each client generates a secret 32-byte key ``psk_i``, and sends it to the server.
+Alternatively, the server can generate the secret key, and send it to one or more clients.
Server processing
^^^^^^^^^^^^^^^^^
@@ -753,10 +754,13 @@ Downsides of DH client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Requires N + 1 DH operations on the server side for N clients.
- Requires one DH operation on the client side.
+- Requires the client to generate the secret key.
Advantages of PSK client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Requires no DH operations.
+- Allows the server to generate the secret key.
+- Allows the server to share the same key with multiple clients, if desired.
Downsides of PSK client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/i2p2www/spec/i2cp.rst b/i2p2www/spec/i2cp.rst
index a170f79b..8acfcf39 100644
--- a/i2p2www/spec/i2cp.rst
+++ b/i2p2www/spec/i2cp.rst
@@ -3,8 +3,8 @@ I2CP Specification
==================
.. meta::
:category: Protocols
- :lastupdated: March 2019
- :accuratefor: 0.9.39
+ :lastupdated: May 2019
+ :accuratefor: 0.9.41
.. contents::
@@ -532,7 +532,10 @@ RequestVariableLeaseSetMessage_ and contains all of the [Lease]_ structures that
should be published to the I2NP Network Database.
Sent from Client to Router.
-Since release 0.9.38. See proposal 123 for more information.
+Since release 0.9.39.
+Per-client authentication for EncryptedLeaseSet supported as of 0.9.41.
+MetaLeaseSet is not yet supported via I2CP.
+See proposal 123 for more information.
Contents
````````
diff --git a/i2p2www/spec/proposals/123-new-netdb-entries.rst b/i2p2www/spec/proposals/123-new-netdb-entries.rst
index 81e05ca3..585c0f3f 100644
--- a/i2p2www/spec/proposals/123-new-netdb-entries.rst
+++ b/i2p2www/spec/proposals/123-new-netdb-entries.rst
@@ -5,7 +5,7 @@ New netDB Entries
:author: zzz, str4d, orignal
:created: 2016-01-16
:thread: http://zzz.i2p/topics/2051
- :lastupdated: 2019-05-21
+ :lastupdated: 2019-05-22
:status: Open
:supercedes: 110, 120, 121, 122
@@ -1123,6 +1123,8 @@ authCookie = DECRYPT(clientKey_i, clientIV_i, clientCookie_i)
Pre-shared key client authorization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Each client generates a secret 32-byte key ``psk_i``, and sends it to the server.
+Alternatively, the server can generate the secret key, and send it to one or more clients.
+
Server processing
^^^^^^^^^^^^^^^^^
@@ -1201,10 +1203,13 @@ Downsides of DH client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Requires N + 1 DH operations on the server side for N clients.
- Requires one DH operation on the client side.
+- Requires the client to generate the secret key.
Advantages of PSK client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Requires no DH operations.
+- Allows the server to generate the secret key.
+- Allows the server to share the same key with multiple clients, if desired.
Downsides of PSK client authorization
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/i2p2www/spec/proposals/151-ecdsa-blinding.rst b/i2p2www/spec/proposals/151-ecdsa-blinding.rst
index 053c0542..db03620d 100644
--- a/i2p2www/spec/proposals/151-ecdsa-blinding.rst
+++ b/i2p2www/spec/proposals/151-ecdsa-blinding.rst
@@ -37,7 +37,9 @@ L
Elliptic curve's group order. Property of curve.
DERIVE_PUBLIC(a)
- Convert a private key to public, by multiplying B over an elliptic curve alpha
+ Convert a private key to public, by multiplying B over an elliptic curve
+
+alpha
A 32-byte random number known to those who know the destination.
GENERATE_ALPHA(destination, date, secret)
diff --git a/i2p2www/static/styles/duck/widescreen.css b/i2p2www/static/styles/duck/widescreen.css
index 38e31639..eca5764e 100644
--- a/i2p2www/static/styles/duck/widescreen.css
+++ b/i2p2www/static/styles/duck/widescreen.css
@@ -10,3 +10,34 @@ div#content .inner .meta {
right: 2%;
text-align: left;
}
+
+@media print { div#content .aside {
+ word-wrap: break-word;
+ display: !important;
+}}
+
+@media print { div#content .inner .fluid {
+ margin-right: 3%;
+ display: !important;
+}}
+
+@media print { div#content .inner .meta {
+ position: unset;
+ left: unset;
+ margin: unset;
+ right: unset;
+ text-align: unset;
+ display: block !important;
+}}
+
+@media print { div#content .inner .sidebar {
+ word-wrap: break-word;
+ margin-right: 2%;
+ display: !important;
+}}
+
+@media print { div#content .content-inner {
+ margin-left: 3%;
+ padding-right: 4em;
+ display: !important;
+}}