- Implement additional CA loading
- Provide facility to reuse SSL state for speed
- Provide facility to store previously untrusted certificates
- Add SSL reseed hosts, prefer them by default
- Reseed message cleanup
* build.xml:
- Add www.cacert.org cert to the installer and updater so
SSL on a.netdb.i2p2.de and c.netdb.i2p2.de will work
- Cleanup, fix distclean error in older ants.
- Shim in 3 new abstract classes
SimpleDataStructure, KeysAndCert, and DatabaseEntry
===========
Right now, everything in net.i2p.data extends DataStructureImpl.
There are several goals for adding some intermediate abstract classes,
between DataStructureImpl and the concrete classes:
1) Merge common code
2) Make the simple cases (a single byte array) more efficient
by adding a common base class.
I'm calling this one SimpleDataStructure.
3) Make a common base class for Destination and RouterIdentity
since they are almost exactly the same thing.
Consolidate the getters/setters and hash functions here.
I'm calling this one KeysAndCert.
4) Make a common base class for LeaseSet and RouterInfo so
so netDb and I2NP can handle them easier, without doing
"instanceof" all over the place.
Consolidate the hash, signature, and routing key functions here.
I'm calling this one DatabaseEntry.
5) Make it easier to add more object caching.
The additional classes are retrofit
above many of the data types:
DataStructureImpl (unchanged)
-------------------
ByteArray
Certificate
Lease
Payload
RouterAddress
TunnelId
SimpleDataStructure (new)
-------------------------
Hash
PrivateKey
PublicKey
SessionKey
SessionTag (was ByteArray)
Signature
SigningPrivateKey
SigningPublicKey
KeysAndCert (new)
-----------------
Destination
RouterIdentity
DatabaseEntry (new)
-------------------
LeaseSet
RouterInfo
- Add new option i2cp.messageReliability=none, which prevents the
router from sending MessageStatusMessages back in reply to an
outbound SendMessageMessage. Since the streaming lib always ignored
the MSMs anyway, make it the default for streaming.
This will reduce the I2CP traffic significantly.
MSM handling now avoided, but it is still fairly broken, see
comments in I2PSessionImpl2.
- Cleanups, javadoc, rate reduction
- Convert all ArrayList caching to LBQs in YKGenerator,
HMACGenerator, and AESKeyCache.
- Change DSAEngine params from Hash to new SHA1Hash, since
these were really 20 byte hashes, not 32 byte Hashes.
- Add stats to track YKGenerator caching success
- Fix YKGenerator precalculation to be much more useful by
increasing the cache size and dramatically shortening the delay
- Option cleanups
- YKGenerator cleanups
- Mark HMAC256Generator unused
* Base64: comment out some unused methods
* Remove huge whitespace in CryptoConstants
* ElGamalAESEngine:
- Reduce rates
- Check number of tags earlier