| Package | Description |
|---|---|
| net.i2p.data.i2np | This package defines the low-level messages sent between routers,
called Invisible Internet Network Protocol (I2NP). |
| net.i2p.router | The I2P router application handles I2P network communication. |
| net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol
(I2P proposal 144), providing forward secrecy and enhanced security
for I2P transport communications. |
| net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications. |
| net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P. |
| Class and Description |
|---|
| RatchetSessionTag 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 |
| Class and Description |
|---|
| ECIESAEADEngine ECIES+AEAD encryption engine providing New Session, New Session Reply, and Existing Session message handling
No, this does not extend ElGamalAESEngine or AEADEngine or CryptixAEADEngine. |
| Class and Description |
|---|
| Elg2KeyFactory Threaded factory for pre-calculating Elligator2-encoded X25519 key pairs to prevent Diffie-Hellman computation bottlenecks in critical paths
Try to keep DH pairs at the ready. |
| Elg2KeyPair X25519 key pair with pre-calculated Elligator2-encoded public key |
| MuxedPQSKM Post-quantum hybrid session key manager combining ECIES and ML-KEM operations |
| MuxedSKM Multiplexed session key manager combining ECIES and post-quantum key management |
| NextSessionKey X25519 public key with identifier for next session key exchange in ratchet protocol |
| RatchetEntry 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. |
| RatchetPayload.Block Base class for blocks to be transmitted. |
| RatchetPayload.PayloadCallback For all callbacks, recommend throwing exceptions only from the handshake. |
| RatchetSessionTag 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 |
| RatchetSKM Session key manager for ratchet encryption. |
| RatchetTagSet Manages session tags and keys for a single ratchet direction with automatic key generation, supporting both inbound lookahead and on-demand outbound operations
For outbound, uses very little memory. |
| ReplyCallback Callback interface for ratchet acknowledgment notifications with expiration support |
| SessionKeyAndNonce Session key with nonce and optional handshake state for ratchet message encryption and decryption operations, supporting nonces up to 65535
This is what is returned from RatchetTagSet.consume(). |
| SessionTagListener Interface for managing session tag lifecycle in ratchet tag sets |
| SparseArray Memory-efficient sparse array implementation for integer-to-object mappings using binary search lookup, optimized for collections with up to hundreds of items |
| SplitKeys Container for Noise protocol split keys that prevents duplicate HKDF calculations by sharing derived keys between engine and session key manager components |
| Class and Description |
|---|
| RatchetSessionTag 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 |
| ReplyCallback Callback interface for ratchet acknowledgment notifications with expiration support |
| Class and Description |
|---|
| RatchetSessionTag 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 |