## Uses of Class
net.i2p.crypto.SessionKeyManager

- Packages that use SessionKeyManager
  Package | Description
  --- | ---
  net.i2p | Core I2P package, contains information about the I2P version and an entry point to access important elements.
  net.i2p.crypto | These classes provide a number of low-level cryptographic routines.
  net.i2p.router | The I2P router application handles the I2P network communication.
  net.i2p.router.client |
  net.i2p.router.message |
  net.i2p.router.networkdb.kademlia |

- - ### Uses of SessionKeyManager in net.i2p

    Methods in net.i2p that return SessionKeyManager
    Modifier and Type | Method and Description
    --- | ---
    `SessionKeyManager` | I2PAppContext.`sessionKeyManager()` The session key manager which coordinates the sessionKey / sessionTag data.

  - ### Uses of SessionKeyManager in net.i2p.crypto

    Subclasses of SessionKeyManager in net.i2p.crypto
    Modifier and Type | Class and Description
    --- | ---
    `class` | `TransientSessionKeyManager` Implement the session key management, but keep everything in memory (don't write to disk).

    Methods in net.i2p.crypto with parameters of type SessionKeyManager
    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.

  - ### Uses of SessionKeyManager in net.i2p.router

    Methods in net.i2p.router that return SessionKeyManager
    Modifier and Type | Method and Description
    --- | ---
    `SessionKeyManager` | DummyClientManagerFacade.`getClientSessionKeyManager(Hash _dest)`
    `abstract SessionKeyManager` | ClientManagerFacade.`getClientSessionKeyManager(Hash dest)`

  - ### Uses of SessionKeyManager in net.i2p.router.client

    Methods in net.i2p.router.client that return SessionKeyManager
    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()` current client's sessionkeymanager

  - ### Uses of SessionKeyManager in net.i2p.router.message

    Methods in net.i2p.router.message with parameters of type SessionKeyManager
    Modifier and Type | Method and Description
    --- | ---
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, boolean forceElGamal, SessionKeyManager skm)` called by netdb
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)` called by OCMJH
    `CloveSet` | GarlicMessageParser.`getGarlicCloves(GarlicMessage message, PrivateKey encryptionKey, SessionKeyManager skm)`

  - ### Uses of SessionKeyManager in net.i2p.router.networkdb.kademlia

    Constructors in net.i2p.router.networkdb.kademlia with parameters of type SessionKeyManager
    Constructor and Description
    `MessageWrapper.WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh)`