NetDb: Drop all-zero lookups and stores, add stats
SSU:
- Fix debug logging of dumped packets
- Drop sessions with bad clock skew, banlist peer, add stats
- Drop sessions with corrupt DSM, banlist peer, add stats
Log tweaks
to reduce object churn, we only need one
Add DeliveryInstructions.create() to return immmutable
local instructions, to reduce object churn
Minor cleanups
Move some data structures away from ByteArray; offsets were always zero
- New BuildRequestRecord constructors
- BuildRequestRecord field becomes final byte[222]
- IV becomes byte[16]
- Build record becomes EncryptedBuildRecord
Remove extra copy in BuildRequestRecord.encryptRecord()
Remove unused BuildRequestRecord.readOurIdentityMatches()
- Move from core to RouterKeyGenerator in router.jar
- Leave RoutingKeyGenerator as a simple abstract class
- DatabaseEntry now uses timestamp instead of mod data
to determine if mod data has changed. Don't expose
mod data to DatabaseEntry any more.
- I2PAppContext.routingKeyGenerator() now returns null;
you must be in RouterContext to get a generator.
- Verify crypto key pair in LS
- Verfiy same dest as before in LS
Router: Don't try to use an unavailable sig type for the router,
even if it's the default
RouterInfo: Work around unsupported raw signatures for
RI Ed25519 sig type
Router:
- Use eepPriv.dat format for router keys file (thx orignal)
- Consolidate router keys readin code
- Update killKeys file list
RouterPrivateKeyFile: New extension to add getRouterIdentity()
- New router.sigType config
- Generate / regenerate router keys based on config
- New router.keys2 file format for sig types and padding
- Fix RouterInfo.readBytes() signature verification with sig types
- Catch unset padding in KeysAndCert.writeBytes()
- Catch key errors in ReadRouterJob
- Show RI sig type on /netdb in console
- Move some things from Router to startup classes
- Startup classes package private
- Buffer readin of key files
- Remove configurability of router.info and router.keys file locations
- 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