diff --git a/i2p2www/spec/i2cp.rst b/i2p2www/spec/i2cp.rst index d91c801e..7621f138 100644 --- a/i2p2www/spec/i2cp.rst +++ b/i2p2www/spec/i2cp.rst @@ -3,7 +3,7 @@ I2CP Specification ================== .. meta:: :category: Protocols - :lastupdated: September 2019 + :lastupdated: October 2019 :accuratefor: 0.9.43 .. contents:: @@ -535,8 +535,10 @@ Contents - Bit order: 76543210 - Bit 0: 0 for everybody, 1 for per-client - Bits 3-1: Authentication scheme, if bit 0 is set to 1 for per-client, otherwise 000 - 000: DH client authentication (or no per-client authentication) - 001: PSK client authentication + + * 000: DH client authentication (or no per-client authentication) + * 001: PSK client authentication + - Bit 4: 1 if secret required, 0 if no secret required - Bits 7-5: Unused, set to 0 for future compatibility @@ -559,10 +561,10 @@ Contents [SigningPublicKey]_ (length as implied by sig type) 7. [PrivateKey]_ Decryption key - Only present if flag bit 0 is set to 1 + Only present if flag bit 0 is set to 1. A 32-byte ECIES_X25519 private key 8. [String]_ Lookup Password - Only present if flag bit 4 is set to 1 + Only present if flag bit 4 is set to 1. Notes diff --git a/i2p2www/spec/i2np.rst b/i2p2www/spec/i2np.rst index 1431bf22..7d07f672 100644 --- a/i2p2www/spec/i2np.rst +++ b/i2p2www/spec/i2np.rst @@ -3,8 +3,8 @@ I2NP Specification ================== .. meta:: :category: Protocols - :lastupdated: June 2019 - :accuratefor: 0.9.41 + :lastupdated: October 2019 + :accuratefor: 0.9.43 .. contents:: @@ -51,6 +51,8 @@ below. 0.9.38 DSM type bits 3-0 now contain the type; LeaseSet2 may be sent in a DSM + 0.9.36 NTCP2 transport support (if advertised in router address) + 0.9.28 RSA sig types disallowed 0.9.18 DSM type bits 7-1 ignored @@ -141,6 +143,14 @@ Standard (16 bytes): |type| short_expiration | +----+----+----+----+----+ + Short (NTCP2, 9 bytes): + + +----+----+----+----+----+----+----+----+ + |type| msg_id | short_expira- + +----+----+----+----+----+----+----+----+ + tion| + +----+ + type :: `Integer` length -> 1 byte purpose -> identifies the message type (see table below) @@ -177,8 +187,13 @@ Standard (16 bytes): Notes ````` * When transmitted over [SSU]_, the 16-byte standard header is not used. Only a - 1-byte type and a 4-byte expiration in seconds is included. The message id - and size are incorporated into various parts of the SSU data packet format. + 1-byte type and a 4-byte expiration in seconds are included. The message id + and size are incorporated in the SSU data packet format. + The checksum is not required since errors are caught in decryption. + +* When transmitted over [NTCP2]_, the 16-byte standard header is not used. Only a + 1-byte type, 4-byte message id, and a 4-byte expiration in seconds are included. + The size is incorporated in the NTCP2 data packet format. The checksum is not required since errors are caught in decryption. * The standard header is also required for I2NP messages contained in other @@ -986,7 +1001,8 @@ Used to wrap multiple encrypted I2NP Messages Contents ```````` -When decrypted, a series of `Garlic Cloves`_. +When decrypted, a series of `Garlic Cloves`_ and additional +data, also known as a Clove Set. Encrypted: @@ -1010,7 +1026,8 @@ Encrypted: $length bytes ElGamal encrypted data {% endhighlight %} -Unencrypted data: + +Decrypted data, also known as a Clove Set: .. raw:: html @@ -1332,6 +1349,9 @@ References .. [Integer] {{ ctags_url('Integer') }} +.. [NTCP2] + {{ spec_url('ntcp2') }} + .. [RouterIdentity] {{ ctags_url('RouterIdentity') }}