prop 123/144 updates

This commit is contained in:
zzz
2018-12-01 11:05:11 +00:00
parent ea1817959f
commit ad731ec6eb
2 changed files with 89 additions and 13 deletions

View File

@ -5,7 +5,7 @@ New netDB Entries
:author: zzz, str4d, orignal
:created: 2016-01-16
:thread: http://zzz.i2p/topics/2051
:lastupdated: 2018-11-30
:lastupdated: 2018-12-01
:status: Open
:supercedes: 110, 120, 121, 122
@ -1143,6 +1143,7 @@ New options in SessionConfig Mapping:
crypto.encType=nnn The encryption type to be used.
0: ElGamal
4: X25519, see proposal 144.
Other values to be defined in future proposals.
i2cp.leaseSetType=nnn The type of leaseset to be sent in the Create Leaseset Message
Value is the same as the netdb store type in the table above.
@ -1156,6 +1157,7 @@ Router to client.
No changes.
The leases are sent with 8-byte timestamps, even if the
returned leaseset will be a LS2 with 4-byte timestamps.
Note that the response may be a Create Leaseset or Create Leaseset2 Message.
@ -1166,16 +1168,73 @@ Router to client.
No changes.
The leases are sent with 8-byte timestamps, even if the
returned leaseset will be a LS2 with 4-byte timestamps.
Note that the response may be a Create Leaseset or Create Leaseset2 Message.
Create Leaseset Message
-----------------------
Create Leaseset2 Message
------------------------
Client to router.
Private key type and length are specified in the SessionConfig crypto.encType option.
Leaseset type is as specified in the SessionConfig i2cp.leaseSetType option.
Minimum router version is 0.9.38.
New message, to use in place of Create Leaseset Message.
Justification
`````````````
- For the router to parse the store type, the type must be in the message,
unless it is passed to the router before hand in the session config.
For for common parsing code, it's easier to have it in the message itself.
- For the router to know the type and length of the private key,
it must be after the lease set, unless the parser knows the type before hand
in the session config.
For for common parsing code, it's easier to know it from the message itself.
- The signing private key, previously defined for revocation and unused,
was before the leaseset so the type and length was unknown.
Clients always set it to the DSA length.
For proposal 144, the key may be required, and must match the type
of the destination signing key (or transient signing key if offline sigs are used).
For the router to know the type and length of the private key,
it must be after the lease set, unless the parser knows the type before hand
in the session config.
For for common parsing code, it's easier to know it from the message itself.
Message Type
````````````
The message type for the Create Leaseset2 Message is 40.
Format
``````
::
Session ID
Type byte: Type of lease set to follow
Type 1 is a LS
Type 3 is a LS2
Type 5 is a encrypted LS2
Type 7 is a meta LS2
LeaseSet: type specified above
Signing Private Key: type as inferred from the lease set signature
(by dest signing key or transient key)
Encryption Private Key: type as inferred from the public key in the lease set
Notes
`````
- Minimum router version is 0.9.38.
Issues
``````
- More changes are needed to support encrypted and meta LS.

View File

@ -5,7 +5,7 @@ ECIES-X25519-AEAD-Ratchet
:author: zzz
:created: 2018-11-22
:thread: http://zzz.i2p/topics/2639
:lastupdated: 2018-11-24
:lastupdated: 2018-12-01
:status: Open
.. contents::
@ -758,12 +758,18 @@ Decrypted:
KDF
```
.. raw:: html
{% highlight lang='text' %}
See message key ratchet below.
Key: KDF TBD
IV: As published in a LS2 property?
Nonce: From header
{% endhighlight %}
Justification
@ -847,12 +853,17 @@ Decrypted:
KDF
```
.. raw:: html
{% highlight lang='text' %}
See message key ratchet below.
Key: KDF TBD
IV: KDF TBD
Nonce: The message number N in the current chain, as retrieved from the associated Session Tag.
{% endhighlight %}
Justification
@ -1141,6 +1152,8 @@ KDF:
First time: output from DH ratchet
Subsequent times: output from previous session tag ratchet
2) input_key_material = constant (from where? SHA-256(some constant)?)
Must be unique for this chain (generated from chain key),
so that the sequence isn't predictable
TBD
@ -1212,7 +1225,7 @@ KDF:
{% highlight lang='text' %}
Inputs:
1) Root key (first time from where? SHA-256(some constant)?)
1) Root key (first time from where? see Signal section 3.3)
2) input_key_material
First time:
@ -1463,6 +1476,9 @@ Options Notes
- Support for non-default session tag length is optional,
probably not necessary
- The tag window is MAX_SKIP in the Signal documentation.
Options Issues
``````````````
@ -1577,7 +1593,7 @@ Multiple acks may be present to ack multiple messages.
{% highlight lang='dataspec' %}
+----+----+----+----+----+----+----+----+
| 8 | size | key id | N | |
+----+----+----+----+----+----+----+----+
+----+----+----+----+----+----+----+ +
| more acks |
~ . . . ~
| |
@ -1782,8 +1798,6 @@ TODO
I2CP Changes Required
=====================
TODO
I2CP Options
------------
@ -1795,11 +1809,14 @@ New options in SessionConfig Mapping:
crypto.encType=nnn The encryption type to be used.
0: ElGamal
4: This proposal.
Other values to be defined in future proposals.
i2cp.leaseSetType=nnn The type of leaseset to be sent in the Create Leaseset Message
Value is the same as the netdb store type in the table above.
Create Leaseset2 Message
------------------------
See proposal 123 for specification.
SAM Changes Required