| Package | Description |
|---|---|
| net.i2p | Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services. |
| net.i2p.router | The I2P router application handles I2P network communication. |
| net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration. |
| net.i2p.router.crypto | Router-specific cryptographic operations and implementations for I2P security. |
| 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.dummy | Dummy implementations and stub classes for testing purposes. |
| 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. |
| Modifier and Type | Field and Description |
|---|---|
protected SessionKeyManager | I2PAppContext._sessionKeyManagerThe session key manager |
| Modifier and Type | Method and Description |
|---|---|
SessionKeyManager | I2PAppContext.sessionKeyManager()The session key manager which coordinates the sessionKey / sessionTag
data. |
| Modifier and Type | Method and Description |
|---|---|
abstract SessionKeyManager | ClientManagerFacade.getClientSessionKeyManager(Hash dest)Get the session key manager for a given client. |
| Modifier and Type | Method and Description |
|---|---|
SessionKeyManager | ClientManager.getClientSessionKeyManager(Hash dest)Return the client's SessionKeyManager
Use this instead of the RouterContext.sessionKeyManager()
to prevent correlation attacks across destinations |
SessionKeyManager | ClientManagerFacadeImpl.getClientSessionKeyManager(Hash dest)Return the client's current manager or null if not connected |
SessionKeyManager | ClientConnectionRunner.getSessionKeyManager()The current client's SessionKeyManager. |
| Modifier and Type | Class and Description |
|---|---|
class | TransientSessionKeyManagerImplement the session key management, but keep everything in memory (don't write to disk). |
| Modifier and Type | Method and Description |
|---|---|
byte[] | ElGamalAESEngine.decrypt(byte[] data,
PrivateKey targetPrivateKey,
SessionKeyManager keyManager)Decrypt the message using the given private key
and using tags from the specified key manager. |
byte[] | ElGamalAESEngine.decryptFast(byte[] data,
PrivateKey targetPrivateKey,
SessionKeyManager keyManager)Tags only. |
byte[] | ElGamalAESEngine.decryptSlow(byte[] data,
PrivateKey targetPrivateKey,
SessionKeyManager keyManager)Full ElG only. |
| Modifier and Type | Class and Description |
|---|---|
class | MuxedPQSKMPost-quantum hybrid session key manager combining ECIES and ML-KEM operations |
class | MuxedSKMMultiplexed session key manager combining ECIES and post-quantum key management |
class | RatchetSKMSession key manager for ratchet encryption. |
| Modifier and Type | Method and Description |
|---|---|
SessionKeyManager | DummyClientManagerFacade.getClientSessionKeyManager(Hash _dest) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static GarlicMessage | GarlicMessageBuilder.buildECIESMessage(RouterContext ctx,
GarlicConfig config,
Hash from,
Destination to,
SessionKeyManager skm,
ReplyCallback callback)ECIES_X25519 and PQ only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
int lowTagsThreshold,
SessionKeyManager skm)ELGAMAL_2048 only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
SessionKeyManager skm)ELGAMAL_2048 only
Called by OCMJH |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
SessionKeyManager skm)ELGAMAL_2048 only. |
(package private) CloveSet | GarlicMessageParser.getGarlicCloves(GarlicMessage message,
PrivateKey elgKey,
PrivateKey ecKey,
SessionKeyManager skm)Supports both ELGAMAL_2048 and ECIES_X25519. |
(package private) CloveSet | GarlicMessageParser.getGarlicCloves(GarlicMessage message,
PrivateKey encryptionKey,
SessionKeyManager skm)Supports ELGAMAL_2048, ECIES_X25519, and PQ |
| Modifier and Type | Method and Description |
|---|---|
static MessageWrapper.OneTimeSession | MessageWrapper.generateSession(RouterContext ctx,
SessionKeyManager skm,
long expiration,
boolean forceElG)Create a single key and tag, for receiving a single encrypted message,
and register it with the client's session key manager, to expire in the time specified. |
| Constructor and Description |
|---|
WrappedMessage(GarlicMessage msg,
SessionKeyManager skm,
PublicKey sentTo,
SessionKey sentKey,
TagSetHandle tsh)Wrapped message |