- Add ECConstants which looks for named curves and falls back to
explicitly defining the curves
- Add SigUtil with converters from Java formats (ASN.1, X.509,
PKCS#8) to I2P formats for Signatures and SigningKeys
- Move ASN.1 converter from DSAEngine to SigUtil, generalize
for variable length, add support for longer sequences,
add more sanity checks, add more exceptions
- Attempt to add BC as a Provider
- Add parameters (curve specs) to SigTypes
- Add support for ECDSA to DSAEngine and KeyGenerator
- Add KeyGenerator main() tests
- More javadocs
All is Java 1.5 compatible but the actual algorithms, curves,
and other support aren't necessarily present in any JVM.
Todo: More tests, more fallbacks for various JVMs
- 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