prop 123/144 updates
This commit is contained in:
@ -5,7 +5,7 @@ New netDB Entries
|
|||||||
:author: zzz, str4d, orignal
|
:author: zzz, str4d, orignal
|
||||||
:created: 2016-01-16
|
:created: 2016-01-16
|
||||||
:thread: http://zzz.i2p/topics/2051
|
:thread: http://zzz.i2p/topics/2051
|
||||||
:lastupdated: 2018-11-30
|
:lastupdated: 2018-12-01
|
||||||
:status: Open
|
:status: Open
|
||||||
:supercedes: 110, 120, 121, 122
|
:supercedes: 110, 120, 121, 122
|
||||||
|
|
||||||
@ -1143,6 +1143,7 @@ New options in SessionConfig Mapping:
|
|||||||
|
|
||||||
crypto.encType=nnn The encryption type to be used.
|
crypto.encType=nnn The encryption type to be used.
|
||||||
0: ElGamal
|
0: ElGamal
|
||||||
|
4: X25519, see proposal 144.
|
||||||
Other values to be defined in future proposals.
|
Other values to be defined in future proposals.
|
||||||
i2cp.leaseSetType=nnn The type of leaseset to be sent in the Create Leaseset Message
|
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.
|
Value is the same as the netdb store type in the table above.
|
||||||
@ -1156,6 +1157,7 @@ Router to client.
|
|||||||
No changes.
|
No changes.
|
||||||
The leases are sent with 8-byte timestamps, even if the
|
The leases are sent with 8-byte timestamps, even if the
|
||||||
returned leaseset will be a LS2 with 4-byte timestamps.
|
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.
|
No changes.
|
||||||
The leases are sent with 8-byte timestamps, even if the
|
The leases are sent with 8-byte timestamps, even if the
|
||||||
returned leaseset will be a LS2 with 4-byte timestamps.
|
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.
|
Client to router.
|
||||||
Private key type and length are specified in the SessionConfig crypto.encType option.
|
New message, to use in place of Create Leaseset Message.
|
||||||
Leaseset type is as specified in the SessionConfig i2cp.leaseSetType option.
|
|
||||||
Minimum router version is 0.9.38.
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ ECIES-X25519-AEAD-Ratchet
|
|||||||
:author: zzz
|
:author: zzz
|
||||||
:created: 2018-11-22
|
:created: 2018-11-22
|
||||||
:thread: http://zzz.i2p/topics/2639
|
:thread: http://zzz.i2p/topics/2639
|
||||||
:lastupdated: 2018-11-24
|
:lastupdated: 2018-12-01
|
||||||
:status: Open
|
:status: Open
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
@ -758,12 +758,18 @@ Decrypted:
|
|||||||
KDF
|
KDF
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
{% highlight lang='text' %}
|
||||||
|
|
||||||
See message key ratchet below.
|
See message key ratchet below.
|
||||||
|
|
||||||
Key: KDF TBD
|
Key: KDF TBD
|
||||||
IV: As published in a LS2 property?
|
IV: As published in a LS2 property?
|
||||||
Nonce: From header
|
Nonce: From header
|
||||||
|
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
|
||||||
Justification
|
Justification
|
||||||
@ -847,12 +853,17 @@ Decrypted:
|
|||||||
KDF
|
KDF
|
||||||
```
|
```
|
||||||
|
|
||||||
|
.. raw:: html
|
||||||
|
|
||||||
|
{% highlight lang='text' %}
|
||||||
|
|
||||||
See message key ratchet below.
|
See message key ratchet below.
|
||||||
|
|
||||||
Key: KDF TBD
|
Key: KDF TBD
|
||||||
IV: KDF TBD
|
IV: KDF TBD
|
||||||
Nonce: The message number N in the current chain, as retrieved from the associated Session Tag.
|
Nonce: The message number N in the current chain, as retrieved from the associated Session Tag.
|
||||||
|
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
|
||||||
Justification
|
Justification
|
||||||
@ -1141,6 +1152,8 @@ KDF:
|
|||||||
First time: output from DH ratchet
|
First time: output from DH ratchet
|
||||||
Subsequent times: output from previous session tag ratchet
|
Subsequent times: output from previous session tag ratchet
|
||||||
2) input_key_material = constant (from where? SHA-256(some constant)?)
|
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
|
TBD
|
||||||
|
|
||||||
@ -1212,7 +1225,7 @@ KDF:
|
|||||||
{% highlight lang='text' %}
|
{% highlight lang='text' %}
|
||||||
|
|
||||||
Inputs:
|
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
|
2) input_key_material
|
||||||
|
|
||||||
First time:
|
First time:
|
||||||
@ -1463,6 +1476,9 @@ Options Notes
|
|||||||
- Support for non-default session tag length is optional,
|
- Support for non-default session tag length is optional,
|
||||||
probably not necessary
|
probably not necessary
|
||||||
|
|
||||||
|
- The tag window is MAX_SKIP in the Signal documentation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Options Issues
|
Options Issues
|
||||||
``````````````
|
``````````````
|
||||||
@ -1577,7 +1593,7 @@ Multiple acks may be present to ack multiple messages.
|
|||||||
{% highlight lang='dataspec' %}
|
{% highlight lang='dataspec' %}
|
||||||
+----+----+----+----+----+----+----+----+
|
+----+----+----+----+----+----+----+----+
|
||||||
| 8 | size | key id | N | |
|
| 8 | size | key id | N | |
|
||||||
+----+----+----+----+----+----+----+----+
|
+----+----+----+----+----+----+----+ +
|
||||||
| more acks |
|
| more acks |
|
||||||
~ . . . ~
|
~ . . . ~
|
||||||
| |
|
| |
|
||||||
@ -1782,8 +1798,6 @@ TODO
|
|||||||
I2CP Changes Required
|
I2CP Changes Required
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
I2CP Options
|
I2CP Options
|
||||||
------------
|
------------
|
||||||
|
|
||||||
@ -1795,11 +1809,14 @@ New options in SessionConfig Mapping:
|
|||||||
|
|
||||||
crypto.encType=nnn The encryption type to be used.
|
crypto.encType=nnn The encryption type to be used.
|
||||||
0: ElGamal
|
0: ElGamal
|
||||||
|
4: This proposal.
|
||||||
Other values to be defined in future proposals.
|
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
|
SAM Changes Required
|
||||||
|
Reference in New Issue
Block a user