Packages that use net.i2p.router.crypto.ratchet
Package
Description
Low-level messages sent between routers - the Invisible Internet Network Protocol (I2NP).
The I2P router application handles I2P network communication.
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
Garlic message creation, parsing and handling, and the outbound message jobs: one-shot sends, source routing and delivery status handling.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.data.i2npClassDescription8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.routerClassDescriptionECIES+AEAD encryption engine providing New Session, New Session Reply, and Existing Session message handling
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.router.crypto.ratchetClassDescriptionPer-thread pool of payload block objects and the block list, to avoid allocation per outbound payload.Threaded factory for pre-calculating Elligator2-encoded X25519 key pairs to prevent Diffie-Hellman computation bottlenecks in critical pathsX25519 key pair with pre-calculated Elligator2-encoded public key.Elligator2 encoding and decoding for X25519 public keys to provide cryptographically indistinguishable representationsMultiplexed decryption engine supporting both ElGamal and ECIES+AEAD with adaptive ordering.Post-quantum hybrid decryption engine supporting both ECIES and ML-KEM with adaptive ordering.Post-quantum hybrid session key manager combining ECIES and ML-KEM operations.Multiplexed session key manager combining ElGamal and ECIES key management.X25519 public key with identifier for next session key exchange in ratchet protocol.Container for outbound ratchet encryption data including tag, key, nonce, and optional next session keys for message preparation The object returned from
SKM.consumeNextAvailableTag()to the engine encrypt.Acknowledgment block for ratchet payload.Acknowledgment request block for ratchet payload.Base class for blocks to be transmitted.Timestamp block for ratchet payload synchronization and timing.Garlic clove block for embedding I2NP messages in ratchet payload.Next session key block for ratchet key exchange operations.Padding block for ratchet payload size alignment and obfuscation.For all callbacks, recommend throwing exceptions only from the handshake.8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.Session key manager for ratchet encryption.Periodically cleans up stale ratchet sessions.The state for a crypto session to a single public key.Manages session tags and keys for a single ratchet direction with automatic key generation, supporting both inbound lookahead and on-demand outbound operationsCallback interface for ratchet acknowledgment notifications with expiration support.Session key with nonce and optional handshake state for ratchet message encryption and decryption operations, supporting nonces up to 65535Interface for managing session tag lifecycle in ratchet tag sets.Memory-efficient sparse array implementation for integer-to-object mappings using binary search lookup, optimized for collections with up to hundreds of itemsContainer for Noise protocol split keys that prevents duplicate HKDF calculations by sharing derived keys between engine and session key manager components. - Classes in net.i2p.router.crypto.ratchet used by net.i2p.router.messageClassDescription8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.Callback interface for ratchet acknowledgment notifications with expiration support.
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.router.networkdb.kademliaClassDescription8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.router.tunnel.poolClassDescription8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.Session key manager for ratchet encryption.
- Classes in net.i2p.router.crypto.ratchet used by net.i2p.router.web.helpers