| 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._sessionKeyManager |
| 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) |
| 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 |
TransientSessionKeyManager
Implement 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 |
MuxedPQSKM
Post-quantum hybrid session key manager combining ECIES and ML-KEM operations
|
class |
MuxedSKM
Multiplexed session key manager combining ECIES and post-quantum key management
|
class |
RatchetSKM
Session 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)
Now unused, since we have to generate a reply token first in OCMOSJ but we don't know if tags are required yet.
|
(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) |