- Prep for new signature algorithms; new SigType enum;
Signature, SigningPublicKey, SigningPrivateKey store type
- New Hash384 and Hash512 classes
- Remove length field in SimpleDataStructure
- New SU3File generator/verifier/extractor
- Don't delay the refiller if we need more (don't limit max output)
- Add FortunaRandomSource.main() to output to stdout for testing e.g. with dieharder
- Move more cleanups to finally block
- Bounded wait
- Don't ignore InterruptedExceptions, wrap in I2PSessionException and throw
- More finals
- Synch tweaks
- New varargs method in Translate
- New TranslateReader to translate static files on-the-fly using _("") tagging
- Tag proxy error pages for TranslateReader
- Drop static translated proxy error pages
- Add new i2ptunnel bundle for the proxy alone, shipped in the jar
- Use TranslateReader in HTTP proxy for error pages
- Move HTTP proxy strings from the web *war) to proxy (jar) bundle so they will be loaded
- Initial translations created by msgmerge from i2ptunnel and routerconsole po files, un-fuzzied
- I2PSocketManagerFactory: New createDisconnectedManager(), javadocs
- I2PSessionImpl: Rewrite state management and locking, prevent multiple
connect() calls, but allow disconnect() to interrupt connect()
- I2PSimpleSession: Changes to match I2PSessionImpl
- I2PTunnelServer: Don't connect in constructor, use createDisconnectedManager()
for a final manager, finals and cleanups
Lightly tested.
Todo: I2PTunnelClientBase
- Ignore padding beyond last multiple of 16 (prep for obfuscation)
- Comment out xor with 0 (version)
- Don't need to zero IV buf before overwriting
* AES:
- Decrypt speedup by XOR in place
- Log if decrypt not mod 16
- Add new I2CP RequestVariableLeaseSetMessage
- Send RVLSM if client supports it; handle on client side;
disabled by default for the moment.
- Add LeaseSet.getLatestLeaseDate()
- Check latest, not earliest, date too far in future in KNDF.validate()
- Check latest date too far in past in KNDF.validate()
- Only check gateway and tunnel ID for equality in OCMOSJ lease caching to reduce churn
- Split up KNDF.validate(RI) for efficiency, don't need to check
signature, netid, etc. before lookups, only on store
- Remove enforeNetID config
- Fix major bug causing newer leasesets to be treated as older, and not stored or published
- Increase max adjustment time of earliest lease
- TransientDataStore cleanups
- RouterInfo and LeaseSet equals() speedups
- Fix bug that kept reverse index from being updated
- Bump DB version to 3 to trigger repopulation of the reverse index
- Make metaindex final
- Add freelist check to the main() test
- Fix debug netDb.alwaysQuery setting so it works again, and always
sends to that router first (move from FNDF to IterativeSearchJob)
- Don't reuse DLM reply key/tag
- FloodfillPeerSelector: Note unused kbucket param in javadocs
- Debug logging for encrypted DSRM/DSM
- Add support for requesting an encrypted reply
* NetDB:
- Add support for encrypted DatabaseSearchReplyMessage and DatabaseStoreMessage
in response to a DatabaseLookupMessage
* PRNG: Cleanups using Collections.singletonMap()
* Router utils: New RemovableSingletonSet
* TransientSessionKeyManager:
- Support variable expiration for inbound tag sets
- Several efficiency improvements
* VersionComparator: Add static method, use most places
- Deprecate some setters
- Add warning about setCost()
- Change cost storage from int to short
- Cost range checks
* NTCP:
- Republish even if only changing cost
* Transports:
- Sort multiple peer addresses by cost, with adjustment for local IPv6 preference
- Add default IPv6Config for ease of changing later
* RouterAddress and RouterInfo toString() cleanups; don't cache RI in _stringified
* NTCP: Fix publishing address when host specified but interface is not
* log tweaks