Commit Graph

5632 Commits

Author SHA1 Message Date
zzz
2b43e4e4b5 Router: Rekey all Android/ARM routers 2021-09-27 10:26:03 -04:00
zzz
d7c89be9a2 Tunnels: Implement Bloom filter for short TBM
Reduce TBM Bloom filter size and interval for EC routers
2021-09-25 09:12:15 -04:00
zzz
d466fd6799 UDP: Use a single PacketBuilder everywhere 2021-09-22 12:44:28 -04:00
zzz
116ec88f56 UDP: Replace ACKSender thread with per-PeerState delayed ack timers
(low latency improvements part 2)

Timer is created in PeerState messageFullyReceived() and messagePartiallyReceived().
Don't send a delayed ack-only packet if acks are sent in a data packet first.

Reviewed and tested by zlatinb.
Related MRs: !36 !37 !38
2021-09-22 12:12:16 -04:00
f14b7d53a3 reduce the delay in ACKs to the minimum of rtt/2 and the constant 2021-09-17 17:32:37 +01:00
3355daa334 introduce a lock just for _sendWindowBytesRemaining field 2021-09-17 17:31:45 +01:00
zzz
ea1eac2343 Tunnels: Enable sending short tunnel build messages,
remove debug settings
2021-08-26 10:23:13 -04:00
zzz
569e035bfd Router: Increase rekey probability to 1 in 4 2021-08-26 09:57:16 -04:00
zzz
e340fc885d 1.5.0 / API 0.9.51 release 2021-08-23 10:34:39 -04:00
zzz
63b3da265b javadoc fix 2021-08-23 09:21:24 -04:00
zzz
03f2cbfc89 bump -10 for review 2021-08-20 13:58:51 -04:00
zzz
30aab77047 Pull translations from Transifex 2021-08-20 12:56:07 -04:00
zzz
de73dec4b8 Crypto: Fix corruption of EC and DSA private keys on Java 17
Update test to try all key types
2021-08-13 10:15:24 -04:00
zzz
4938e13f0e poupdate-source 2021-08-11 11:38:49 -04:00
zzz
7d1656c20f UPnP: Fix construction of absolute URLs
where the service relative URL is an absolute path
and the location absolute URL is below the top level.
Fixes communication with "Freebox" UPnP routers.
ref: http://zzz.i2p/topics/3157
2021-08-07 08:39:05 -04:00
zzz
2cb0650980 javadoc fix 2021-08-03 08:37:41 -04:00
zzz
877b1f5f56 Build: Add resources to dependencies
remove unused systray icons
2021-07-30 10:35:12 -04:00
zzz
c652d597c9 Tunnels: Prop. 157 updates
- Enable handling
- Remove option to disable garlic reply
- Add option to enable sending
2021-07-29 09:51:21 -04:00
zzz
2edac95be9 Tunnels: Updates for proposal 157
- Fix compatibility check for OB tunnels
- Add test code to send STBM to explicit peers
- Skip too-many-tunnels check when in test mode
- Cleanups and Log tweaks
2021-07-28 11:09:51 -04:00
zzz
6eb1510324 Transport: Fix UPnP IPv6 NPE
ref: http://zzz.i2p/topics/3153
2021-07-23 11:07:59 -04:00
zzz
24ef2b5189 Prop. 157 fix for ChaCha20 IV
after testing with i2pd
2021-07-22 15:15:26 -04:00
zzz
2b3a0f0232 bump -5 2021-07-20 10:52:33 -04:00
zzz
3244fe1b0f Tunnels: Add check for prop. 157 layer enc. type 2021-07-20 10:44:38 -04:00
zzz
3bf3a4ff9d NetDB: Increase min ff version to 0.9.38
previously was .38 for LS2 stores/lookups only
2021-07-20 10:26:17 -04:00
zzz
426fbcbfa3 Prop 157 updates
- Fix registration of reply key/tag with SKM
- Allow OTBRM down client tunnel
- Disable tunnel hop throttles for allowLocal
- Various cleanups
2021-07-18 14:22:57 -04:00
zzz
a7d9ca920f Prop 157 updates
- Don't require AES keys for short records
- Derive keys from noise ck
- Use derived keys to garlic-encrypt reply at OBEP
- Register reply key with SKM
- Only use short message for client tunnels if client supports EC
- Set nonce for chacha/poly reply record
- Add tagsReceived() for single tag to MuxedSKM
- Add extended TunnelCreatorConfig.toStringFull()
- BRR toString() enhancements
- Test enhancements
2021-07-16 12:28:04 -04:00
zzz
1e7b13db66 HopConfig: Remove unused reply fields
previously moved to TunnelCreatorConfig
toString() enhancements
2021-07-14 10:51:57 -04:00
zzz
bc13f64403 Prop. 157 javadoc updates 2021-07-13 11:32:11 -04:00
zzz
617fff175e Tunnels: Prop. 157 updates
- remove ITBM
- remove plaintext slot from OTBRM
2021-07-13 09:47:30 -04:00
zzz
9c74cafd92 UPnP: IPv6 address validation fix 2021-07-02 07:51:01 -04:00
zzz
b7322e1647 Tests: Add resources to test jars
Fix duplicate classes in i2ptest.jar
Change classpath in routertest.jar to point to i2ptest.jar
2021-06-22 10:00:44 -04:00
zzz
bb19fcdac3 Tunnels: Changes for new build messages (Prop. 157)
- Remove ITBM, change record length from 236 to 218 bytes
- Fix check of blank record in BuildReplyHandler
- Fix offset constants for short record in BuildRequestRecord
- Fix BuildMessageTestStandalone test 6 (short inbound)
- ITBM class removal TODO
2021-06-22 09:06:40 -04:00
zzz
d71a472367 fix deprecation in test 2021-06-21 12:06:29 -04:00
zzz
970be35084 Transport: Remove 4/6 caps config
since 0.9.50 is out.
Log tweaks
2021-06-18 09:23:22 -04:00
zzz
c65b4689d0 SSU: Fix handling of bad peer test responses
Always abort test with an unknown result,
to prevent false firewalled indication.
Log tweaks
2021-06-18 09:11:42 -04:00
zzz
7628168c3d Tunnels: Consolidate tunnel key generation
in BuildRequestor.createTunnelBuildMessage()
to prep for derived keys in prop. 157
2021-06-17 12:58:46 -04:00
zzz
67288f27b6 Crypto: Increase key pools for slow machines
Increase EDH key pool for all
Return unused EDH keys to XDH pool
ref: http://zzz.i2p/topics/3139
2021-06-16 09:50:04 -04:00
zzz
f9e8fa8150 Tunnels: Continue work on prop. 157
- Add new internal-only ShortTunnelBuildReplyMessage,
  for processing of STBM as a reply.
- Add support for inbound tunnel tests to TunnelBuildMessageStandalone.
  The ITBM test is WIP.
- Add checks for unset plaintext record in ITBM and OTBRM
2021-06-13 15:28:48 -04:00
zzz
aa0e0b3a62 Tunnels: Change class of TunnelPoolSettings random key
from Hash to SessionKey. It's not a Hash.
2021-06-13 11:34:17 -04:00
zzz
4c6aa8cfc1 Tests: Add serialize/deserialize test for STBM/OTBRM 2021-06-13 10:52:42 -04:00
zzz
010d1a9953 Tunnels: Continue work on new build messages (proposal #157)
WIP, still disabled, proposal not complete

- Use ChaCha20 to encrypt/decrypt records
- Add OTBRM methods for plaintext record
- Add OTBRM checks for correct plaintext slot number
- Add BRR checks to prevent use of nonexistent AES key/IV
- Set plaintext reply at OBEP in BuildHandler
- Allow OTBRM in InboundMessageDistributor
- Remove timing measurements in BuildMessageProcessor.decrypt()
- Add test to BuildMessageTestStandalone for outbound build
- Add check for all replies to BuildMessageTestStandalone
- Log tweaks
2021-06-13 10:31:02 -04:00
zzz
3fbfb689af Tests: Add ECIES test to BuildMessageTestStandalone 2021-06-12 16:20:07 -04:00
zzz
2bb3cf046d Tests: Fix BuildMessageTestStandalone 2021-06-12 15:42:47 -04:00
zzz
988e0e796f Tests: Fixup tunnel test after build classes move 2021-06-12 10:45:18 -04:00
zzz
d93e16e52e UPnP: Bind to IPv6 addresses for search responses
Older miniupnpd 2.0 will send a SSDP search response with an IPv6 location to a IPv4 address,
but newer ones 2.2 won't. So we need to also bind to an IPv6 address for the SSDP search
to receive the router's IPv6 location. Then we can bind to our public IPv6 address
for a port forward and it will work when miniupnpd is configured for "secure".

Also, don't bind a POST request to a mismatched v4/v6 address.
2021-06-11 09:29:16 -04:00
zzz
4f12081b59 Tunnels: Move 3 build classes from tunnel to tunnel/pool
and make package private, so all the tunnel build classes are in one place.
2021-06-08 12:47:28 -04:00
zzz
2f371301ad NetDB: Prevent rare deadlock in rebuildRouterInfo()
by making it always nonblocking.
as reported by drzed
2021-06-08 10:06:41 -04:00
zzz
c2c922b665 Tunnels: Switch from SHA256 to SipHash for arbitrary deterministic sort
of peers. For efficiency.
ref: http://zzz.i2p/topics/3082
thx: jogger
2021-06-08 09:44:17 -04:00
zzz
aee9a3f639 Tunnels: Extend use of high cap peers in expl. tunnels at startup, after extended downtime 2021-06-08 09:28:15 -04:00
zzz
d9c98580d1 Continue implementation of short tunnel build messages (proposal 157)
- Generate and parse short record format
- Encrypt and decrypt short records
- Register handlers for 3 new messages ITBM/STBM/OTBRM
- Send ITBM/STBM if all hops support it (disabled)
- Reply with OTBRM at OBEP if STBM received (disabled)
- Send STBM at IBGW if ITBM received (disabled)
- Add logic for when to send new messages
- ChaCha encryption of other short records
- Fix compare logic in ITBM parser (ticket #2814)

All is still preliminary, disabled, untested; proposal is still incomplete

Still todo:
- Fill in plaintext record for ITBM/OTBRM
- OTBRM key/tag
2021-06-08 08:43:40 -04:00