## Uses of Class
net.i2p.I2PAppContext

- Packages that use I2PAppContext
  Package | Description
  --- | ---
  com.vuze.plugins.mlab | Integration layer for running the M-Lab Network Diagnostic Tool (NDT) within the I2P router console.
  gnu.crypto.prng | Fortuna Pseudo-Random Number Generator (PRNG) from GNU Crypto, updated and modified for I2P's cryptographic operations.
  i2p.susi.dns | The SusiDNS webapp, which is the user interface for the addressbook application and the local naming service (hosts database) implemented in net.i2p.client.naming.
  i2p.susi.webmail | The SusiMail webapp, which implements a webmail interface, POP3 and SMTP client-side protocols, and local caching of email.
  net.i2p | Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services.
  net.i2p.app | Interfaces for classes to be started and stopped via clients.config.
  net.i2p.apps.systray | System tray integration and URL launcher for the I2P router console.
  net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
  net.i2p.client.datagram | Provides a standard way for reading and writing messages transferred over I2P so that recipient has an authenticated mechanism to reply to it.
  net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client side of the I2CP protocol for applications communicating through I2P.
  net.i2p.client.naming | Naming service for resolving human-readable names to I2P destinations, providing a standard interface without JNDI complexity.
  net.i2p.client.streaming | API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.crypto | Core cryptographic primitives and algorithms used throughout I2P.
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).
  net.i2p.data.router | Router-specific data structures and identity management classes for I2P.
  net.i2p.desktopgui | Desktop graphical interface for managing I2P router lifecycle from the system tray.
  net.i2p.desktopgui.i18n | Internationalization (i18n) support for the Desktop GUI.
  net.i2p.i2pcontrol | I2P Control provides a JSON-RPC 2.0 interface for controlling and monitoring the I2P router.
  net.i2p.i2pcontrol.security | Security components for I2P Control authentication and authorization.
  net.i2p.i2pcontrol.servlets.configuration | Configuration management for I2P Control settings and parameters.
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.access | Definition-based incoming connection filter for I2PTunnel, allowing fine-grained access control for server tunnels.
  net.i2p.i2ptunnel.localServer | Lightweight HTTP server for serving static resources (CSS, images) used by I2PTunnel HTTP client proxy error pages.
  net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.
  net.i2p.i2ptunnel.streamr | Special-purpose tunnels for streaming UDP clients and servers, optimized for audio and video streaming applications.
  net.i2p.i2ptunnel.udpTunnel | UDP tunnel implementation for I2PTunnel.
  net.i2p.i2ptunnel.ui | Public API classes for programmatic tunnel configuration and management.
  net.i2p.i2ptunnel.web | Web-based user interface for managing I2PTunnel configurations, implemented as a webapp packaged in i2ptunnel.war.
  net.i2p.jetty | I2P integration layer for the Jetty web server, providing embedded Jetty startup, configuration, and logging integration with the I2P router.
  net.i2p.kademlia | Generic Kademlia distributed hash table implementation supporting multiple hash algorithms (SHA1, SHA256, etc.).
  net.i2p.router | The I2P router application handles I2P network communication.
  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.naming | The default naming service implementation for the I2P router, using the BlockfileNamingService based on the Metanotion BlockFile Database.
  net.i2p.router.news | Classes to parse the I2P news format, which follows the Atom standard with additional metadata for the I2P update notification feature.
  net.i2p.router.startup | The I2P startup package loads configuration when I2P is started.
  net.i2p.router.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer coordination in the I2P network.
  net.i2p.router.tasks | Periodic maintenance tasks and background jobs for I2P router operations.
  net.i2p.router.time | Time synchronization and clock management for I2P router using NTP.
  net.i2p.router.transport | Transport layer implementations and management for I2P network communication.
  net.i2p.router.transport.crypto | Cryptographic operations for I2P transport protocols, including key exchange algorithms, session key management, and transport-layer encryption.
  net.i2p.router.transport.ntcp | The NTCP (New TCP) transport for I2P, allowing I2P messages to be passed over TCP connections.
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU' or Secure Semi-reliable UDP transport) for I2P, allowing I2P messages to be passed over UDP connections.
  net.i2p.router.tunnel | Core tunnel management, message processing, and encryption for I2P's anonymous routing system.
  net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system.
  net.i2p.router.util | Utility classes and helper functions used throughout the I2P router.
  net.i2p.router.web | The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war.
  net.i2p.router.web.helpers | Helpers and handlers for the router console user interface, with these classes supporting the webapp in routerconsole.war.
  net.i2p.sam | The SAM (Simple Anonymous Messaging) client API.
  net.i2p.sam.client | Demo and test client classes.
  net.i2p.stat | Statistical collection and analysis framework used throughout the I2P router for adaptive operation, performance monitoring, and debugging.
  net.i2p.util | Core utility classes and helper functions used throughout the I2P router and applications.
  org.cybergarage.util | General utility classes and helper functions.
  org.klomp.snark | I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.
  org.klomp.snark.dht | Distributed Hash Table (DHT) implementation for BitTorrent.
  org.klomp.snark.standalone | Classes exclusively used in standalone I2PSnark installations, providing functionality not needed when running within the I2P router environment.
  org.klomp.snark.web | The I2PSnark web user interface package, providing a complete web-based torrent management system implemented as a webapp in i2psnark.war.

- - ### Uses of I2PAppContext in com.vuze.plugins.mlab

    Methods in com.vuze.plugins.mlab with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static MLabRunner` | MLabRunner.`getInstance(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in gnu.crypto.prng

    Constructors in gnu.crypto.prng with parameters of type I2PAppContext
    Constructor and Description
    `AsyncFortunaStandalone(I2PAppContext context)`

  - ### Uses of I2PAppContext in i2p.susi.dns

    Fields in i2p.susi.dns declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | BaseBean.`_context`

  - ### Uses of I2PAppContext in i2p.susi.webmail

    Constructors in i2p.susi.webmail with parameters of type I2PAppContext
    Constructor and Description
    `MailCache(I2PAppContext ctx, POP3MailBox mailbox, String folderName, String host, int port, String user, String pass)` Does NOT load the mails in.
    `PersistentMailCache(I2PAppContext ctx, String host, int port, String user, String pass, String folder)` Use the params to generate a unique directory name.

  - ### Uses of I2PAppContext in net.i2p

    Fields in net.i2p declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected static I2PAppContext` | I2PAppContext.`_globalAppContext` the context that components without explicit root are bound

    Methods in net.i2p that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static I2PAppContext` | I2PAppContext.`getCurrentContext()` Pull the default context, WITHOUT creating a new one.
    `static I2PAppContext` | I2PAppContext.`getGlobalContext()` Pull the default context, creating a new one if necessary, else using the first one created.

    Methods in net.i2p with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `protected static boolean` | I2PAppContext.`setGlobalContext(I2PAppContext ctx)` Sets the default context, unless there is one already.

  - ### Uses of I2PAppContext in net.i2p.app

    Constructors in net.i2p.app with parameters of type I2PAppContext
    Constructor and Description
    `ClientAppManagerImpl(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.apps.systray

    Constructors in net.i2p.apps.systray with parameters of type I2PAppContext
    Constructor and Description
    `UrlLauncher(I2PAppContext context, ClientAppManager mgr, String[] args)` ClientApp constructor used from clients.config

  - ### Uses of I2PAppContext in net.i2p.client

    Methods in net.i2p.client with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2PSession` | I2PSimpleClient.`createSession(I2PAppContext context, Properties options)` Create a new session (though do not connect it yet)

  - ### Uses of I2PAppContext in net.i2p.client.datagram

    Methods in net.i2p.client.datagram with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static Datagram2` | Datagram2.`load(I2PAppContext ctx, I2PSession session, byte[] dgram)` Load an I2P repliable datagram and verify the signature.
    `static Datagram3` | Datagram3.`load(I2PAppContext ctx, I2PSession session, byte[] dgram)` Load an I2P repliable datagram3.
    `static byte[]` | Datagram3.`make(I2PAppContext ctx, I2PSession session, byte[] payload)` Make a repliable I2P datagram3 containing the specified payload.
    `static byte[]` | Datagram2.`make(I2PAppContext ctx, I2PSession session, byte[] payload, Hash tohash)` Make a repliable I2P datagram2 containing the specified payload.
    `static byte[]` | Datagram2.`make(I2PAppContext ctx, I2PSession session, byte[] payload, Hash tohash, Properties options)` Make a repliable I2P datagram2 containing the specified payload.
    `static byte[]` | Datagram3.`make(I2PAppContext ctx, I2PSession session, byte[] payload, Properties options)` Make a repliable I2P datagram3 containing the specified payload.

  - ### Uses of I2PAppContext in net.i2p.client.impl

    Fields in net.i2p.client.impl declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | HandlerImpl.`_context`
    `protected I2PAppContext` | I2PSessionImpl.`_context` used to separate things out so we can get rid of singletons

    Methods in net.i2p.client.impl that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) I2PAppContext` | I2PSessionImpl.`getContext()` For Subsessions

    Methods in net.i2p.client.impl with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2PSession` | I2PClientImpl.`createSession(I2PAppContext context, InputStream destKeyStream, Properties options)` Create a new session (though do not connect it yet)

    Constructors in net.i2p.client.impl with parameters of type I2PAppContext
    Constructor and Description
    `BWLimitsMessageHandler(I2PAppContext ctx)`
    `DestReplyMessageHandler(I2PAppContext ctx)`
    `DisconnectMessageHandler(I2PAppContext context)`
    `HandlerImpl(I2PAppContext context, int type)`
    `HostReplyMessageHandler(I2PAppContext ctx)`
    `I2CPMessageProducer(I2PAppContext context)`
    `I2PClientMessageHandlerMap(I2PAppContext context)`
    `I2PSessionDemultiplexer(I2PAppContext ctx)`
    `I2PSessionImpl(I2PAppContext context, InputStream destKeyStream, Properties options)` Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router As of 0.9.19, defaults in options are honored.
    `I2PSessionImpl(I2PAppContext context, Properties options, I2PClientMessageHandlerMap handlerMap)` for extension by SimpleSession (no dest)
    `I2PSessionImpl2(I2PAppContext ctx, InputStream destKeyStream, Properties options)` for extension by I2PSessionMuxedImpl Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router
    `I2PSessionImpl2(I2PAppContext context, Properties options, I2PClientMessageHandlerMap handlerMap)` for extension by SimpleSession (no dest)
    `I2PSessionMuxedImpl(I2PAppContext ctx, InputStream destKeyStream, Properties options)`
    `I2PSimpleSession(I2PAppContext context, Properties options)` Create a new session for doing naming and bandwidth queries only.
    `MessagePayloadMessageHandler(I2PAppContext context)`
    `MessageState(I2PAppContext ctx, long nonce, I2PSession session, long expires, SendMessageStatusListener listener)` For asynchronous notification
    `MessageState(I2PAppContext ctx, long nonce, String prefix)` For synchronous waiting for accept with waitForAccept().
    `MessageStatusMessageHandler(I2PAppContext context)`
    `RequestLeaseSetMessageHandler(I2PAppContext context)`
    `RequestLeaseSetMessageHandler(I2PAppContext context, int messageType)` For extension
    `RequestVariableLeaseSetMessageHandler(I2PAppContext context)`
    `SessionIdleTimer(I2PAppContext context, I2PSessionImpl session, boolean reduce, boolean shutdown)` reduce, shutdown, or both must be true
    `SessionStatusMessageHandler(I2PAppContext context)`
    `SetDateMessageHandler(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.client.naming

    Fields in net.i2p.client.naming declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | NamingService.`_context`

    Methods in net.i2p.client.naming with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static NamingService` | NamingService.`createInstance(I2PAppContext context)` WARNING - for use by I2PAppContext only - others must use I2PAppContext.namingService() Get a naming service instance.
    `(package private) static Destination` | LookupDest.`lookupBase32Hash(I2PAppContext ctx, String key)`
    `(package private) static Destination` | LookupDest.`lookupHostname(I2PAppContext ctx, String hostname)` Any hostname, but this is for long-format b32

    Constructors in net.i2p.client.naming with parameters of type I2PAppContext
    Constructor and Description
    `DummyNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `EepGetAndAddNamingService(I2PAppContext context)` Deprecated.
    `EepGetNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `HostsTxtNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `LookupDest(I2PAppContext context)`
    `MetaNamingService(I2PAppContext context)` Adds the services from the i2p.nameservicelist property, in order, as chained services.
    `MetaNamingService(I2PAppContext context, List<NamingService> services)`
    `NamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `SingleFileNamingService(I2PAppContext context, String filename)`

  - ### Uses of I2PAppContext in net.i2p.client.streaming

    Methods in net.i2p.client.streaming with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSocketManager.`init(I2PAppContext context, I2PSession session, Properties opts, String name)` Deprecated - Factory will initialize.

    Constructors in net.i2p.client.streaming with parameters of type I2PAppContext
    Constructor and Description
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url)`
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, String outputFile, String url)`

  - ### Uses of I2PAppContext in net.i2p.client.streaming.impl

    Fields in net.i2p.client.streaming.impl declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | SchedulerImpl.`_context`

    Methods in net.i2p.client.streaming.impl with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSocketManagerFull.`init(I2PAppContext context, I2PSession session, Properties opts, String name)` Deprecated. use 4-arg constructor
    `boolean` | Packet.`verifySignature(I2PAppContext ctx, byte[] buffer)` Determine whether the signature on the data is valid.
    `boolean` | Packet.`verifySignature(I2PAppContext ctx, SigningPublicKey altSPK, byte[] buffer)` Determine whether the signature on the data is valid.

    Constructors in net.i2p.client.streaming.impl with parameters of type I2PAppContext
    Constructor and Description
    `Connection(I2PAppContext ctx, ConnectionManager manager, I2PSession session, SchedulerChooser chooser, SimpleTimer2 timer, PacketQueue queue, ConnectionPacketHandler handler, ConnectionOptions opts, boolean isInbound)`
    `ConnectionDataReceiver(I2PAppContext ctx, Connection con)`
    `ConnectionHandler(I2PAppContext context, ConnectionManager mgr, SimpleTimer2 timer)` Creates a new instance of ConnectionHandler
    `ConnectionManager(I2PAppContext context, I2PSession session, ConnectionOptions defaultOptions, IncomingConnectionFilter connectionFilter)` Manage all conns for this session
    `ConnectionPacketHandler(I2PAppContext context)`
    `I2PSocketFull(Connection con, I2PAppContext context)`
    `I2PSocketManagerFull(I2PAppContext context, I2PSession session, Properties opts, String name, IncomingConnectionFilter connectionFilter)` This is what I2PSocketManagerFactory.createManager() returns.
    `MessageHandler(I2PAppContext ctx, ConnectionManager mgr)`
    `MessageInputStream(I2PAppContext ctx, int maxMessageSize, int maxWindowSize, int maxBufferSize)` Constructs a new MessageInputStream with the specified buffer limits.
    `MessageInputStream(I2PAppContext ctx, int maxMessageSize, int maxWindowSize, int maxBufferSize, int maxPacketCount)` Constructs a new MessageInputStream with the specified buffer limits.
    `MessageOutputStream(I2PAppContext ctx, SimpleTimer2 timer, MessageOutputStream.DataReceiver receiver, int bufSize, int initBufSize)` Constructs the stream with default passive flush delay.
    `MessageOutputStream(I2PAppContext ctx, SimpleTimer2 timer, MessageOutputStream.DataReceiver receiver, int bufSize, int initBufSize, int passiveFlushDelay)` Constructs the stream with specified passive flush delay.
    `PacketHandler(I2PAppContext ctx, ConnectionManager mgr)`
    `PacketLocal(I2PAppContext ctx, Destination to, Connection con)` bound to a connection
    `PacketLocal(I2PAppContext ctx, Destination to, I2PSession session)` not bound to a connection
    `PacketQueue(I2PAppContext context, SimpleTimer2 timer)`
    `PcapWriter(I2PAppContext ctx, String file)`
    `RetransmissionTimer(I2PAppContext ctx, String name)`
    `SchedulerChooser(I2PAppContext context)`
    `SchedulerClosed(I2PAppContext ctx)`
    `SchedulerClosing(I2PAppContext ctx)`
    `SchedulerConnectedBulk(I2PAppContext ctx)`
    `SchedulerConnecting(I2PAppContext ctx)`
    `SchedulerDead(I2PAppContext ctx)`
    `SchedulerHardDisconnected(I2PAppContext ctx)`
    `SchedulerImpl(I2PAppContext ctx)`
    `SchedulerPreconnect(I2PAppContext ctx)`
    `SchedulerReceived(I2PAppContext ctx)`
    `SimpleBandwidthEstimator(I2PAppContext ctx, ConnectionOptions opts)`
    `TCBShare(I2PAppContext ctx, SimpleTimer2 timer)`

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

    Fields in net.i2p.crypto declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | AESEngine.`_context` I2P application context

    Methods in net.i2p.crypto with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static BlindData` | Blinding.`decode(I2PAppContext ctx, byte[] b)` Decode a new-format b32 address.
    `static BlindData` | Blinding.`decode(I2PAppContext ctx, String address)` Decode a new-format b32 address.
    `static SigningPrivateKey` | Blinding.`generateAlpha(I2PAppContext ctx, SigningPublicKey destspk, String secret)` Generate alpha for current time.
    `static SigningPrivateKey` | Blinding.`generateAlpha(I2PAppContext ctx, SigningPublicKey destspk, String secret, long now)` Generate alpha for the given time.
    `static byte[]` | AESEngine.`getPadding(I2PAppContext context, int curSize, long minPaddedSize)` Return random bytes for padding the data to a mod 16 size so that it is at least minPaddedSize Public for ElGamalAESEngine.
    `static boolean` | CertUtil.`isRevoked(I2PAppContext ctx, Certificate cert)` Is the certificate revoked? This loads the CRLs from disk.
    `static CertStore` | CertUtil.`loadCRLs(I2PAppContext ctx)` Load CRLs from standard locations.

    Constructors in net.i2p.crypto with parameters of type I2PAppContext
    Constructor and Description
    `AESEngine(I2PAppContext ctx)` Constructor for subclasses.
    `CryptixAESEngine(I2PAppContext context)`
    `DSAEngine(I2PAppContext context)`
    `ElGamalEngine(I2PAppContext context)` Deprecated. The ElGamal engine should only be constructed and accessed through the application context.
    `HKDF(I2PAppContext context)`
    `HMAC256Generator(I2PAppContext context)`
    `KeyGenerator(I2PAppContext context)`
    `SessionKeyManager(I2PAppContext context)` A dummy SessionKeyManager for testing or for passing to ElGamalAESEngine.decrypt()
    `SHA256Generator(I2PAppContext context)`
    `SU3File(I2PAppContext context, File file)`
    `TrustedUpdate(I2PAppContext context)` Constructs a new `TrustedUpdate` with the given `I2PAppContext`.
    `YKGenerator(I2PAppContext context)` Caller must also call start() to start the background precalc thread.

  - ### Uses of I2PAppContext in net.i2p.data

    Constructors in net.i2p.data with parameters of type I2PAppContext
    Constructor and Description
    `BlindData(I2PAppContext ctx, Destination dest, SigType blindType, String secret)` Creates a new BlindData instance for the given destination.
    `BlindData(I2PAppContext ctx, Destination dest, SigType blindType, String secret, int authType, PrivateKey authKey)` Creates a new BlindData instance for the given destination with authentication.
    `BlindData(I2PAppContext ctx, SigningPublicKey spk, SigType blindType, String secret)`
    `BlindData(I2PAppContext ctx, SigningPublicKey spk, SigType blindType, String secret, int authType, PrivateKey authKey)` Creates a new BlindData instance for the given signing public key with authentication.

  - ### Uses of I2PAppContext in net.i2p.data.i2np

    Fields in net.i2p.data.i2np declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2NPMessageImpl.`_context`

    Methods in net.i2p.data.i2np with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2NPMessage` | I2NPMessageImpl.Builder.`build(I2PAppContext ctx)` instantiate a new I2NPMessage to be populated shortly
    `static EncryptedBuildRecord` | BuildResponseRecord.`create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyIV, long responseMessageId)` Creates a new AES-encrypted response record.
    `static EncryptedBuildRecord` | BuildResponseRecord.`create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options)` Creates a new ChaCha/Poly-encrypted response record (long format).
    `static I2NPMessage` | I2NPMessageImpl.`createMessage(I2PAppContext context, int type)` Yes, this is fairly ugly, but its the only place it ever happens.
    `static ShortEncryptedBuildRecord` | BuildResponseRecord.`createShort(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options, int slot)` Creates a new ChaCha/Poly-encrypted response record (short format).
    `EncryptedBuildRecord` | BuildRequestRecord.`encryptRecord(I2PAppContext ctx, PublicKey toKey, Hash toPeer)` Encrypts the record using ElGamal.
    `static I2NPMessage` | I2NPMessageImpl.`fromRawByteArray(I2PAppContext ctx, byte[] buffer, int offset, int len, I2NPMessageHandler handler)` Read the message with a short 5-byte header.
    `static I2NPMessage` | I2NPMessageImpl.`fromRawByteArrayNTCP2(I2PAppContext ctx, byte[] buffer, int offset, int len, I2NPMessageHandler handler)` Read the message with a short 9-byte header.

    Constructors in net.i2p.data.i2np with parameters of type I2PAppContext
    Constructor and Description
    `BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, Hash peer, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint)` Creates a new ElGamal build request record.
    `BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, long nextTunnelId, Hash nextHop, long nextMsgId, boolean isInGateway, boolean isOutEndpoint, Properties options)` Creates a new ECIES short build request record.
    `BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint, Properties options)` Creates a new ECIES long build request record.
    `DatabaseLookupMessage(I2PAppContext context)`
    `DatabaseLookupMessage(I2PAppContext context, boolean locallyCreated)`
    `DatabaseSearchReplyMessage(I2PAppContext context)`
    `DatabaseStoreMessage(I2PAppContext context)`
    `DataMessage(I2PAppContext context)`
    `DeliveryStatusMessage(I2PAppContext context)`
    `FastI2NPMessageImpl(I2PAppContext context)`
    `GarlicClove(I2PAppContext context)`
    `GarlicMessage(I2PAppContext context)`
    `I2NPMessageHandler(I2PAppContext context)`
    `I2NPMessageImpl(I2PAppContext context)`
    `OutboundTunnelBuildReplyMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `OutboundTunnelBuildReplyMessage(I2PAppContext context, int records)`
    `ShortTunnelBuildMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `ShortTunnelBuildMessage(I2PAppContext context, int records)`
    `ShortTunnelBuildReplyMessage(I2PAppContext context, int records)`
    `TunnelBuildMessage(I2PAppContext context)`
    `TunnelBuildMessage(I2PAppContext context, int records)`
    `TunnelBuildMessageBase(I2PAppContext context)`
    `TunnelBuildMessageBase(I2PAppContext context, int records)`
    `TunnelBuildReplyMessage(I2PAppContext context)`
    `TunnelBuildReplyMessage(I2PAppContext context, int records)`
    `TunnelDataMessage(I2PAppContext context)`
    `TunnelGatewayMessage(I2PAppContext context)`
    `UnknownI2NPMessage(I2PAppContext context, int type)`
    `VariableTunnelBuildMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `VariableTunnelBuildMessage(I2PAppContext context, int records)`
    `VariableTunnelBuildReplyMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `VariableTunnelBuildReplyMessage(I2PAppContext context, int records)`

  - ### Uses of I2PAppContext in net.i2p.data.router

    Constructors in net.i2p.data.router with parameters of type I2PAppContext
    Constructor and Description
    `RouterKeyGenerator(I2PAppContext context)`

  - ### Uses of I2PAppContext in net.i2p.desktopgui

    Fields in net.i2p.desktopgui declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | TrayManager.`_appContext`

    Constructors in net.i2p.desktopgui with parameters of type I2PAppContext
    Constructor and Description
    `ExternalMain(I2PAppContext ctx, ClientAppManager mgr, String[] args)`
    `ExternalTrayManager(I2PAppContext ctx, boolean useSwing)`
    `TrayManager(I2PAppContext ctx, boolean useSwing)` Instantiate tray manager.

  - ### Uses of I2PAppContext in net.i2p.desktopgui.i18n

    Methods in net.i2p.desktopgui.i18n with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static String` | DesktopguiTranslator.`_t(I2PAppContext ctx, String s)`
    `static String` | DesktopguiTranslator.`_t(I2PAppContext ctx, String s, Object o)`

  - ### Uses of I2PAppContext in net.i2p.i2pcontrol

    Constructors in net.i2p.i2pcontrol with parameters of type I2PAppContext
    Constructor and Description
    `HostCheckHandler(I2PAppContext ctx)` MUST call setListenHosts() afterwards.

  - ### Uses of I2PAppContext in net.i2p.i2pcontrol.security

    Constructors in net.i2p.i2pcontrol.security with parameters of type I2PAppContext
    Constructor and Description
    `SecurityManager(I2PAppContext ctx, KeyStoreProvider ksp, ConfigurationManager conf)`

  - ### Uses of I2PAppContext in net.i2p.i2pcontrol.servlets.configuration

    Constructors in net.i2p.i2pcontrol.servlets.configuration with parameters of type I2PAppContext
    Constructor and Description
    `ConfigurationManager(I2PAppContext ctx, File dir, boolean isPlugin)`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel

    Fields in net.i2p.i2ptunnel declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2PTunnelClientBase.`_context`

    Methods in net.i2p.i2ptunnel that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2PAppContext` | I2PTunnel.`getContext()` Gets the application context.
    `I2PAppContext` | TunnelControllerGroup.`getContext()` Helper

    Methods in net.i2p.i2ptunnel with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `protected static String` | I2PTunnelHTTPClientBase.`getErrorPage(I2PAppContext ctx, String base, String backup)` foo => errordir/foo-header_xx.ht for lang xx, or errordir/foo-header.ht, or the backup byte array on fail.
    `static TunnelControllerGroup` | TunnelControllerGroup.`getInstance(I2PAppContext ctx)` In I2PAppContext will instantiate if necessary and always return non-null.
    `static Map<String,List<String>>` | I2PTunnelHTTPServer.`readHeaders(I2PSocket socket, InputStream in, StringBuilder command, Set<String> skipHeaders, I2PAppContext ctx, long initialTimeout)` From I2P to server: socket non-null, in null.
    `static Map<String,List<String>>` | I2PTunnelHTTPServer.`readHeaders(I2PSocket socket, InputStream in, StringBuilder command, String[] skipHeaders, I2PAppContext ctx, long initialTimeout)`

    Constructors in net.i2p.i2ptunnel with parameters of type I2PAppContext
    Constructor and Description
    `TunnelControllerGroup(I2PAppContext context, ClientAppManager mgr, String[] args)` Instantiation only.

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.access

    Methods in net.i2p.i2ptunnel.access with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static StatefulConnectionFilter` | FilterFactory.`createFilter(I2PAppContext context, File definition)` Creates an instance of IncomingConnectionFilter based on the definition contained in the given file.

    Constructors in net.i2p.i2ptunnel.access with parameters of type I2PAppContext
    Constructor and Description
    `AccessFilter(I2PAppContext context, FilterDefinition definition)` Create a new access filter.

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.localServer

    Methods in net.i2p.i2ptunnel.localServer with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | LocalHTTPServer.`serveLocalFile(I2PAppContext context, I2PSocketManager sockMgr, OutputStream out, String method, String targetRequest, String query, String proxyNonce, boolean allowGzip)` Very simple web server.

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.socks

    Fields in net.i2p.i2ptunnel.socks declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | SOCKSServer.`_context`

    Methods in net.i2p.i2ptunnel.socks with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static SOCKSServer` | SOCKSServerFactory.`createSOCKSServer(I2PAppContext ctx, Socket s, Properties props)` Create a new SOCKS server, using the provided socket (that must be connected to a client) to select the proper SOCKS protocol version.

    Constructors in net.i2p.i2ptunnel.socks with parameters of type I2PAppContext
    Constructor and Description
    `SOCKS4aServer(I2PAppContext ctx, Socket clientSock, Properties props)` Create a SOCKS4a server that communicates with the client using the specified socket.
    `SOCKS5Server(I2PAppContext ctx, Socket clientSock, Properties props)` Create a SOCKS5 server that communicates with the client using the specified socket.
    `SOCKSServer(I2PAppContext ctx, Socket clientSock, Properties props)`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.streamr

    Constructors in net.i2p.i2ptunnel.streamr with parameters of type I2PAppContext
    Constructor and Description
    `Pinger(I2PAppContext ctx, int fromPort)`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.udpTunnel

    Fields in net.i2p.i2ptunnel.udpTunnel declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2PTunnelUDPClientBase.`_context`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.ui

    Fields in net.i2p.i2ptunnel.ui declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | TunnelConfig.`_context`

    Methods in net.i2p.i2ptunnel.ui with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `protected static String` | GeneralHelper.`_t(String key, I2PAppContext context)`
    `static String` | Messages.`_t(String key, I2PAppContext ctx)`
    `static List<String>` | GeneralHelper.`deleteTunnel(I2PAppContext context, TunnelControllerGroup tcg, int tunnel, String privKeyFile)` Stop the tunnel, delete from config, rename the private key file if in the default directory
    `static String` | Messages.`ngettext(String s, String p, int n, I2PAppContext ctx)` translate (ngettext)
    `protected static List<String>` | GeneralHelper.`saveConfig(I2PAppContext context, TunnelControllerGroup tcg, int tunnel)` Save the configuration for an existing tunnel to disk.
    `static List<String>` | GeneralHelper.`saveTunnel(I2PAppContext context, TunnelControllerGroup tcg, int tunnel, TunnelConfig config)` Save the configuration for a new or existing tunnel to disk.

    Constructors in net.i2p.i2ptunnel.ui with parameters of type I2PAppContext
    Constructor and Description
    `GeneralHelper(I2PAppContext context, TunnelControllerGroup tcg)`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.web

    Fields in net.i2p.i2ptunnel.web declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | IndexBean.`_context`

  - ### Uses of I2PAppContext in net.i2p.jetty

    Constructors in net.i2p.jetty with parameters of type I2PAppContext
    Constructor and Description
    `I2PLogger(I2PAppContext ctx)`
    `JettyStart(I2PAppContext context, ClientAppManager mgr, String[] args)` All args must be XML file names.

  - ### Uses of I2PAppContext in net.i2p.kademlia

    Fields in net.i2p.kademlia declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | RandomTrimmer.`_ctx`

    Constructors in net.i2p.kademlia with parameters of type I2PAppContext
    Constructor and Description
    `KBucketImpl(I2PAppContext context, int begin, int end, int max, KBucketTrimmer<T> trimmer)` All entries in this bucket will have at least one bit different from us in the range [begin, end] inclusive.
    `KBucketSet(I2PAppContext context, T us, int max, int b)` Use the default trim strategy, which removes a random entry.
    `KBucketSet(I2PAppContext context, T us, int max, int b, KBucketTrimmer<T> trimmer)` Use the supplied trim strategy.
    `RandomIfOldTrimmer(I2PAppContext ctx, int max)`
    `RandomTrimmer(I2PAppContext ctx, int max)`

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

    Subclasses of I2PAppContext in net.i2p.router
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RouterContext` Extended application context that provides centralized resource coordination for router instances.

    Methods in net.i2p.router with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `String` | CommSystemFacade.Status.`toLocalizedStatusString(I2PAppContext ctx)` toStatusString(), translated if available.

  - ### Uses of I2PAppContext in net.i2p.router.crypto

    Fields in net.i2p.router.crypto declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | TransientSessionKeyManager.`_context`

    Constructors in net.i2p.router.crypto with parameters of type I2PAppContext
    Constructor and Description
    `ElGamalAESEngine(I2PAppContext ctx)`
    `TransientSessionKeyManager(I2PAppContext context)` The session key manager should only be constructed and accessed through the application context.
    `TransientSessionKeyManager(I2PAppContext context, int tagsToSend, int lowThreshold)`

  - ### Uses of I2PAppContext in net.i2p.router.crypto.ratchet

    Methods in net.i2p.router.crypto.ratchet with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static int` | RatchetPayload.`processPayload(I2PAppContext ctx, RatchetPayload.PayloadCallback cb, byte[] payload, int off, int length, boolean isHandshake)` Ratchet payload generation and parsing utilities supporting datetime, options, garlic, next key, acknowledgment, and padding blocks for ECIES+AEAD messages

    Constructors in net.i2p.router.crypto.ratchet with parameters of type I2PAppContext
    Constructor and Description
    `Elligator2(I2PAppContext ctx)`
    `PaddingBlock(I2PAppContext context, int size)` Deprecated.

  - ### Uses of I2PAppContext in net.i2p.router.naming

    Constructors in net.i2p.router.naming with parameters of type I2PAppContext
    Constructor and Description
    `BlockfileNamingService(I2PAppContext context)` Opens the database at hostsdb.blockfile or creates a new one and imports entries from hosts.txt, userhosts.txt, and privatehosts.txt.

  - ### Uses of I2PAppContext in net.i2p.router.news

    Methods in net.i2p.router.news with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | PersistNews.`delete(I2PAppContext ctx, NewsEntry entry)` Unused for now, as we don't have any way to remember it's deleted.
    `static List<NewsEntry>` | PersistNews.`load(I2PAppContext ctx)` This does not check for any missing values.
    `static boolean` | PersistNews.`store(I2PAppContext ctx, List<Node> entries)` Store each entry.
    `boolean` | BlocklistEntries.`verify(I2PAppContext ctx)` Verify the blocklist signature.

    Constructors in net.i2p.router.news with parameters of type I2PAppContext
    Constructor and Description
    `NewsManager(I2PAppContext ctx, ClientAppManager listener, String[] args)`
    `NewsXMLParser(I2PAppContext ctx)`
    `XMLParser(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.router.startup

    Methods in net.i2p.router.startup with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static File` | ClientAppConfig.`configDir(I2PAppContext ctx)`
    `static File` | ClientAppConfig.`configFile(I2PAppContext ctx)`
    `static boolean` | ClientAppConfig.`isSplitConfig(I2PAppContext ctx)`
    `static void` | ClientAppConfig.`writeClientAppConfig(I2PAppContext ctx, ClientAppConfig app)` Classpath and stopargs not supported.
    `static void` | ClientAppConfig.`writeClientAppConfig(I2PAppContext ctx, List<ClientAppConfig> apps)` Classpath and stopargs not supported.

  - ### Uses of I2PAppContext in net.i2p.router.sybil

    Constructors in net.i2p.router.sybil with parameters of type I2PAppContext
    Constructor and Description
    `PersistSybil(I2PAppContext ctx)` access via Analysis.getPersister()

  - ### Uses of I2PAppContext in net.i2p.router.tasks

    Methods in net.i2p.router.tasks with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | ThreadDump.`dump(I2PAppContext context, int secondsToWait)` Signal the wrapper to asynchronously dump threads to wrapper.log.

  - ### Uses of I2PAppContext in net.i2p.router.time

    Constructors in net.i2p.router.time with parameters of type I2PAppContext
    Constructor and Description
    `RouterTimestamper(I2PAppContext ctx)` Does not start.
    `RouterTimestamper(I2PAppContext ctx, Timestamper.UpdateListener lsnr)` Does not start.
    `RouterTimestamper(I2PAppContext ctx, Timestamper.UpdateListener lsnr, boolean daemon)` Does not start.
    `Zones(I2PAppContext ctx)` Reads in the file in the constructor, so hold onto this.

  - ### Uses of I2PAppContext in net.i2p.router.transport

    Methods in net.i2p.router.transport with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static void` | GeoIP.`notifyVersion(I2PAppContext ctx, String subtype, long version)` Tell the update manager.
    `static String[]` | GeoIPv6.`readGeoIPFile(I2PAppContext context, Long[] search, Map<String,String> codeCache)` Lookup search items in the geoip file.

    Constructors in net.i2p.router.transport with parameters of type I2PAppContext
    Constructor and Description
    `GeoIP(I2PAppContext context)`
    `UPnP(I2PAppContext context, int ssdpPort, int httpPort, InetAddress[] binds)`

  - ### Uses of I2PAppContext in net.i2p.router.transport.crypto

    Constructors in net.i2p.router.transport.crypto with parameters of type I2PAppContext
    Constructor and Description
    `X25519KeyFactory(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.router.transport.ntcp

    Methods in net.i2p.router.transport.ntcp with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static int` | NTCP2Payload.`processPayload(I2PAppContext ctx, NTCP2Payload.PayloadCallback cb, byte[] payload, int off, int length, boolean isHandshake)` Incoming payload.

    Constructors in net.i2p.router.transport.ntcp with parameters of type I2PAppContext
    Constructor and Description
    `DateTimeBlock(I2PAppContext ctx)`
    `NTCPSendFinisher(I2PAppContext context, NTCPTransport transport)`
    `PaddingBlock(I2PAppContext context, int size)` with random data

  - ### Uses of I2PAppContext in net.i2p.router.transport.udp

    Methods in net.i2p.router.transport.udp with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static byte[]` | SSU2Util.`createPeerTestData(I2PAppContext ctx, Hash h, Hash h2, PeerTestState.Role role, long nonce, byte[] ip, int port, SigningPrivateKey spk)` Make the data for the peer test block
    `static byte[]` | SSU2Util.`createRelayRequestData(I2PAppContext ctx, Hash h, Hash h2, long nonce, long tag, byte[] ip, int port, SigningPrivateKey spk)` Make the data for the relay request block
    `static byte[]` | SSU2Util.`createRelayResponseData(I2PAppContext ctx, Hash h, int code, long nonce, byte[] ip, int port, SigningPrivateKey spk, long token)` Make the data for the relay response block
    `static byte[]` | SSU2Util.`hkdf(I2PAppContext ctx, byte[] key, String info)` 32 byte output, ZEROLEN data
    `static int` | SSU2Payload.`processPayload(I2PAppContext ctx, SSU2Payload.PayloadCallback cb, byte[] payload, int off, int length, boolean isHandshake, RemoteHostId from)` Incoming payload.
    `static Signature` | SSU2Util.`sign(I2PAppContext ctx, byte[] prologue, Hash h, Hash h2, byte[] data, int datalen, SigningPrivateKey spk)` Sign the relay or peer test data, using the prologue and hash as the initial data, and then the provided data.
    `static boolean` | SSU2Util.`validateSig(I2PAppContext ctx, byte[] prologue, Hash h, Hash h2, byte[] data, SigningPublicKey spk)` Validate the signed relay or peer test data, using the prologue and hash as the initial data, and then the provided data which ends with a signature of the specified type.

    Constructors in net.i2p.router.transport.udp with parameters of type I2PAppContext
    Constructor and Description
    `DateTimeBlock(I2PAppContext ctx)`
    `OutboundMessageState(I2PAppContext context, I2NPMessage msg, PeerState peer)` "injected" message from the establisher.
    `OutboundMessageState(I2PAppContext context, OutNetMessage m, PeerState peer)` Normal constructor.
    `PaddingBlock(I2PAppContext context, int size)` with random data
    `SimpleBandwidthEstimator(I2PAppContext ctx, PeerState state)` Creates a new bandwidth estimator for the given peer.

  - ### Uses of I2PAppContext in net.i2p.router.tunnel

    Fields in net.i2p.router.tunnel declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | HopProcessor.`_context`

    Methods in net.i2p.router.tunnel with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static void` | OutboundGatewayProcessor.`decrypt(I2PAppContext ctx, byte[] orig, int offset, int length, HopConfig config)` Undo the crypto for a single hop.

    Constructors in net.i2p.router.tunnel with parameters of type I2PAppContext
    Constructor and Description
    `FragmentedMessage(I2PAppContext ctx, long messageId)`
    `HopProcessor(I2PAppContext ctx, HopConfig config)` Deprecated. used only by unit tests
    `HopProcessor(I2PAppContext ctx, HopConfig config, IVValidator validator)`
    `InboundGatewayProcessor(I2PAppContext ctx, HopConfig config)`
    `InboundSender(I2PAppContext ctx, HopConfig config)`
    `OutboundGatewayProcessor(I2PAppContext ctx, TunnelCreatorConfig cfg)`
    `OutboundSender(I2PAppContext ctx, TunnelCreatorConfig config)`

  - ### Uses of I2PAppContext in net.i2p.router.tunnel.pool

    Methods in net.i2p.router.tunnel.pool with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | BuildMessageGenerator.`layeredEncrypt(I2PAppContext ctx, TunnelBuildMessage msg, TunnelCreatorConfig cfg, List<Integer> order)` Encrypt the records so their hop ident is visible at the appropriate times.

    Constructors in net.i2p.router.tunnel.pool with parameters of type I2PAppContext
    Constructor and Description
    `BuildReplyHandler(I2PAppContext context)`

  - ### Uses of I2PAppContext in net.i2p.router.util

    Fields in net.i2p.router.util declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | PriBlockingQueue.`_context`
    `protected I2PAppContext` | DecayingBloomFilter.`_context`

    Constructors in net.i2p.router.util with parameters of type I2PAppContext
    Constructor and Description
    `CoDelBlockingQueue(I2PAppContext ctx, String name, int capacity)` Target 15, interval 100
    `CoDelBlockingQueue(I2PAppContext ctx, String name, int capacity, int target, int interval)`
    `CoDelPriorityBlockingQueue(I2PAppContext ctx, String name, int initialCapacity)`
    `CoDelPriorityBlockingQueue(I2PAppContext ctx, String name, int initialCapacity, int target, int interval)`
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes)` Create a bloom filter that will decay its entries over time.
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name)` Uses default m of 23, memory usage is 2 MB.
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name, int m)` Memory usage is 2 * (2**m) bits or 2**(m-2) bytes.
    `DecayingBloomFilter(int durationMs, int entryBytes, String name, I2PAppContext context)` only for extension by DHS
    `DecayingHashSet(I2PAppContext context, int durationMs, int entryBytes)` Create a double-buffered hash set that will decay its entries over time.
    `DecayingHashSet(I2PAppContext context, int durationMs, int entryBytes, String name)`
    `EventLog(I2PAppContext ctx, File file)`
    `PriBlockingQueue(I2PAppContext ctx, String name, int initialCapacity)` Constructs a new priority blocking queue with the given initial capacity.

  - ### Uses of I2PAppContext in net.i2p.router.web

    Methods in net.i2p.router.web with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static String` | GraphListener.`createName(I2PAppContext ctx, String wanted)` JRobin can only deal with 20 character data source names, so we need to create a unique, munged version from the user/developer-visible name.
    `List<App>` | NavHelper.`getClientApps(I2PAppContext ctx)` For HomeHelper.
    `(package private) static Server` | RouterConsoleRunner.`getConsoleServer(I2PAppContext ctx)` To get to Jetty.
    `static ContextHandlerCollection` | WebAppStarter.`getConsoleServer(I2PAppContext ctx)` See comments in ConfigClientsHandler Warning, this will NOT work during shutdown, because the console is already unregistered.
    `static String` | Messages.`getDisplayLanguage(String langCode, String dflt, I2PAppContext ctx)` Return the "display language", e.g.
    `(package private) static String` | NewsFeedHelper.`getEntries(I2PAppContext ctx, int start, int max, long ageLimit)`
    `static NavHelper` | NavHelper.`getInstance(I2PAppContext ctx)`
    `static String` | ConfigUpdateHelper.`getNewsURL(I2PAppContext ctx)`
    `static Map<String,String>` | PluginStarter.`getPluginKeys(I2PAppContext ctx)` The signing keys from all the plugins
    `static String` | Messages.`getString(int n, String s, String p, I2PAppContext ctx)` translate (ngettext) @since 0.7.14
    `static String` | Messages.`getString(String key, I2PAppContext ctx)` lang in routerconsole.lang property, else current locale
    `static String` | Messages.`getString(String s, Object o, I2PAppContext ctx)` translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
    `static String` | Messages.`getString(String s, Object o, Object o2, I2PAppContext ctx)` two params @since 0.7.14
    `(package private) static ContextHandler` | WebAppStarter.`getWebApp(I2PAppContext ctx, String appName)` Warning, this will NOT work during shutdown, because the console is already unregistered.
    `static GraphGenerator` | GraphGenerator.`instance(I2PAppContext ctx)`
    `static boolean` | GraphGenerator.`isDisabled(I2PAppContext ctx)`
    `(package private) static boolean` | RouterConsoleRunner.`isSystrayEnabled(I2PAppContext context)` Package private for ConfigServiceHandler
    `static boolean` | WebAppStarter.`isWebAppRunning(I2PAppContext ctx, String appName)` As of 0.9.34, the appName will be registered with the PortMapper, and PortMapper.isRegistered() will be more efficient than this.
    `static Properties` | PluginStarter.`pluginProperties(I2PAppContext ctx, String appName)` plugin.config
    `static boolean` | PluginStarter.`pluginsEnabled(I2PAppContext ctx)`
    `static int` | ConfigUpdateHandler.`proxyPort(I2PAppContext ctx)` Convenience method for updaters
    `static void` | GraphRenderer.`render(I2PAppContext ctx, OutputStream out, String filename)` Deprecated. unused
    `(package private) static void` | GraphGenerator.`setDisabled(I2PAppContext ctx)` Disable graph generation until restart See GraphRenderer.render()
    `static Properties` | RouterConsoleRunner.`webAppProperties(I2PAppContext ctx)`
    `static File` | ConfigServiceHandler.`wrapperLogFile(I2PAppContext ctx)` Does not necessarily exist.

    Constructors in net.i2p.router.web with parameters of type I2PAppContext
    Constructor and Description
    `GraphRenderer(I2PAppContext ctx, GraphListener lsnr)`
    `HostCheckHandler(I2PAppContext ctx)` MUST call setListenHosts() afterwards.
    `LocaleWebAppHandler(I2PAppContext ctx, String path, String warPath, File tmpdir, ServletHandler servletHandler)`
    `ShellService(I2PAppContext context, ClientAppManager listener, String[] args)`

  - ### Uses of I2PAppContext in net.i2p.router.web.helpers

    Fields in net.i2p.router.web.helpers declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `(package private) I2PAppContext` | SidebarHelper.`ctx`

  - ### Uses of I2PAppContext in net.i2p.sam

    Constructors in net.i2p.sam with parameters of type I2PAppContext
    Constructor and Description
    `SAMBridge(I2PAppContext context, ClientAppManager mgr, String[] args)` For ClientApp interface.

  - ### Uses of I2PAppContext in net.i2p.sam.client

    Constructors in net.i2p.sam.client with parameters of type I2PAppContext
    Constructor and Description
    `SAMEventHandler(I2PAppContext ctx)`
    `SAMReader(I2PAppContext context, InputStream samIn, SAMReader.SAMClientEventListener listener)`
    `SAMStreamSend(I2PAppContext ctx, String samHost, String samPort, String destFile, String dataFile)`
    `SAMStreamSink(I2PAppContext ctx, String samHost, String samPort, String destFile, String sinkDir)`

  - ### Uses of I2PAppContext in net.i2p.stat

    Constructors in net.i2p.stat with parameters of type I2PAppContext
    Constructor and Description
    `StatManager(I2PAppContext context)` The stat manager should only be constructed and accessed through the application context.

  - ### Uses of I2PAppContext in net.i2p.util

    Fields in net.i2p.util declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | RandomSource.`_context`
    `protected I2PAppContext` | Clock.`_context`
    `protected I2PAppContext` | EepGet.`_context`

    Methods in net.i2p.util that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) I2PAppContext` | LogManager.`getContext()` Convenience method for LogRecordFormatter

    Methods in net.i2p.util with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static String` | Translate.`getCountry(I2PAppContext ctx)` Two-letter upper case or ""
    `static String` | Translate.`getDisplayLanguage(String langCode, String dflt, I2PAppContext ctx, String bun)` Return the "display language", e.g.
    `static String` | Translate.`getLanguage(I2PAppContext ctx)` Two- or three-letter lower case
    `static String` | Translate.`getString(int n, String s, String p, I2PAppContext ctx, String bun)` Use GNU ngettext For .po file format see http://www.gnu.org/software/gettext/manual/gettext.html.gz#Translating-plural-forms
    `static String` | Translate.`getString(String key, I2PAppContext ctx, String bun)` lang in routerconsole.lang property, else current locale
    `static String` | Translate.`getString(String s, I2PAppContext ctx, String bun, Object... oArray)` Varargs
    `static String` | Translate.`getString(String s, Object o, I2PAppContext ctx, String bun)` Translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
    `static String` | Translate.`getString(String s, Object o, Object o2, I2PAppContext ctx, String bun)` for {0} and {1}
    `static TimeZone` | SystemVersion.`getSystemTimeZone(I2PAppContext ctx)` The system's time zone, which is probably different from the JVM time zone, because Router changes the JVM default to GMT.
    `static boolean` | Translate.`isRTL(I2PAppContext ctx)`
    `Signature` | ByteArrayStream.`sign(I2PAppContext ctx, SigningPrivateKey signingKey)` Signs the written data.
    `static void` | I2PSSLSocketFactory.`verifyHostname(I2PAppContext ctx, SSLSocket socket, String host)` Validate the hostname.
    `boolean` | ByteArrayStream.`verifySignature(I2PAppContext ctx, Signature signature, SigningPublicKey verifyingKey)` Verifies the signature of the written data.

    Constructors in net.i2p.util with parameters of type I2PAppContext
    Constructor and Description
    `Clock(I2PAppContext context)`
    `DNSOverHTTPS(I2PAppContext context)`
    `DNSOverHTTPS(I2PAppContext context, SSLEepGet.SSLState sslState)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url, boolean allowCaching, String etag, String postData)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url, boolean allowCaching, String etag, String lastModified, String postData)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching, String etag)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching, String etag, String lastModified)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, String postData)`
    `EepGet(I2PAppContext ctx, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, int numRetries, String outputFile, String url, boolean allowCaching)`
    `EepGet(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching)`
    `EepHead(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String url)`
    `EepPost(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String outputFile, String url)`
    `Executor(I2PAppContext ctx, Log log, List<SimpleTimer.TimedEvent> events, SimpleStore x)`
    `FortunaRandomSource(I2PAppContext context)` May block up to 10 seconds or forever
    `I2PSSLSocketFactory(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath)`
    `LogConsoleBuffer(I2PAppContext context)` Uses default limit from LogManager.
    `LogManager(I2PAppContext context)`
    `PartialEepGet(I2PAppContext ctx, String proxyHost, int proxyPort, OutputStream outputStream, String url, long size)` Instantiate an EepGet that will fetch exactly size bytes when fetch() is called.
    `PasswordManager(I2PAppContext ctx)`
    `PortMapper(I2PAppContext context)`
    `RandomSource(I2PAppContext context)` Deprecated - do not instantiate this directly, as you won't get the good one (Fortuna).
    `SimpleScheduler(I2PAppContext context)` Deprecated. in 0.9.20, replaced by SimpleTimer2
    `SimpleTimer(I2PAppContext context)` Deprecated. use SimpleTimer2
    `SimpleTimer2(I2PAppContext context)` To be instantiated by the context.
    `SimpleTimer2(I2PAppContext context, String name)` To be instantiated by the context.
    `SimpleTimer2(I2PAppContext context, String name, boolean prestartAllThreads)` To be instantiated by the context.
    `SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url)` A new SSLEepGet with a new SSLState
    `SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url, long maxSize, SSLEepGet.SSLState state)`
    `SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url, SSLEepGet.SSLState state)`
    `SSLEepGet(I2PAppContext ctx, SSLEepGet.ProxyType type, String proxyHost, int proxyPort, OutputStream outputStream, String url)` Use a proxy.
    `SSLEepGet(I2PAppContext ctx, SSLEepGet.ProxyType type, String proxyHost, int proxyPort, OutputStream outputStream, String url, SSLEepGet.SSLState state)` Use a proxy.
    `SSLEepGet(I2PAppContext ctx, SSLEepGet.ProxyType type, String proxyHost, int proxyPort, String outputFile, String url)` Use a proxy.
    `SSLEepGet(I2PAppContext ctx, SSLEepGet.ProxyType type, String proxyHost, int proxyPort, String outputFile, String url, SSLEepGet.SSLState state)` Use a proxy.
    `SSLEepGet(I2PAppContext ctx, String outputFile, String url)` A new SSLEepGet with a new SSLState
    `SSLEepGet(I2PAppContext ctx, String outputFile, String url, SSLEepGet.SSLState state)`
    `SyntheticREDQueue(I2PAppContext ctx, int bwBps)` Construct with default queue size thresholds based on bandwidth.
    `SyntheticREDQueue(I2PAppContext ctx, int bwBps, int minThB, int maxThB)` Construct specifying bandwidth and queue size thresholds.
    `TempDirScanner(I2PAppContext context)` Schedules itself
    `TranslateReader(I2PAppContext ctx, String bundle, InputStream in)`
    `TranslateReader(I2PAppContext ctx, String bundle, Reader in)`

  - ### Uses of I2PAppContext in org.cybergarage.util

    Methods in org.cybergarage.util with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | Debug.`initialize(I2PAppContext ctx)` Initializes debug system with I2P application context.

  - ### Uses of I2PAppContext in org.klomp.snark

    Methods in org.klomp.snark that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2PAppContext` | I2PSnarkUtil.`getContext()`

    Constructors in org.klomp.snark with parameters of type I2PAppContext
    Constructor and Description
    `BandwidthManager(I2PAppContext ctx, int upLimit, int downLimit)`
    `I2PSnarkUtil(I2PAppContext ctx)`
    `I2PSnarkUtil(I2PAppContext ctx, String baseName, I2PSocketManager.DisconnectListener discon)`
    `SnarkManager(I2PAppContext ctx)` For embedded.
    `SnarkManager(I2PAppContext ctx, String ctxPath, String ctxName)` For webapp.
    `UDPTrackerClient(I2PAppContext ctx, I2PSession session, I2PSnarkUtil util)`
    `UpdateHandler(I2PAppContext ctx, UpdateManager umgr, SnarkManager smgr)`
    `UpdateRunner(I2PAppContext ctx, UpdateManager umgr, SnarkManager smgr, UpdateType type, List<URI> uris, String newVersion)`

  - ### Uses of I2PAppContext in org.klomp.snark.dht

    Constructors in org.klomp.snark.dht with parameters of type I2PAppContext
    Constructor and Description
    `DHTNodes(I2PAppContext ctx, NID me)`
    `DHTTracker(I2PAppContext ctx)`
    `KBTrimmer(I2PAppContext ctx, int max)` Creates a new bucket trimmer with the specified maximum bucket size.
    `KRPC(I2PAppContext ctx, String baseName, I2PSession session)`
    `MsgID(I2PAppContext ctx)` outgoing - generate a random ID
    `Token(I2PAppContext ctx)` Creates a new outgoing token for sending to remote peers.
    `Token(I2PAppContext ctx, byte[] data)` Creates an incoming token received from a remote DHT node.

  - ### Uses of I2PAppContext in org.klomp.snark.standalone

    Methods in org.klomp.snark.standalone with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static String` | ConfigUIHelper.`getLangSettings(I2PAppContext ctx)` Generates HTML select dropdown for language selection in I2PSnark standalone mode.

    Constructors in org.klomp.snark.standalone with parameters of type I2PAppContext
    Constructor and Description
    `HostCheckHandler(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in org.klomp.snark.web

    Fields in org.klomp.snark.web declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | BasicServlet.`_context`

    Constructors in org.klomp.snark.web with parameters of type I2PAppContext
    Constructor and Description
    `FetchAndAdd(I2PAppContext ctx, SnarkManager mgr, String url, File dataDir)` Caller should call _mgr.addDownloader(this), which will start things off.