Package | Description |
---|---|
net.i2p |
Core I2P package, contains information about the I2P version and an entry point to access important elements.
|
net.i2p.router |
The I2P router application handles the I2P network communication.
|
net.i2p.router.client |
Implements the router side of the I2CP interface,
which is the API for applications to send and receive data through the router.
|
net.i2p.router.crypto |
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
|
net.i2p.router.crypto.ratchet |
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
|
net.i2p.router.dummy |
Dummy versions of things for testing.
|
net.i2p.router.message |
Creates and parses garlic messages.
|
net.i2p.router.networkdb.kademlia |
The network database, including implementation of floodfills.
|
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 |
MuxedSKM
Both.
|
class |
RatchetSKM |
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,
PublicKey target,
Hash from,
SessionKeyManager skm,
ReplyCallback callback)
ECIES_X25519 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.
|
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 both ELGAMAL_2048 and ECIES_X25519.
|
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 given session key manager, to expire in two minutes.
|
Constructor and Description |
---|
MessageWrapper.WrappedMessage(GarlicMessage msg,
SessionKeyManager skm,
PublicKey sentTo,
SessionKey sentKey,
TagSetHandle tsh) |