Packages that use SessionKeyManager
Package
Description
Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services, centered on I2PAppContext.
The I2P router application handles I2P network communication.
Router-side implementation of the Invisible Internet Client Protocol (I2CP): client sessions over plain or TLS sockets, message delivery, and lease and tunnel management on behalf of clients.
Router-specific cryptography: ElGamal+AES garlic encryption (ElGamalAESEngine), session key and tag caching for repeated peer communication (TransientSessionKeyManager), router-family shared keys (FamilyKeyCrypto), and the ratchet and pqc subpackages.
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
Simplified fake implementations of router interfaces (comm system and friends) for testing and embedded builds.
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.
Uses of SessionKeyManager in net.i2p
Fields in net.i2p declared as SessionKeyManagerModifier and TypeFieldDescriptionprotected SessionKeyManagerI2PAppContext._sessionKeyManagerThe session key manager.Methods in net.i2p that return SessionKeyManagerModifier and TypeMethodDescriptionI2PAppContext.sessionKeyManager()The session key manager which coordinates the sessionKey / sessionTag data.Uses of SessionKeyManager in net.i2p.router
Methods in net.i2p.router that return SessionKeyManagerModifier and TypeMethodDescriptionabstract SessionKeyManagerClientManagerFacade.getClientSessionKeyManager(Hash dest) The session key manager for a given client.Uses of SessionKeyManager in net.i2p.router.client
Fields in net.i2p.router.client declared as SessionKeyManagerModifier and TypeFieldDescriptionprivate SessionKeyManagerClientConnectionRunner._sessionKeyManagerUsed for all sessions, which must all have the same crypto keys.Methods in net.i2p.router.client that return SessionKeyManagerModifier and TypeMethodDescriptionClientManager.getClientSessionKeyManager(Hash dest) Return the client's SessionKeyManager Use this instead of theI2PAppContext.sessionKeyManager()to prevent correlation attacks across destinations.ClientManagerFacadeImpl.getClientSessionKeyManager(Hash dest) Return the client's current manager or null if not connected.ClientConnectionRunner.getSessionKeyManager()The current client's SessionKeyManager.Uses of SessionKeyManager in net.i2p.router.crypto
Subclasses of SessionKeyManager in net.i2p.router.cryptoModifier and TypeClassDescriptionclassImplement the session key management, but keep everything in memory (don't write to disk).Methods in net.i2p.router.crypto with parameters of type SessionKeyManagerModifier and TypeMethodDescriptionbyte[]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.Uses of SessionKeyManager in net.i2p.router.crypto.ratchet
Subclasses of SessionKeyManager in net.i2p.router.crypto.ratchetModifier and TypeClassDescriptionclassPost-quantum hybrid session key manager combining ECIES and ML-KEM operations.classMultiplexed session key manager combining ElGamal and ECIES key management.classSession key manager for ratchet encryption.Uses of SessionKeyManager in net.i2p.router.dummy
Methods in net.i2p.router.dummy that return SessionKeyManagerUses of SessionKeyManager in net.i2p.router.message
Methods in net.i2p.router.message with parameters of type SessionKeyManagerModifier and TypeMethodDescriptionprivate static PayloadGarlicConfigOutboundClientMessageJobHelper.buildAckClove(RouterContext ctx, Hash from, TunnelInfo replyToTunnel, long replyToken, long expiration, SessionKeyManager skm) Build a clove that sends a DeliveryStatusMessage to us.(package private) static GarlicMessageGarlicMessageBuilder.buildECIESMessage(RouterContext ctx, GarlicConfig config, Hash from, Destination to, SessionKeyManager skm, ReplyCallback callback) ECIES_X25519 and PQ only.static GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm) ELGAMAL_2048 only.static GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm) ELGAMAL_2048 only Called by OCMJH.static GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm) ELGAMAL_2048 only.private static GarlicConfigOutboundClientMessageJobHelper.createGarlicConfig(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, boolean requireAck, LeaseSet bundledReplyLeaseSet, SessionKeyManager skm) Make the top-level config, with a data clove, an optional ack clove, and an optional leaseset clove.(package private) CloveSetGarlicMessageParser.getGarlicCloves(GarlicMessage message, PrivateKey encryptionKey, SessionKeyManager skm) Supports ELGAMAL_2048, ECIES_X25519, and PQ.(package private) CloveSetGarlicMessageParser.getGarlicCloves(GarlicMessage message, PrivateKey elgKey, PrivateKey ecKey, SessionKeyManager skm) Supports both ELGAMAL_2048 and ECIES_X25519.private static GarlicMessageOutboundClientMessageJobHelper.wrapDSM(RouterContext ctx, SessionKeyManager skm, DeliveryStatusMessage dsm, long expiration) Wrap a DSM in a GarlicMessage, add the fake session to the SKM.Uses of SessionKeyManager in net.i2p.router.networkdb.kademlia
Fields in net.i2p.router.networkdb.kademlia declared as SessionKeyManagerModifier and TypeFieldDescriptionprivate SessionKeyManagerMessageWrapper.WrappedMessage.skmThe session key manager used for wrapping.Methods in net.i2p.router.networkdb.kademlia with parameters of type SessionKeyManagerModifier and TypeMethodDescriptionMessageWrapper.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.Constructors in net.i2p.router.networkdb.kademlia with parameters of type SessionKeyManagerModifierConstructorDescription(package private)WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh) Wrapped message.Uses of SessionKeyManager in net.i2p.router.tunnel.pool
Methods in net.i2p.router.tunnel.pool that return SessionKeyManagerModifier and TypeMethodDescriptionprivate SessionKeyManagerTestJob.getSessionKeyManager()Returns the session key manager for test tags.Uses of SessionKeyManager in net.i2p.router.web.helpers
Methods in net.i2p.router.web.helpers with parameters of type SessionKeyManagerModifier and TypeMethodDescriptionprivate static voidClientSKMDebugHelper.legacySection(Writer out, String title, SessionKeyManager skm) Pre-ratchet SKMs keep their own tag-status rendering.