| Package | Description |
|---|---|
| net.i2p.data.i2np |
This package defines the low-level messages sent between routers,
called Invisible Internet Network Protocol (I2NP).
|
| net.i2p.desktopgui |
Desktop graphical interface for managing I2P router lifecycle
from the system tray.
|
| net.i2p.desktopgui.router |
Router integration and communication 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.servlets |
HTTP servlets for handling I2P Control JSON-RPC 2.0 requests.
|
| net.i2p.i2pcontrol.servlets.jsonrpc2handlers |
JSON-RPC 2.0 handlers for I2P Control API methods.
|
| 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 |
Network database management and coordination for the I2P distributed hash table.
|
| net.i2p.router.networkdb.kademlia |
Kademlia DHT implementation and floodfill router functionality for I2P.
|
| net.i2p.router.networkdb.reseed |
Router reseeding functionality for bootstrapping into the I2P network.
|
| net.i2p.router.peermanager |
Peer management, profiling, and capacity calculation for I2P network optimization.
|
| 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.transport |
Transport layer implementations and management for I2P network communication.
|
| 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.update |
Classes to implement the router update process for checking and applying
I2P router updates from the update manager.
|
| 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.
|
| Modifier and Type | Method and Description |
|---|---|
EncryptedBuildRecord |
BuildRequestRecord.encryptECIESRecord(RouterContext ctx,
PublicKey toKey,
Hash toPeer)
Encrypts the record using ECIES.
|
| Constructor and Description |
|---|
BuildRequestRecord(RouterContext ctx,
PrivateKey ourKey,
EncryptedBuildRecord encryptedRecord)
Decrypts an encrypted build request record.
|
| Constructor and Description |
|---|
InternalTrayManager(RouterContext ctx,
Main main,
boolean useSwing) |
Main(RouterContext ctx,
ClientAppManager mgr,
String[] args) |
| Modifier and Type | Method and Description |
|---|---|
static void |
RouterManager.cancelShutdown(RouterContext ctx)
Cancel a graceful shutdown or restart
|
static long |
RouterManager.getShutdownTimeRemaining(RouterContext ctx)
Get time until shutdown
|
static String |
RouterManager.getStatus(RouterContext ctx)
Get network status, untranslated
|
static boolean |
RouterManager.isShutdownInProgress(RouterContext ctx)
Is a graceful shutdown or restart in progress?
|
static void |
RouterManager.restart(RouterContext ctx)
Restart the running I2P instance.
|
static void |
RouterManager.restartGracefully(RouterContext ctx)
Restart the running I2P instance.
|
static void |
RouterManager.shutDown(RouterContext ctx)
Stop the running I2P instance.
|
static void |
RouterManager.shutDownGracefully(RouterContext ctx)
Stop the running I2P instance.
|
| Constructor and Description |
|---|
I2PControlController(RouterContext ctx,
ClientAppManager mgr,
String[] args)
RouterApp (new way)
|
SocketController(RouterContext ctx,
ClientAppManager mgr,
String[] args)
RouterApp (new way)
|
| Constructor and Description |
|---|
JSONRPC2Servlet(RouterContext ctx,
SecurityManager secMan)
Plugin
|
| Constructor and Description |
|---|
AdvancedSettingsHandler(RouterContext ctx,
JSONRPC2Helper helper)
Constructor for advanced settings handler.
|
I2PControlHandler(RouterContext ctx,
JSONRPC2Helper helper,
SecurityManager secMan) |
NetworkSettingHandler(RouterContext ctx,
JSONRPC2Helper helper) |
RouterInfoHandler(RouterContext ctx,
JSONRPC2Helper helper) |
RouterManagerHandler(RouterContext ctx,
JSONRPC2Helper helper) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
RouterThrottleImpl._context |
| Modifier and Type | Method and Description |
|---|---|
RouterContext |
Router.getContext()
Non-null, but take care when accessing context items before runRouter() is called
as the context will not be initialized.
|
RouterContext |
JobImpl.getContext()
Get the router context that this job belongs to.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) static List<RouterContext> |
RouterContext.getContexts()
Same as listContexts() but package private and modifiable.
|
static List<RouterContext> |
RouterContext.listContexts()
Retrieve the list of router contexts currently instantiated in this JVM.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
HashPatternDetector.analyzeAndPredict(Hash hash,
RouterContext context)
Analyze a router hash and apply predictive ban if pattern matches known attack signatures.
|
boolean |
BanLogger.checkPatternAndPredict(Hash hash,
RouterContext context)
Check if a router hash matches known attack patterns and should be predictively banned.
|
void |
BanLogger.initialize(RouterContext context)
Initialize the logger.
|
static boolean |
RouterThrottleImpl.isShuttingDown(RouterContext _context) |
void |
BanLogger.logBan(Hash hash,
RouterContext context,
String reason,
long durationMs)
Log a ban by hash with RouterContext (IP will be looked up from banlist).
|
void |
BanLogger.logBanForever(Hash hash,
RouterContext context,
String reason)
Log a permanent ban with RouterContext.
|
(package private) static boolean |
RouterContext.setGlobalContext(RouterContext ctx)
Sets the default context, unless there is one already.
|
| Constructor and Description |
|---|
Banlist(RouterContext context)
Constructor.
|
BanLogger(RouterContext context) |
Blocklist(RouterContext context)
Constructor.
|
ClientMessagePool(RouterContext context) |
HashPatternDetector(RouterContext context) |
InNetMessagePool(RouterContext context)
Constructs the message pool with given context.
|
JobImpl(RouterContext context) |
JobQueue(RouterContext context)
Does not start the pumper.
|
JobQueueRunner(RouterContext context,
int id) |
JobQueueScaler(RouterContext context,
JobQueue jobQueue)
Create a new JobQueueScaler.
|
JobTiming(RouterContext context) |
KeyManager(RouterContext context) |
MessageHistory(RouterContext context) |
MessageValidator(RouterContext context) |
OutNetMessage(RouterContext context)
Null msg and target, zero expiration (used in OutboundMessageRegistry only)
|
OutNetMessage(RouterContext context,
I2NPMessage msg,
long expiration,
int priority,
RouterInfo target)
Standard constructor
|
OutNetMessagePool(RouterContext context) |
PersistentKeyRing(RouterContext ctx) |
RouterClock(RouterContext context)
Does not start.
|
RouterDoSThrottle(RouterContext context)
Deprecated.
|
RouterThrottleImpl(RouterContext context) |
StatisticsManager(RouterContext context) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
ClientListenerRunner._context |
protected RouterContext |
ClientMessageEventListener._context |
protected RouterContext |
ClientConnectionRunner._context |
protected RouterContext |
ClientManager._ctx |
| Constructor and Description |
|---|
FamilyKeyCrypto(RouterContext context)
For signing and verification.
|
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
RatchetSKM._context |
| Constructor and Description |
|---|
ACKTimer(RouterContext context,
Destination from,
Destination to)
ACK timer for ratchet.
|
ECIESAEADEngine(RouterContext ctx)
Caller MUST call startup() to get threaded generation.
|
Elg2KeyFactory(RouterContext ctx) |
MuxedEngine(RouterContext ctx) |
MuxedPQEngine(RouterContext ctx) |
RatchetSKM(RouterContext context)
For the router SKM only.
|
RatchetSKM(RouterContext context,
Destination dest)
ECIES only.
|
RatchetSKM(RouterContext context,
Destination dest,
EncType type)
The session key manager is constructed and accessed through the
client manager.
|
| Constructor and Description |
|---|
DummyClientManagerFacade(RouterContext ctx) |
DummyNetworkDatabaseFacade(RouterContext ctx) |
DummyNetworkDatabaseSegmentor(RouterContext ctx) |
VMCommSystem(RouterContext context) |
| Modifier and Type | Method and Description |
|---|---|
static GarlicMessage |
GarlicMessageBuilder.buildECIESMessage(RouterContext ctx,
GarlicConfig config)
Encrypt from an anonymous source.
|
(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 encryptKey,
RatchetSessionTag encryptTag)
Ratchet 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.
|
static GarlicMessage |
GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
Set<SessionTag> wrappedTags,
PublicKey target,
SessionKey encryptKey,
SessionTag encryptTag)
ELGAMAL_2048 only.
|
(package private) static GarlicMessage |
OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx,
long replyToken,
long expiration,
PublicKey recipientPK,
PayloadGarlicConfig dataClove,
Hash from,
Destination dest,
TunnelInfo replyTunnel,
int tagsToSendOverride,
int lowTagsOverride,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
boolean requireAck,
LeaseSet bundledReplyLeaseSet,
ReplyCallback callback)
Allow the app to specify the data clove directly, which enables OutboundClientMessage to resend the
same payload (including expiration and unique id) in different garlics (down different tunnels)
This is called from OCMOSJ
|
static void |
OutboundClientMessageOneShotJob.init(RouterContext ctx)
call once only
|
(package private) static boolean |
GarlicMessageBuilder.needsTags(RouterContext ctx,
PublicKey key,
Hash local,
int minTagOverride)
ELGAMAL_2048 only; returns false for others
|
| Constructor and Description |
|---|
GarlicMessageHandler(RouterContext context) |
GarlicMessageHandler(RouterContext context,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel) |
GarlicMessageParser(RouterContext context) |
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver)
Constructs a GarlicMessageReceiver without targeting a specific client destination.
|
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver,
Hash clientDestination)
Constructs a GarlicMessageReceiver targeting a specific client destination.
|
HandleGarlicMessageJob(RouterContext context,
GarlicMessage msg,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel)
Constructs a job to handle an inbound garlic message.
|
OutboundCache(RouterContext ctx)
Creates an OutboundCache instance and schedules periodic cache cleanup.
|
OutboundClientMessageOneShotJob(RouterContext ctx,
OutboundCache cache,
ClientMessage msg)
Send it.
|
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority,
long msgIDBloomXor) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
Job onSend,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor) |
| Constructor and Description |
|---|
HandleDatabaseLookupMessageJob(RouterContext ctx,
DatabaseLookupMessage receivedMessage,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXor) |
PublishLocalRouterInfoJob(RouterContext ctx) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
TransientDataStore._context |
protected RouterContext |
PeerSelector._context |
protected RouterContext |
KademliaNetworkDatabaseFacade._context |
| Modifier and Type | Method and Description |
|---|---|
static MessageWrapper.OneTimeSession |
MessageWrapper.generateSession(RouterContext ctx,
Hash localDest,
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.
|
static MessageWrapper.OneTimeSession |
MessageWrapper.generateSession(RouterContext ctx,
long expiration)
Create a single key and tag, for receiving a single encrypted message,
and register it with our router's session key manager, to expire in the time specified.
|
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.
|
static File |
PersistentDataStore.getRouterInfoFile(RouterContext ctx,
Hash hash)
The persistent RI file for a hash.
|
static boolean |
PersistentDataStore.isShuttingDown(RouterContext ctx) |
(package private) static boolean |
SearchJob.onlyQueryFloodfillPeers(RouterContext ctx)
this is now misnamed, as it is only used to determine whether to return floodfill peers only
|
(package private) static MessageWrapper.WrappedMessage |
MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
Hash from,
RouterInfo to)
Garlic wrap a message from a client or this router, destined for a router,
to hide the contents from the OBEP.
|
static GarlicMessage |
MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
MessageWrapper.OneTimeSession session)
Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW.
|
static GarlicMessage |
MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
RouterInfo to)
Garlic wrap a message from nobody, destined for a router,
to hide the contents from the OBEP.
|
static GarlicMessage |
MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
SessionKey encryptKey,
RatchetSessionTag encryptTag)
Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW.
|
static GarlicMessage |
MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
SessionKey encryptKey,
SessionTag encryptTag)
Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW.
|
| Constructor and Description |
|---|
ReseedBundler(RouterContext ctx) |
ReseedChecker(RouterContext context)
Constructor.
|
Reseeder(RouterContext ctx,
ReseedChecker rc) |
| Modifier and Type | Method and Description |
|---|---|
(package private) RouterContext |
PeerProfile.getContext()
Helper for calculators
|
| Constructor and Description |
|---|
DBHistory(RouterContext context,
String statGroup) |
PeerManager(RouterContext context)
Profiles are now loaded in a separate thread,
so this should return quickly.
|
PeerManagerFacadeImpl(RouterContext ctx) |
PeerProfile(RouterContext context,
Hash peer)
Caller should call setLastHeardAbout() and setFirstHeardAbout()
|
PeerTestJob(RouterContext context)
Creates a new PeerTestJob instance and initializes required statistics.
|
ProfileManagerImpl(RouterContext context) |
ProfileOrganizer(RouterContext context) |
ProfilePersistenceHelper(RouterContext ctx) |
TunnelHistory(RouterContext context,
String statGroup) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
LoadClientAppsJob.DelayedRunClient._ctx |
| Modifier and Type | Method and Description |
|---|---|
static List<ClientAppConfig> |
ClientAppConfig.getClientApps(RouterContext ctx) |
(package private) static long |
CreateRouterInfoJob.getCurrentPublishDate(RouterContext context)
We probably don't want to expose the exact time at which a router published its info.
|
static EncType |
CreateRouterInfoJob.getEncTypeConfig(RouterContext ctx)
The configured EncType to expect on read-in
|
static SigType |
CreateRouterInfoJob.getSigTypeConfig(RouterContext ctx)
The configured SigType to expect on read-in
|
static void |
MigrateJetty.migrate(RouterContext ctx,
List<ClientAppConfig> apps)
For each entry in apps, if the main class is an old Jetty class,
migrate it to the new Jetty class, and update the Jetty config files.
|
static void |
LoadClientAppsJob.runClient(String className,
String clientName,
String[] args,
RouterContext ctx,
Log log)
Run client in a new thread.
|
static void |
LoadClientAppsJob.runClient(String className,
String clientName,
String[] args,
RouterContext ctx,
Log log,
ThreadGroup threadGroup,
ClassLoader cl)
Run client in a new thread.
|
| Constructor and Description |
|---|
BootCommSystemJob(RouterContext context) |
BootNetworkDbJob(RouterContext ctx) |
BootPeerManagerJob(RouterContext ctx) |
BuildTrustedLinksJob(RouterContext context,
Job next) |
CreateRouterInfoJob(RouterContext ctx,
Job next) |
DelayedRunClient(SimpleTimer2 pool,
RouterContext enclosingContext,
String className,
String clientName,
String[] args)
caller MUST call schedule()
|
DelayedRunClient(SimpleTimer2 pool,
RouterContext enclosingContext,
String className,
String clientName,
String[] args,
ThreadGroup threadGroup,
ClassLoader cl)
caller MUST call schedule()
|
LoadClientAppsJob(RouterContext ctx) |
LoadRouterInfoJob(RouterContext ctx) |
RebuildRouterInfoJob(RouterContext context) |
RouterAppManager(RouterContext ctx) |
StartAcceptingClientsJob(RouterContext context) |
StartupJob(RouterContext context) |
| Modifier and Type | Method and Description |
|---|---|
static Analysis |
Analysis.getInstance(RouterContext ctx)
Gets the singleton Analysis instance, creating it if necessary.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
BasePerms.fix(RouterContext ctx)
Fix base permissions for Windows installations.
|
static String |
OOMListener.getWrapperConfigPath(RouterContext ctx)
Get the best guess path for wrapper.config file.
|
static void |
CryptoChecker.warnUnavailableCrypto(RouterContext ctx)
Check and warn about unavailable cryptographic algorithms.
|
| Constructor and Description |
|---|
CoalesceStatsEvent(RouterContext ctx)
Create a new stats coalescence event.
|
GracefulShutdown(RouterContext ctx)
Create a new graceful shutdown handler.
|
OOMListener(RouterContext ctx)
Create a new out-of-memory event listener.
|
PersistRouterInfoJob(RouterContext ctx)
Create a new router info persistence job.
|
ReadConfigJob(RouterContext ctx)
Create a new configuration reader job.
|
Republish(RouterContext ctx)
Create a new router info republisher.
|
Restarter(RouterContext ctx)
Create a new router restarter.
|
RouterWatchdog(RouterContext ctx)
Create a new router watchdog.
|
ShutdownHook(RouterContext ctx)
Create a new shutdown hook for emergency router shutdown.
|
UpdateRoutingKeyModifierJob(RouterContext ctx)
Create a new routing key modifier update job.
|
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
TransportImpl._context |
| Modifier and Type | Method and Description |
|---|---|
static void |
GeoIP.banCountry(RouterContext ctx,
String country)
Bans routers located in a specified country.
|
(package private) static void |
GetBidsJob.fail(RouterContext context,
OutNetMessage msg) |
(package private) static void |
GetBidsJob.getBids(RouterContext context,
TransportManager tmgr,
OutNetMessage msg) |
static TransportUtil.IPv6Config |
TransportUtil.getIPv6Config(RouterContext ctx,
String transportStyle) |
static int |
TransportImpl.getTransportMaxConnections(RouterContext ctx,
String style) |
static boolean |
TransportUtil.isIPv4Firewalled(RouterContext ctx,
String transportStyle)
This returns true if the force-firewalled setting is configured, false otherwise.
|
static boolean |
TransportUtil.isIPv6Firewalled(RouterContext ctx,
String transportStyle)
This returns true if the force-firewalled setting is configured, false otherwise.
|
static boolean |
TransportManager.isNTCPEnabled(RouterContext ctx) |
static int |
TransportUtil.selectRandomPort(RouterContext ctx,
String transportStyle)
Pick a random port between the configured boundaries
|
| Constructor and Description |
|---|
CommSystemFacadeImpl(RouterContext context) |
FIFOBandwidthLimiter(RouterContext context) |
FIFOBandwidthRefiller(RouterContext context,
FIFOBandwidthLimiter limiter) |
GetBidsJob(RouterContext ctx,
TransportManager tmgr,
OutNetMessage msg)
Deprecated.
unused, see static getBids()
|
OutboundMessageRegistry(RouterContext context) |
TransportImpl(RouterContext context)
Initialize the new transport
|
TransportManager(RouterContext context) |
UPnPManager(RouterContext context,
TransportManager manager) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
EstablishBase._context |
| Modifier and Type | Method and Description |
|---|---|
(package private) static byte[][] |
OutboundNTCP2State.generateSipHashKeys(RouterContext ctx,
HandshakeState state)
KDF for SipHash
|
| Constructor and Description |
|---|
EstablishBase(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
EventPumper(RouterContext ctx,
NTCPTransport transport) |
InboundEstablishState(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
RouterIdentity remotePeer,
RouterAddress remAddr,
int version)
Create an outbound unconnected NTCP connection.
|
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
SocketChannel chan,
SelectionKey key)
Create an inbound connected (though not established) NTCP connection.
|
NTCPTransport(RouterContext ctx,
X25519KeyFactory xdh) |
OutboundNTCP2State(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
Reader(RouterContext ctx) |
Writer(RouterContext ctx) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
InboundEstablishState._context |
protected RouterContext |
OutboundEstablishState._context |
protected RouterContext |
PeerState._context |
| Modifier and Type | Method and Description |
|---|---|
static UDPPacket |
UDPPacket.acquire(RouterContext ctx,
boolean inbound)
Acquires a UDPPacket instance, either from the cache or by creating a new instance.
|
| Constructor and Description |
|---|
EstablishmentManager(RouterContext ctx,
UDPTransport transport) |
InboundEstablishState(RouterContext ctx,
InetSocketAddress addr)
For SSU2
|
InboundEstablishState2(RouterContext ctx,
UDPTransport transport,
UDPPacket packet)
Start a new handshake with the given incoming packet,
which must be a Session Request or Token Request.
|
InboundMessageFragments(RouterContext ctx,
OutboundMessageFragments outbound,
UDPTransport transport) |
InboundMessageState(RouterContext ctx,
long messageId,
Hash from)
Constructs a new InboundMessageState with no fragments.
|
InboundMessageState(RouterContext ctx,
long messageId,
Hash from,
byte[] data,
int off,
int len,
int fragmentNum,
boolean isLast)
Constructs and initializes by receiving one fragment.
|
IntroductionManager(RouterContext ctx,
UDPTransport transport) |
MessageReceiver(RouterContext ctx,
UDPTransport transport) |
OutboundEstablishState(RouterContext ctx,
RemoteHostId claimedAddress,
RemoteHostId remoteHostId,
RouterIdentity remotePeer,
boolean needIntroduction,
SessionKey introKey,
UDPAddress addr)
For SSU2
|
OutboundEstablishState2(RouterContext ctx,
UDPTransport transport,
RemoteHostId claimedAddress,
RemoteHostId remoteHostId,
RouterIdentity remotePeer,
boolean needIntroduction,
SessionKey introKey,
RouterAddress ra,
UDPAddress addr)
Prepare to start a new handshake with the given peer.
|
OutboundMessageFragments(RouterContext ctx,
UDPTransport transport) |
PacketBuilder2(RouterContext ctx,
UDPTransport transport)
No state, all methods are thread-safe.
|
PacketHandler(RouterContext ctx,
UDPTransport transport,
EstablishmentManager establisher,
InboundMessageFragments inbound,
PeerTestManager testManager,
IntroductionManager introManager) |
PacketPusher(RouterContext ctx,
OutboundMessageFragments fragments,
List<UDPEndpoint> endpoints)
Constructs a PacketPusher instance.
|
PeerState(RouterContext ctx,
UDPTransport transport,
InetSocketAddress addr,
Hash remotePeer,
boolean isInbound,
int rtt)
For SSU2
|
PeerState2(RouterContext ctx,
UDPTransport transport,
InetSocketAddress remoteAddress,
Hash remotePeer,
boolean isInbound,
int rtt,
CipherState sendCha,
CipherState rcvCha,
long sendID,
long rcvID,
byte[] sendHdrKey1,
byte[] sendHdrKey2,
byte[] rcvHdrKey2)
If inbound, caller MUST immediately call setWeRelayToThemAs() (if nonzero) and sendAck0().
|
PeerStateDestroyed(RouterContext ctx,
UDPTransport transport,
PeerState2 peer)
This must be called after the first termination or termination ack
was sent from PeerState2, so the next packet number is correct.
|
PeerStateDestroyed(RouterContext ctx,
UDPTransport transport,
RemoteHostId id,
long sendID,
long rcvID,
CipherState sendCha,
CipherState rcvCha,
byte[] sendKey1,
byte[] sendKey2,
byte[] rcvKey2,
int reason)
Direct from IES2, there was never a PS2.
|
PeerTestEvent(RouterContext ctx,
UDPTransport udp,
PeerTestManager ptmgr) |
PeerTestManager(RouterContext context,
UDPTransport transport)
Have seen peer tests (as Alice) get stuck (_currentTest != null)
so I've thrown some synchronizization on the methods;
don't know the root cause or whether this fixes it
|
UDPEndpoint(RouterContext ctx,
UDPTransport transport,
int listenPort,
InetAddress bindAddress) |
UDPReceiver(RouterContext ctx,
UDPTransport transport,
DatagramSocket socket,
String name,
SocketListener lsnr) |
UDPSender(RouterContext ctx,
DatagramSocket socket,
String name,
SocketListener lsnr)
Constructs a UDPSender with the given context, socket, name, and endpoint listener.
|
UDPTransport(RouterContext ctx,
X25519KeyFactory xdh) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
TunnelCreatorConfig._context |
protected RouterContext |
TrivialPreprocessor._context |
protected RouterContext |
TunnelGateway._context |
protected RouterContext |
FragmentHandler._context |
| Modifier and Type | Method and Description |
|---|---|
static int |
TunnelDispatcher.getShareBandwidth(RouterContext ctx)
Get the current bandwidth share in KBps
|
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
TunnelPool._context |
protected RouterContext |
ConnectChecker.ctx |
| Modifier and Type | Method and Description |
|---|---|
static void |
BuildMessageGenerator.createRecord(int recordNum,
int hop,
TunnelBuildMessage msg,
TunnelCreatorConfig cfg,
Hash replyRouter,
long replyTunnel,
RouterContext ctx,
PublicKey peerKey,
Properties props)
Place the asymmetrically encrypted record in the specified record slot,
containing the hop's configuration (as well as the reply info, if it is an outbound endpoint)
|
static boolean |
BuildRequestor.request(RouterContext ctx,
PooledTunnelCreatorConfig cfg,
BuildExecutor exec)
Initiates a tunnel build request.
|
static boolean |
TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer)
Should the peer be excluded based on its published caps, crypto, and version?
|
static boolean |
TestJob.shouldSchedule(RouterContext ctx,
PooledTunnelCreatorConfig cfg)
Static method to check if a TestJob should be created and scheduled.
|
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
UpdateHandler._context |
protected RouterContext |
UpdateRunner._context |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
RouterPasswordManager._context |
| Constructor and Description |
|---|
MaskedIPSet(RouterContext ctx,
Hash peer,
int mask)
The Set of IPs for this peer, with a given mask.
|
MaskedIPSet(RouterContext ctx,
Hash peer,
RouterInfo pinfo,
int mask)
The Set of IPs for this peer, with a given mask.
|
MaskedIPSet(RouterContext ctx,
RouterInfo pinfo,
int mask)
The Set of IPs for this peer, with a given mask.
|
RouterPasswordManager(RouterContext ctx)
// migrate these to b64
private static final String[] MIGRATE_FROM = {
// This has a separate router.reseedProxy.username prop,
// so let's not mess with it
"router.reseedProxy.password",
// Don't migrate these until we have a console form for them,
// which we aren't likely to ever bother with
"routerconsole.keyPassword",
"routerconsole.keystorePassword",
"i2cp.keyPassword",
"i2cp.keystorePassword"
};
private static final String[] MIGRATE_TO = {
"router.reseedProxy.auth",
"routerconsole.ssl.key.auth",
"routerconsole.ssl.keystore.auth",
"i2cp.ssl.key.auth",
"i2cp.ssl.keystore.auth"
};
|
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
HelperBase._context
the router context
|
protected RouterContext |
PluginStarter._context |
protected RouterContext |
FormHandler._context |
protected RouterContext |
UpdateHandler._context |
| Modifier and Type | Method and Description |
|---|---|
static RouterContext |
ContextHelper.getContext(String contextId) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static WebAppContext |
WebAppStarter.addWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath,
File tmpdir)
add but don't start
This is used only by RouterConsoleRunner, which adds all the webapps first
and then starts all at once.
|
static boolean |
PluginStarter.deletePlugin(RouterContext ctx,
String appName) |
static boolean |
DeadlockDetector.detect(RouterContext ctx) |
static boolean |
NewsHelper.dontInstall(RouterContext ctx) |
(package private) static void |
RouterConsoleRunner.initialize(RouterContext ctx,
WebAppContext context)
Set up basic security constraints for the webapp.
|
static boolean |
NewsHelper.isBaseReadonly(RouterContext ctx) |
static boolean |
NewsHelper.isDevSU3UpdateAvailable(RouterContext ctx)
Will be false if already downloaded or if dev update disabled.
|
static boolean |
PluginStarter.isPluginRunning(String pluginName,
RouterContext ctx) |
protected static boolean |
PluginStarter.isPluginRunning(String pluginName,
RouterContext ctx,
Server s) |
static boolean |
NewsHelper.isUnsignedUpdateAvailable(RouterContext ctx)
Will be false if already downloaded or if dev update disabled.
|
static boolean |
NewsHelper.isUpdateDisabled(RouterContext ctx) |
static long |
NewsHelper.lastChecked(RouterContext ctx) |
static long |
NewsHelper.lastUpdated(RouterContext ctx)
When the news was last downloaded
|
(package private) static void |
ConfigServiceHandler.registerSignalHandler(RouterContext ctx)
Register a handler for signals,
so we can handle HUP from the wrapper (wrapper 3.2.0 or higher)
|
static void |
ConfigServiceHandler.registerWrapperNotifier(RouterContext ctx,
int code,
boolean rekey)
Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
and a final one to tell the wrapper we are stopped.
|
static boolean |
NewsHelper.shouldShowNews(RouterContext ctx) |
static void |
NewsHelper.showNews(RouterContext ctx,
boolean yes)
Save config with the timestamp of the current news to hide, or 0 to show
|
static boolean |
PluginStarter.startPlugin(RouterContext ctx,
String appName) |
(package private) static void |
PluginStarter.startPlugins(RouterContext ctx)
this shouldn't throw anything
|
static void |
WebAppStarter.startWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath)
Adds and starts.
|
static void |
WebAppStarter.startWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath,
String pluginName)
Adds and starts.
|
static String |
NewsHelper.status(RouterContext ctx) |
protected static boolean |
PluginStarter.stopPlugin(RouterContext ctx,
Server s,
String appName) |
static boolean |
PluginStarter.stopPlugin(RouterContext ctx,
String appName) |
(package private) static void |
WebAppStarter.stopWebApp(RouterContext ctx,
Server s,
String appName)
Stop it and remove the context.
|
static void |
WebAppStarter.stopWebApp(RouterContext ctx,
String appName)
Stop it and remove the context.
|
static void |
RouterConsoleRunner.storeWebAppProperties(RouterContext ctx,
Properties props) |
static void |
PluginStarter.updateAll(RouterContext ctx)
threaded
|
static ConsoleUpdateManager |
UpdateHandler.updateManager(RouterContext ctx) |
| Constructor and Description |
|---|
ConsolePasswordManager(RouterContext ctx) |
DeadlockDetector(RouterContext ctx) |
GraphGenerator(RouterContext ctx) |
PluginStarter(RouterContext ctx) |
PluginStopper(RouterContext ctx,
Server server) |
RouterConsoleRunner(RouterContext ctx,
ClientAppManager mgr,
String[] args)
non-SSL:
RouterConsoleRunner
RouterConsoleRunner 7657
RouterConsoleRunner 7657 127.0.0.1
RouterConsoleRunner 7657 127.0.0.1,::1
RouterConsoleRunner 7657 127.0.0.1,::1 ./webapps/
SSL:
RouterConsoleRunner -s 7657
RouterConsoleRunner -s 7657 127.0.0.1
RouterConsoleRunner -s 7657 127.0.0.1,::1
RouterConsoleRunner -s 7657 127.0.0.1,::1 ./webapps/
If using both, non-SSL must be first:
RouterConsoleRunner 7657 127.0.0.1 -s 7667
RouterConsoleRunner 7657 127.0.0.1 -s 7667 127.0.0.1
RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1
RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 ./webapps/
|
UpdateHandler(RouterContext ctx) |
WrapperListener(RouterContext ctx)
Wrapper must be 3.2.0 or higher, or will throw class not found error.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) static Collection<App> |
HomeHelper.buildApps(RouterContext ctx,
String config) |
static boolean |
ConfigRestartBean.isRestarting(RouterContext ctx) |
static boolean |
ConfigRestartBean.isShuttingDown(RouterContext ctx) |
static void |
SybilRenderer.renderSybilHTML(Writer out,
RouterContext ctx,
List<Hash> sybils,
String victim)
Called from NetDbRenderer
|
(package private) static void |
HomeHelper.saveApps(RouterContext ctx,
String prop,
Collection<App> apps,
boolean full) |
(package private) static void |
SidebarHelper.saveSummaryBarSections(RouterContext ctx,
String page,
Map<Integer,String> sections) |
static void |
NetDbCachingJob.schedule(RouterContext ctx)
Schedule this job to run periodically.
|
void |
LogsHelper.setContext(RouterContext context) |
| Constructor and Description |
|---|
BanlistRenderer(RouterContext context) |
NetDbCachingJob(RouterContext ctx,
boolean reverseDnsEnabled,
boolean introducerEnabled) |
NetDbRenderer(RouterContext ctx) |
ProfileOrganizerRenderer(ProfileOrganizer organizer,
RouterContext context) |
ReseedHandler(RouterContext ctx) |
SidebarRenderer(RouterContext context,
SidebarHelper helper) |
StatsGenerator(RouterContext context) |
SybilRenderer(RouterContext ctx) |
TunnelRenderer(RouterContext ctx) |