- Better handling of unsupported encryption in destinations
- Implement handling of unsupported encryption in router identities
- Banlist forever all RIs with unsupported encryption
- New negative cache of all dests with unsupported encryption
- New methods for destination lookup that will succeed even if
the LS is expired or encryption is unsupported
- Use new dest lookup so client will get the right error code
later, rather than failing with no LS when we really got it
but just couldn't verify it.
- Cleanups and javadocs
OCMOSJ: Detect unsupported encryption on dest and return the correct failure code
through I2CP to streaming to i2ptunnel
Streaming: Re-enable message status override, but treat LS lookup failure
as a soft failure for now.
HTTP Client: Add error page for unsupported encryption
* OCMOSJ:
- Increase timeout if we must lookup leaseset
* Streaming:
- Shorter expire time in TCBCache
- Don't fail a connection once it is up
- Log tweaks
- Set ports on many packets that were missing them
- Use connection throttling methods on pings too (ticket #1142)
- Add methods to set ports on pings
- Argument checking on ping methods
- Support i2cp.destination.sigType option in TunnelController and
I2PSocketManagerFactory
- Fixup of Destination.create() and Destination.size()
- Add generic off/len methods in DSAEngine, needed for streaming
- Fixup of sign/verify in streaming Packet
- Javadocs
of signing keys and signatures in RouterIdentities and Destinations.
Untested, not even for regressions, except with command line
using PrivateKeyFile.
Based on preliminary spec at http://zzz.i2p/topics/1442?page=1#p7524
Not done:
- Transport handshake signing
- Configuration of default type
- Specification of type in options to I2PSocketManagerFactory
- Specification of type in i2ptunnel
- Fix up caching of SigningPublicKey and P256 key cert
- Any non-default crypto type in the key cert
- Documentation
- Add support for b64 conversion in destLookup()
- Catch invalid message length sooner
I2Ping:
- Extend I2PTunnelClientBase so non-shared-client,
I2CP options, and other features will work
- Fixes for fields and threading
Streaming:
- Send LS with ping (broken since 0.9.2)
- Set the NO_ACK flag on pings and pongs
- Fix several 'increment of volatile is not atomic' all over
Remaining: UDP PeerState.java, to be checked in separately
- Comment out all of unused MessageStateMonitor