Class
Description
DNS A record payload representing an IPv4 address.
Maps a domain name to an IPv4 address, the most common DNS record type.
Maps a domain name to an IPv4 address, the most common DNS record type.
DNS AAAA record payload representing an IPv6 address.
Maps a domain name to an IPv6 address, the IPv6 equivalent of A records.
Maps a domain name to an IPv6 address, the IPv6 equivalent of A records.
Defines the structure for why abuse was reported either by the client to the router or by the router to the client.
Provides a severity level (larger numbers are more severe) in association with a client reporting abusive behavior to the router or the router reporting it to the client.
As this does not (yet) extend ServerSocketChannel it cannot be returned by
StandardServerSocket.getChannel() , until we implement an I2P SocketAddress class.Access attempt counter.
Incoming connection filter configurable through access list rules.
Parsed recorder file plus the
(lastModified, length) signature it was read under.Generic means of SACK/NACK transmission for partially or fully received messages.
Timer for sending ratchet-layer acknowledgments when application responses are delayed, supporting NS, NSR, ACK requests, and forward next key blocks.
Represents a UPnP action with its associated service, arguments, and control functionality.
Data container for UPnP action information.
Simple action event class for swing emulation.
A list of UPnP actions.
Interface for handling action events in swing emulation.
Interface for handling UPnP action control events.
Represents a UPnP action control request.
Represents a UPnP action control response.
Mints and resolves short, unique action tokens for per-torrent form controls.
Bean representing an I2P address entry with hostname and destination.
An address book for storing human readable names mapped to base64 i2p destinations.
Bean for managing I2P address books.
Simple command line access to various utilities.
Comparator for sorting AddressBean by date (newest first, then alphabetical).
Comparator for sorting AddressBean by name alphabetically.
Methods to get the local addresses, and other IP utilities.
Enumeration of supported address types.
JSON-RPC handler for advanced router settings.
Thread for advertising UPnP device presence on the network.
Abstract base class for AES cipher operations in I2P.
Aggregates RRD data values over specified time periods.
Provides statistical aggregation functions for time-series data with configurable time steps and value arrays.
Provides statistical aggregation functions for time-series data with configurable time steps and value arrays.
Represents an ASCII label in DNS.
A tunnel pool with its own settings and Destination, but uses another pool for its tunnels.
Represents an allowed value constraint for UPnP state variables.
A collection of UPnP allowed value constraints.
Represents an allowed value range constraint for UPnP state variables.
An interface for classes that provide lowlevel information about AMD CPU's
Moved out of CPUID.java Ref: https://en.wikipedia.org/wiki/List_of_AMD_CPU_microarchitectures Ref: https://gmplib.org/repo/gmp/file/tip/config.guess
Sybil attack analysis implementation.
Application information for the router console.
Minimal implementation of applet context for swing emulation.
Class to represent single archive definition within the RRD.
Class to represent single RRD archive in a RRD with its internal state.
Instances of this class model an archive section of an RRD file.
Class to represent internal RRD archive state for a single datasource.
Represents an area plot element in RRD graphs.
Utility class for method argument validation.
A utility class that performs checks for method argument validity.
Represents a UPnP argument for an action.
Data container for UPnP action argument information.
A collection of UPnP action arguments.
A small, fast Set with a maximum size, backed by a fixed-size array.
Exception thrown when attempting to add an element to a full ArraySet.
Utility methods for creating unpadded arrays with optimal growth sizing.
a holding class for public/private parameter pairs.
interface that a public/private key pair generator should conform to.
Parameter class for asymmetric key operations.
Fortuna instance that tries to avoid blocking if at all possible by using separate filled buffer segments rather than one buffer (and blocking when that buffer's data has been eaten).
Represents an email attachment with metadata and file data.
Represents an XML attribute with name and value.
A vector-based collection of XML attributes.
JSON-RPC handler for authentication requests.
Filter to check for valid session on all console requests.
Authentication token for I2PControl API access.
Abstract base class for graph axes in RRD graphs.
Check for new mail periodically.
Exception thrown when an invalid location is accessed in a document model.
A Westwood bandwidth estimator.
Self-contained bandwidth sampler for the snark screen log graph.
Records live bandwidth samples every second for the minigraph.
Tell the other side the limits.
Bandwidth and bandwidth limits.
Bandwidth and bandwidth limits.
Manages router banlist entries with configurable expiration times and transport-specific bans.
Entry representing a banned peer with expiration and reason information.
Renders HTML display of banned routers for the router console.
Dedicated logger for all ban events.
Enumerates barcode formats known to this package.
Encodes and decodes to and from Base32 notation.
Minimal Base32 encoder utility class.
Base64 encoding implementation.
Encodes and decodes to and from Base64 notation.
Minimal Base64 encoder utility class.
Holds methods common to several Beans.
An abstract class to facilitate implementing PRNG algorithms.
Based on DefaultServlet from Jetty 6.1.26, heavily simplified and modified to remove all dependencies on Jetty libs.
From Jetty HttpContent.java.
Batching preprocessor that will briefly delay the sending of a message if it doesn't fill up a full tunnel message, in which case it queues up an additional flush task.
Honor the 'batchFrequency' tunnel pool setting or the '
router.batchFrequency' router config setting, and track fragmentation.BCrypt implements OpenBSD-style Blowfish password hashing using the scheme described in "A Future-Adaptable Password Scheme" by Niels Provos and David Mazieres.
Decodes a bencoded stream to
BEValues.Converts Java objects to bencoded format for BitTorrent protocol communication.
Holds different types that a bencoded byte array can represent.
A particular element of the field \Z/(2^255-19).
Little-endian encoding implementation for EdDSA field elements using BigInteger.
BigInteger-based implementation of scalar operations for EdDSA cryptography.
A simple, fast array of bits, represented compactly by an array of ints internally.
Container of a byte array representing set and unset bits for torrent piece availability.
Represents a 2D matrix of bits.
Bean for managing address book blacklist entries.
Simple blacklist checker for HTTP proxy.
Cache for blinding data as specified in I2P proposal 123.
Cache data for EdDSA key blinding as specified in Proposal 123: New NetDb Entries.
Utilities for Blinding EdDSA keys.
Advise the router that the endpoint is blinded.
Block-based file storage system with indexed access.
A naming service using the net.metanotion BlockFile database.
Manage blocking by IP address, in a manner similar to the Banlist, which blocks by router hash.
Data structure and management for I2P router blocklist entries.
Manages HTTP blocklists for request filtering.
Represents a pair of data and error correction blocks for QR code encoding.
A BEP 33 bloom filter used to estimate the size of a DHT swarm from a get_peers response.
Manage the IV validation for all of the router's tunnels by way of a big decaying bloom filter.
Chooses the filter exponent from measured load and the heap budget.
A Bloom filter for sets of SHA1 digests.
Stores the (opaque) bloom filter offsets for reuse.
A pre-zeroed bit array waiting to be installed, so the memset can happen away from the lock that guards the filter.
This actually boots almost everything.
Start up the network database.
Start up the peer manager.
Emulation of javax.swing.BorderFactory for the NDT (Network Diagnostic Tool) plugin.
Emulation of java.awt.BorderLayout for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.BoxLayout for the NDT (Network Diagnostic Tool) plugin.
Version helpers for the I2PSnark Bridge extension: reads the version from the manifest.json inside the bundled XPI, and compares dotted extension versions numerically so the router can tell whether the installed extension is current.
Registers the browser protocol/file handler that forwards magnet links and torrent files to the I2PSnark browser API (POST /i2psnark/_add).
SkipList level management for multi-level indexing.
On-disk SkipList implementation for persistent key-value storage.
SkipList span implementation with in-memory key-value storage.
Base interface for data buffers.
Image worker implementation that creates buffered images for RRD graphs.
Builder class for creating BufferedImageWorker instances with configurable parameters.
Holds a ByteBuffer for MaxMind database access.
Single threaded controller of the tunnel creation process, spanning all tunnel pools.
Immutable result of
BuildExecutor.countExpiryBuckets(List, long).Build result enumeration.
Handle the received tunnel build message requests and replies, including sending responses and updating tunnel lists.
Attributes an expired build to the hop position that failed to answer.
Fill in the encrypted BuildRequestRecords in a TunnelBuildMessage.
Receive the build message at a certain hop, decrypt its encrypted record, read the enclosed tunnel request, decide how to reply, write the reply, encrypt the reply record, and return a TunnelBuildMessage to forward on to the next hop.
Decrypt the layers of a tunnel build reply message, determining whether the individual hops agreed to participate in the tunnel, or if not, why not.
This contains the result of decrypting the build request or reply record, including the decrypted properties field, if present.
Utility class for creating and dispatching tunnel build request messages.
A tunnel build request record, in one of three formats.
Class that creates an encrypted tunnel build message record.
The build date as set in
i2p.jar, and reasonable min and max values for the current time, to be used as sanity checks.For future restricted routes.
Retrieves bandwidth limits from an I2P router via I2CP.
Handle I2CP BW replies from the router.
Wrap up an array of bytes so that they can be compared and placed in hashes, maps, and the like.
OutputStream to InputStream adapter.
A backend that store and provides access to data using a
ByteBuffer, using java internal methods for long, integer and others types.Cache the objects frequently used to reduce memory churn.
An OutputStream that limits how many bytes are written, throwing
EOFException when the limit is exceeded.JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned -1, 0, and 1, I'm going to use less memory and go with bytes.
ArrayList with per-thread cached iterators for reduced object allocation overhead.
Synchronized collection with per-thread cached iterators for efficient element iteration.
Static inner CachedIterator class - implements hasNext(), next() & remove()
Renders router capability strings as HTML links, identically for the NetDb and Sybil views.
Estimate how many of our tunnels the peer can join per hour.
Central Binomial Distribution (CBD) sampling for ML-KEM operations.
RRD CDEF (Computed Data Source Definition) implementation.
Creates computed data sources using Reverse Polish Notation (RPN) expressions on existing data sources.
Creates computed data sources using Reverse Polish Notation (RPN) expressions on existing data sources.
Represents a computed data source (CDEF) in RRD graphs.
Interface for CoDel priority queue entries with extended tracking.
Instances of this class model the consolidation data point status from an RRD file.
Interface for CoDel queue entries with enqueue time tracking.
Dump out our local SSL certs, if any.
Extensible certificate system for I2P structures providing metadata and capabilities.
Java X.509 certificate utilities, consolidated from various places.
ChaCha20, wrapper around Noise ChaChaCore.
Implementation of the ChaCha20 core hash transformation.
Implements the ChaChaPoly cipher for Noise.
Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 of ISO 18004.
Controls one or more types of updates.
Thrown when a barcode was successfully detected and decoded, but was not returned because its checksum feature failed.
A simplistic cache using a
ConcurrentHashMap.all parameter classes implement this.
Interface to an authenticated cipher for use in the Noise protocol.
Class that contains a pair of CipherState objects.
If a class started via
clients.config implements this interface, it will be used to manage the client, instead of starting with main()Contains a really simple ClientApp "structure" and some static methods so they can be used both by LoadClientAppsJob and by the configuration page in the router console.
Notify the router of events, and provide methods for client apps to find each other.
A simple ClientAppManager that supports register/unregister only, so that client apps may find each other in AppContext.
Status of a client application.
Bridge the router and the client - managing state for a client.
Registry of known BitTorrent client identities.
One impersonatable client: peer ID prefix plus the matching tracker User-Agent and extension handshake "v" strings.
Listen for connections on the specified port, and toss them onto the client manager's set of connections once they are established.
Coordinate connections and various tasks.
Manages client connections and LeaseSet operations for I2P applications.
Base impl of the client facade.
Wrap a message either destined for a local client or received from one.
Receive events from the client and handle them accordingly (updating the runner when necessary).
Outcome of validating a client-supplied receive request against the state the router holds for this connection.
Manage all of the inbound and outbound client messages maintained by the router.
Pick peers randomly out of the fast pool, and put them into tunnels ordered by XOR distance from a random key.
Renders every client ratchet session key manager as one table, with a thead/tbody/tfoot section per client as on the update manager page, so the columns align across all clients.
Wrap up the client settings specifying their tunnel criteria.
Copied from net.i2p.router.client We need a single thread that writes so we don't have issues with the Piped Streams used in InternalSocket.
Writes I2CP messages to a client asynchronously, so a hung client app cannot take down the whole router.
Emulation of java.awt.datatransfer.Clipboard for the NDT (Network Diagnostic Tool) plugin.
Alternate location for determining the time which takes into account an offset.
Listener for clock offset changes.
Signals that the underlying database has been closed.
The unwrapped result of decrypting a GarlicMessage: an array of GarlicCloves plus the outer certificate, message ID, and expiration.
DNS CNAME (Canonical Name) record payload.
Maps an alias domain name to a canonical domain name for DNS resolution.
Maps an alias domain name to a canonical domain name for DNS resolution.
Periodic statistics collection and aggregation system.
Serve plugin icons, at /Plugins/pluginicon?plugin=foo.
CoDel (Controlled Delay) implementation of Active Queue Management.
CoDel (Controlled Delay) implementation with priority-based queue management.
Emulation of java.awt.Color for the NDT (Network Diagnostic Tool) plugin.
Simple command line access to various utilities.
Store a single comment and/or rating.
Store comments.
Represents comment text elements in RRD graphs.
Manages peer communication subsystem including transport protocols, connection handling, and network address management for router-to-router messaging.
Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.
Primary implementation of the communication system facade for I2P network operations.
A full bitfield, immutable, to save memory and time.
Callback for Snark events.
Base class for Swing component emulation in the NDT (Network Diagnostic Tool) plugin.
Implement on top of a ConcurrentHashMap with a dummy value.
Static configuration manager.
Handles form submissions from the advanced configuration page.
Helper for advanced configuration page rendering and form processing.
Handler to deal with form submissions from the ban configuration form.
Helper for ban configuration page rendering.
Bean for managing SusDNS configuration properties and file operations.
Handles configuration changes for I2P client applications and web apps.
Helper for clients configuration page rendering and form processing.
Handler for family configuration.
Helper for family configuration page rendering and form processing.
Simple home page configuration.
Handles adding and revoking keys from the router keyring.
Helper for keyring configuration page rendering and form processing.
Handler to deal with form submissions from the logging config form and act upon the values.
Helper for logging configuration page rendering and form processing.
Render the configuration menu at the top of all the config pages.
Handler to deal with form submissions from the main config form and act upon the values.
Helper for network configuration page rendering and form processing.
Utility class providing methods to parse and write files in config file format, and subscription file format.
Handler for peer configuration.
Helper for peer configuration page rendering and form processing.
Handler for reseed configuration form processing.
Helper for reseed configuration page rendering and form processing.
Simple helper to control restarts/shutdowns in the left hand nav.
Handler to deal with form submissions from the service config form and act upon the values.
Simple sidebar configuration handler.
Handler to deal with form submissions from the stats config form and act upon the values.
Helper for statistics configuration page rendering and form processing.
Handler to deal with form submissions from the tunnel config form and act upon the values.
Helper for tunnels configuration page rendering and form processing.
Handles router console UI configuration and theme management.
Helper class for rendering and processing user interface configuration pages in the I2P router console.
Configuration helper for I2PSnark standalone application user interface.
Handler for router update configuration.
Helper class for managing I2P router update configuration and UI generation.
Manage the configuration of I2PControl.
Tools to check transport compatibility.
Maintain the state controlling a streaming connection between two destinations.
Verdict of one floor evaluation.
Accepts incoming I2P connections and routes them to the appropriate PeerAcceptor.
Receive data from the MessageOutputStream, build a packet, and send it through a connection.
Receive new connection attempts
Accept-queue bookkeeping for one enqueued SYN.
Coordinate all of the connections for a single local destination.
The callback interface for a pong.
Outcome of evaluating one SYN burst-gate trip against the dest's recorded strike.
A recorded SYN-burst strike, and how many distinct burst windows this dest has tripped inside the current strike window.
Define the current options for the con (and allow custom tweaking midstream).
Receive a packet for a particular connection - placing the data onto the queue, marking packets as acked, updating various fields, etc.
Count how often we have received an incoming connection This offers basic DOS protection but is not a complete solution.
Connection rate limiter providing basic DoS protection.
Manage both plaintext and salted/hashed password storage in
router.config.The central resource coordinating updates.
Equals on checker, type and method only.
Equals on updater, type and method only.
Equals on type and ID only.
The version string of an installed or downloaded update, ordered numerically or by date against other versions.
An update that exists upstream, with its download sources per method and an optional reason it cannot currently be fetched.
Enumeration of available consolidation functions.
Class ConsolidationFunctionType
Represents an area plot element with a constant value in RRD graphs.
Represents a line plot element with a constant value in RRD graphs.
Mathematical constants for EdDSA operations.
Constants for RRD file format definitions.
Lightweight background job that refreshes RouterInfo for peers we recently interacted with.
Binary search utilities for array operations without argument validation overhead.
Helper for including static content files in router console pages.
Per-request utility for the opt-in console fragment mode.
Helper for accessing router contexts by context ID.
Constants and utility values for UPnP control operations.
Main UPnP control point implementation for device discovery and control.
Base class for UPnP control requests.
Represents a UPnP control response.
Convert any kind of destination String to a hash Supported: Base64 dest Base64 dest.i2p Base64 Hash Base64 Hash.i2p Base32 Hash Base32 desthash.b32.i2p example.i2p.
Callback interface for monitoring PeerCoordinator state changes.
This class is used by the installer to copy files.
Expose a version string.
InputStream that counts bytes read and skipped.
OutputStream that counts bytes written.
Represents a country.
Country-code lookup, caching, and strict-country policy for the router.
Retrieves CPU details via the x86 CPUID instruction through a native JNI library (jcpuid).
Holds the four 32-bit register values (EAX, EBX, ECX, EDX) returned by a single CPUID instruction call.
Moved out of CPUID.java Ref: http://en.wikipedia.org/wiki/CPUID
An interface for classes that provide lowlevel information about CPU's
Like CreateLeaseSetMessage, but supports both old and new LeaseSet types, including LS2, Meta, and Encrypted.
Defines the message a client sends to a router when authorizing the LeaseSet.
Warning - misnamed.
Given an established connection, walk through the process of establishing the leaseset.
Defines the message a client sends to a router when establishing a new session.
Data structure for Certificate Revocation List (CRL) entries.
AES encryption engine using Cryptix's Rijndael implementation with CBC mode.
Cache the objects used in CryptixRijndael_Algorithm.makeKey to reduce memory churn.
Container for AES round keys generated during key schedule expansion.
Rijndael AES algorithm implementation.
Moved from CryptixAESEngine and net.i2p.router.tasks.CryptoChecker.
Cryptographic algorithm availability checker and advisor.
Prime for ElGamal from http://tools.ietf.org/html/rfc3526 Primes for DSA: Generated by TheCrypto http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/343
Foundation class for checked exceptions thrown by the crypto packages.
Properties interface for cryptographic services.
Enumeration of cryptographic service purposes.
Registry for cryptographic services and utilities.
Detects Content Security Policy support in user agent strings.
Copied and modded from I2PTunnel IndexBean (GPL).
Capitalize first letter of each word of string https://www.javatpoint.com/java-program-to-capitalize-each-word-in-string
Emulation of java.awt.Cursor for the NDT (Network Diagnostic Tool) plugin.
A twisted Edwards curve.
Implementation of the Curve25519 elliptic curve algorithm.
Implementation of the Curve25519 algorithm for the Noise protocol.
Main class of addressbook.
A thread that waits five minutes, then runs the addressbook daemon.
Abstract base class for DNS record data payloads.
All DNS record types extend this class to provide their specific data representation and parsing logic.
All DNS record types extend this class to provide their specific data representation and parsing logic.
Base class for data structures stored in the I2P network database (NetDb).
Encapsulates metadata about the GeoIP database.
Defines the message a router sends to another router to search for a key in the network database.
Database lookup type enumeration.
Modified and simplified for I2P
Constructs a Builder for the
DatabaseReader.Defines the message a router sends to another router in response to a search (DatabaseFindNearest or DatabaseLookup) when it doesn't have the value, specifying what routers it would search.
Defines the message a router sends to another router to test the network database reachability, as well as the reply message sent back.
Models a chunk of result data from an RRDatabase.
Thrown when the data was not available to read or write a DataStructure.
Class for creating and loading I2P repliable datagrams version 2.
Class for creating and loading I2P repliable datagrams version 3.
Shared low-level datagram send path for the DHT and UDP tracker clients.
Comprehensive utility class for I2P data structure serialization, encoding, and manipulation.
Interface for holding data sources.
An abstract class to import data from external source.
this exception is thrown if a buffer that is meant to have output copied into it turns out to be too short, or if we've been given insufficient input.
Callback used to fetch data.
Defines a message containing arbitrary bytes of data.
Class which should be used for all calculations based on the data fetched from RRD files.
Class to represent single datasource within RRD.
Instances of this class model a data source in an RRD file.
Class DataSourceType
Interface for database storage operations in the network database.
Base interface defining standard binary representation for I2P data structures.
Base implementation of all data structures.
Utility class for handling HTTP date formatting and time operations.
A six-byte Date and 2 bytes of flags, since a Date won't encroach on the top two bytes until the year 10889.
History of NetDb related activities (lookups, replies, stores, etc).
Start, track, and expire the I2PTunnelDCCClients.
Hooks to create and maintain DCC client and server tunnels.
Periodic check ref: https://dzone.com/articles/how-detect-java-deadlocks
Debug utility class for the CyberLink framework.
Overview tiles and mini-graphs for the debug page entry point, one tile per debug tab summarizing what that tab shows, linking to it.
Time-decaying Bloom filter series for efficient data management.
Double-buffered hash set with time-based decay for efficient data management.
Simple stream for checking and optionally removing RFC2616 chunked encoding to the output.
Decoder for MaxMind DB data.
Enumeration of data types supported in MaxMind DB format.
Exception for decoding errors.
Buffering decoder that outputs to a Writer.
RRD DEF (Data Source Definition) implementation.
Represents a data source defined in an RRD file with specific name, consolidation function, and backend configuration.
Represents a data source defined in an RRD file with specific name, consolidation function, and backend configuration.
Represents a data definition (DEF) in RRD graphs.
Default
HostnameVerifier implementation.IDNA transformator backed by
IDN, with a root-label workaround.Utility class for parsing filter definitions.
Queue UIDLs for later deletion.
Abstract base class for DNSSEC delegation records.
Provides common functionality for DNSSEC records that delegate trust from parent zones to child zones.
Provides common functionality for DNSSEC records that delegate trust from parent zones to child zones.
The fixed fields read out of a delegation record, before it is interpreted.
This class is used by the installer to delete one or more specified files.
Contains the delivery instructions for garlic cloves.
Defines the message sent back in reply to a message when requested, containing the private ack id.
Utility class for UPnP device description error messages.
DeserializationException explains how and where the problem occurs in the source JSON text during deserialization.
The kinds of exceptions that can trigger a DeserializationException.
Translation utility for desktop GUI internationalization.
Defines an endpoint in the I2P network that can receive messages.
Request the router look up the dest for a hash.
Response to DestLookupMessage.
Handle I2CP dest replies from the router.
Interface for objects that implement destroying.
Defines the message a client sends to a router when destroying existing session.
Tracks connection attempts for a specific remote destination.
Class returned by a FredPluginIPDetector.
Represents a UPnP device in the CyberLink framework.
Interface for receiving UPnP device change notifications.
Data container for UPnP device information and metadata.
A collection of UPnP devices.
Simple /dev/random reader.
Check for an updated su3 version.
Handles the request to update the router by firing off an
EepGet call to download the latest su3 file and display the status.Eepget the .su3 file to the temp dir, then notify.
Interface to a Diffie-Hellman algorithm for the Noise protocol.
Stub for KRPC.
All the nodes we know about, stored as a mapping from node ID to a Destination and Port.
The tracker stores peers, i.e.
interface that a message digest conforms to.
Emulation of java.awt.Dimension for the NDT (Network Diagnostic Tool) plugin.
Ask a connected peer for his RI.
Override to not call failed() in setMessage(), as it will be called from runJob().
Simple storage of each cert in a separate file in a directory.
Defines the message a client sends to a router when destroying existing session.
Handle I2CP disconnect messages from the router.
Dispatcher for JSON-RPC 2.0 requests and notifications.
Thread for disposing expired UPnP devices and subscriptions.
DNS DLV (DNSSEC Lookaside Validation) record payload.
Provides DNSSEC trust anchors from external validation repositories.
Provides DNSSEC trust anchors from external validation repositories.
DNS DNAME (Domain Name) redirection record payload.
Provides redirection of an entire subtree of the DNS name space to another domain, similar to CNAME but for entire subtrees.
Provides redirection of an entire subtree of the DNS name space to another domain, similar to CNAME but for entire subtrees.
DNS DNSKEY record payload for DNSSEC public keys.
Contains a DNSSEC public key used to verify DNSSEC signatures for a DNS zone.
Contains a DNSSEC public key used to verify DNSSEC signatures for a DNS zone.
A DNS label is an individual component of a DNS name.
Thrown when a DNS label exceeds the maximum length.
A DNS message as defined by RFC 1035.
Builder class for constructing DNS messages.
Provides a fluent API for building DNS messages with various sections and flags configured step by step.
Provides a fluent API for building DNS messages with various sections and flags configured step by step.
Symbolic DNS Opcode values.
Possible DNS response codes.
A DNS name, also called "domain name".
Simple implementation of DNS over HTTPS.
DNS query type for IPv4/IPv6 preference.
Constants and enums for DNSSEC (DNS Security Extensions).
This class provides DNSSEC algorithm definitions and constants used for DNSSEC operations including signature and digest algorithms.
This class provides DNSSEC algorithm definitions and constants used for DNSSEC operations including signature and digest algorithms.
DNSSEC Digest Algorithms.
DNSSEC Signature Algorithms.
Tracks the pieces a peer said it no longer has (BEP 54 dont_have), so the piece is not re-requested from that peer even if it re-announces HAVE, until the remembered state expires.
Naive implementation of down sample with simple array input Largest-Triangle-Three-Buckets, from Sveinn Steinarsson's thesis, section 4.2..
A class that implement a downsampler, used to reduce the number of point to display.
Represents a dataset containing timestamps and corresponding values.
Represents a draft email message with attachments and Bcc support.
DNS DS (Delegation Signer) record payload for DNSSEC.
Contains the hash of a DNSKEY record used to authenticate delegated DNS zones in DNSSEC chain of trust.
Contains the hash of a DNSKEY record used to authenticate delegated DNS zones in DNSSEC chain of trust.
Digital signature algorithm engine supporting DSA, ECDSA, RSA, and EdDSA.
Class to represent single data source definition within the RRD.
Enumeration of available datasource types.
Exists only to enable package.html to be included in javadoc.
Exists only to enable package.html to be included in javadoc.
Exists only to enable package.html to be included in javadoc.
Manage all interactions with clients.
Dummy to lock up the updates for a period of time.
A Dummy naming service that can only handle base64 and b32 destinations.
In-memory network database implementation for testing and development scenarios.
Dummy network database segmentor for testing.
OutputStream that discards all written data.
Write to nowhere.
Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.
Build and maintain tunnels throughout the network.
IV validator that accepts all initialization vectors without validation.
Constants for elliptic curves, from NIST FIPS 186-4 (2013) / ANSI X9.62.
JSON-RPC2 handler for the Echo method.
ECIES+AEAD encryption engine providing New Session, New Session Reply, and Existing Session message handling
Per-thread pool of payload block objects and the block list, to avoid allocation per outbound payload.
Elliptic curve utility functions for cryptographic operations.
Class to represent a field element of the finite field $p = 2^{255} - 19$ elements.
Helper class for encoding/decoding from/to the 32 byte representation.
Class for reducing a huge integer modulo the group order q and doing a combined multiply plus add plus reduce operation.
Utilities for EdDSA key blinding operations.
EdDSA signature engine implementing the Java Signature API.
Implementation of AlgorithmParameterSpec that holds the name of a named EdDSA curve specification.
Common interface for all EdDSA keys.
EdDSA Curve specification that can also be referred to by name.
Table of named EdDSA curves.
Parameter specification for an EdDSA algorithm.
An EdDSA private key.
EdDSA private key specification.
An EdDSA public key.
EdDSA public key specification.
Web interface bean for editing and configuring I2P tunnel settings.
EDNS - Extension Mechanism for DNS.
Builder for creating EDNS instances.
The EDNS option code.
Abstract base class for EDNS options.
EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url.
Authentication mode enumeration.
Parsed Content-Range header value.
Callback interface for monitoring EepGet transfer progress.
A network-based naming service using HTTP, with in-memory caching.
This is a quick hack to get a working EepHead, primarily for the following usage:
Extends EepGet for POST.
Decode only.
The elements of the graph.
Threaded factory for pre-calculating Elligator2-encoded X25519 key pairs to prevent Diffie-Hellman computation bottlenecks in critical paths
X25519 key pair with pre-calculated Elligator2-encoded public key.
Handles the actual ElGamal+AES encryption and decryption scenarios using the supplied keys and data.
ElGamal cryptographic engine for I2P encryption and signature operations.
Parameter specification for ElGamal key generation.
Base interface for ElGamal cryptographic keys used in I2P.
Base key specification for ElGamal keys.
Copied from org.bouncycastle.jce.spec This can't actually be passed to the BC provider, we would have to use reflection to create a "real" org.bouncycasle.jce.spec.ElGamalParameterSpec.
Interface for ElGamal private keys.
Implementation of ElGamal private keys.
This class specifies an ElGamal private key with its associated parameters.
Interface for ElGamal public keys.
Implementation of ElGamal public keys.
This class specifies an ElGamal public key with its associated parameters.
Elligator2 encoding and decoding for X25519 public keys to provide cryptographically indistinguishable representations
Immutable OrderedProperties, to reduce object churn in LS2 where it's expected to be empty.
Base encryption algorithm type.
Encodable digests allow you to download an encoded copy of their internal state.
These are a set of hints that you may pass to Writers to specify their behavior.
Encoder for QR codes.
Interface to encode/decode content transfer encodings like quoted-printable, base64 etc.
Common interface for all $(b-1)$-bit encodings of elements of EdDSA finite fields.
Converted from Exception to IOException in 0.9.33.
Manager class to handle content transfer encodings.
ElGamal-encrypted request or response.
Implementation of EncryptedLeaseSet as specified in Proposal 123: New NetDb Entries.
Defines the properties for various encryption types that I2P supports or may someday support.
Allow various components with some entropy to feed that entropy back into some PRNG.
InputStream that returns EOF when input matches specified bytes.
Small swing-based utility to convert timestamps (seconds since epoch) to readable dates and vice versa.
See ISO 18004:2006, 6.5.1.
Common servlet for errors This is intended for webapps and local plugins.
OutputStream that escapes HTML characters during streaming.
Writer that escapes HTML characters during streaming.
Base class for NTCP connection establishment.
States for NTCP connection establishment process.
Coordinate the establishment of new sessions - both inbound and outbound.
Token used for SSU2 session establishment and validation.
Interface for handling NTCP connection establishment state machine.
Event dispatching interface.
An implementation of the EventDispatcher interface.
Interface for receiving UPnP event notifications.
Event logging utility with caching and file-based persistence.
Helper for router event log display and filtering.
The main NTCP NIO event loop thread responsible for high-throughput, low-latency handling of inbound and outbound NTCP connections using non-blocking I/O.
Outcome of screening an inbound Session Request against the bans, connection limits, and flood defenses before the connection is accepted.
How a thrown exception from outbound connect setup should be treated.
Outcome of
EventPumper.evaluateInboundFlood(long, int, int, long, boolean, int, int, RandomSource): whether to reject the incoming connection plus the numbers used in the warn log, so the caller stays side-effect free.Progress of a single write-buffer drain step.
An implementation of the EventDispatcher interface for receiving events via in-line notifyEvent() only.
A Set of Hashes that automatically adds to the Set in the contains() check.
Launch a program in the background from the installer, then terminate this JVM without waiting for it.
Exception thrown when an authentication token has expired.
Handles tunnel expiration in two phases for graceful shutdown.
Periodically searches through all leases to find expired ones, failing those keys and firing up a new search for each (in case we want it later, might as well preemptively fetch it).
Go through the routing table pick routers that are out of date, but don't expire routers we're actively connected to.
Filter definition element for a single explicitly defined remote destination.
Pick peers randomly out of the not-failing pool, and put them into a tunnel ordered by XOR distance from a random key.
Represents an exploratory search job for a particular key in the Kademlia network database.
Extended interface for message digests with additional functionality.
REF: BEP 10 Extension Protocol.
Simplified main class for App Context only, requiring only
i2p.jar.Tray manager for external use without router context access.
Represents a fake A-label in DNS labels.
A fake A-label is a special type of XN-label used for handling certain edge cases in internationalized domain names.
A fake A-label is a special type of XN-label used for handling certain edge cases in internationalized domain names.
Utilities for creating, storing, retrieving the signing keys for the netdb family feature.
Only STORED_KEY is fully trusted.
Ignore, but save, the SHA-256 checksum in the full 16-byte header when read in.
A cancellable torrent file downloader.
Class used to represent data fetched from the RRD.
Class to represent fetch request.
An EdDSA finite field.
Represents an element in a finite field of order $2^{b}-3$.
FIFO-based bandwidth limiter for managing inbound and outbound traffic.
Listener for bandwidth request completion events.
A bandwidth request, either inbound or outbound.
Bandwidth token refiller for FIFO-based bandwidth limiting.
Buffer implementation backed by a file.
Dump info on jars and wars.
Filter definition element that reads destination hashes from a file.
File-based log writer thread that pulls log records from the LogManager, writes them to the current logfile, and rotates the logs as necessary.
File name encoding utilities for cross-platform compatibility.
A FileFilter that accepts regular files with a suffix and optionally a prefix, case-insensitive.
General helper methods for messing with files
Utility class for file operations and XML file detection.
Access filter definition.
Base class for filter definition elements.
Factory for incoming connection filters.
Utility class for resolving unit symbols based on magnitude.
OutputStream that converts LF to CRLF during streaming.
Post-install fixup of the installed
wrapper.config on Windows, run by the installer as Main fixwinpaths wrapper.config.Handler for DatabaseLookupMessage received on floodfills.
Handles incoming DatabaseStoreMessage for floodfill network database operations.
Simple job to monitor the floodfill pool.
The Kademlia network database, using floodfill participants as the only storage tier.
Default implementation of the SegmentedNetworkDatabaseFacade.
This is where we implement semi-Kademlia with the floodfills, by selecting floodfills closest to a given key for searches and stores.
Classification result for floodfill peer selection.
Reliability classification for floodfill peers based on proven request-handling history.
Job to flood nearby floodfill routers with our RI.
This class extends StoreJob to fire off a FloodfillVerifyStoreJob after a successful store.
Two-phase floodfill store verification.
Result of querying a second floodfill (phase 2).
Result of querying the store peer (phase 1).
Handles match processing for flood-only search operations.
Message selector for flood-only database lookup operations.
Timeout handler for flood-only search operations.
Flood-only search implementation for network database lookups.
Base class for flood-based search operations with fallback to Kademlia.
Provides basic denial-of-service protection for database flood operations.
Manages an Object array with paging and sorting support.
Enumeration defining sort direction for folder elements.
An object that can (optionally) translate one font family name to an alternative.
Thrown when a barcode was successfully detected, but some aspect of the content did not conform to the barcode's format rules.
Encapsulates a QR Code's format information, including the data mask used and error correction level.
Simple form handler base class - does not depend on servlets or jsp, but instead the subclasses are populated with javabean properties.
Message class to encapsulate the message text and the canClose flag.
Wrapper around GNU-Crypto's Fortuna PRNG.
The Fortuna continuously-seeded pseudo-random number generator.
A public Internet Protocol port on the node which needs to be forwarded if the node is NATed.
Callback called by port forwarding plugins to indicate success or failure.
Represents the status of a port forwarding operation.
This class encapsulates the result of UPnP port forwarding attempts, including success/failure status, reason messages, and external port information.
This class encapsulates the result of UPnP port forwarding attempts, including success/failure status, reason messages, and external port information.
Gather fragments of I2NPMessages at a tunnel endpoint, making them available for reading when complete.
Handle fragments at the endpoint of a tunnel, peeling off fully completed I2NPMessages when they arrive, and dropping fragments if they take too long to arrive.
Receive messages out of the tunnel endpoint.
Manages free pages in a block file.
Manage the calculation of a moving average event frequency over a certain period.
Coordinates an event frequency over various periods.
Contains one deliverable message encrypted to a router along with instructions and a certificate 'paying for' the delivery.
Pool for reusing GarlicClove instances across message parsing.
Configuration and content for a garlic message containing one or more cloves.
Defines the wrapped garlic message.
Static methods to build GarlicMessages from a GarlicConfig, for both ElGamal/AES and ECIES (X25519 + PQ) encryption schemes.
Builds jobs to process garlic messages received outside tunnels.
Read a GarlicMessage, decrypt it, and return the resulting CloveSet.
Handles the reception and decryption of GarlicMessages.
Interface for handling decrypted garlic cloves.
General helper functions used by all UIs.
This class contains utility methods for performing mathematical operations over the Galois Fields.
Represents a polynomial whose coefficients are elements of a GF.
Manage geoip lookup in a file with the Tor geoip format.
Generate compressed geoipv6.dat.gz file, and lookup entries in it.
Request the router tells us the current bw limits.
Retrieves transport bids for outbound message delivery.
Request the other side to send us what they think the current time is.
This is a Java port of GNU getopt, a class for parsing command line arguments passed to programs.
JSON-RPC2 handler for the GetRate method.
GettextResource Extends ResourceBundle.
Temporarily excludes unresponsive peers from tunnel build selection.
GracefulShutdown manages the router's graceful shutdown/restart lifecycle.
A wrapper for a
GradientPaint that can be used as the key for a Map (including a HashMap).Basic graph defaults and maximum dimensions.
A thread started by RouterConsoleRunner that checks the configuration for stats to be tracked via jrobin, and adds or deletes RRDs as necessary.
Count and oldest age for one
GraphGenerator.StaleCause.Why coalesces are turning into samples that never reach a listener.
What the watchdog may do about one rate's listener.
Decide whether a repeated report is due, and remember the decision.
Why a graph listener is not producing RRD writes.
Registry of graph groupings: sets of stats that answer the same question and share a unit, so they can be drawn as one multi-series plot instead of several small ones.
Renders the graphs list (/graphs.jsp) and the single-stat page (/graph.jsp), plus the graph display configuration form.
A collection of static utility methods for shapes and images.
Creates and updates the in-memory or on-disk RRD database, and provides methods to generate graphs of the data.
Generate the RRD graph png images, including the combined rate graph.
Immutable configuration for a single graph render pass.
Mutable counterpart of
GraphRenderer.GraphRenderConfig; every setter returns itself.The display values a graph frame draws with, overridable per theme with CSS custom properties.
Represents a point on an EdDSA curve with support for multiple coordinate representations.
Available coordinate representations for a group element.
Helper methods for efficient primitive array growth and insertion.
Gunzip implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterOutputStream implementations.
Gzip-compressed file Buffer implementation.
Handle a lookup for a key received from a remote peer.
Processes database lookup messages received by floodfill routers.
Processes and stores DatabaseStoreMessage data in the floodfill network database.
Job to handle an inbound GarlicMessage received outside of a tunnel.
Something that can be stopped by the SAMBridge.
Base class for handling I2CP messages.
Builds jobs to handle a particular message type.
Interface to a Noise handshake.
Implementations of this interface can generate one hash value for a given object.
A 32-byte SHA-256 hash, used throughout I2P as a destination, router, or tunnel identifier and as an integrity value for hashed data.
SHA-384 secure hash algorithm implementation.
SHA-512 secure hash algorithm implementation.
Sorts in true binary order, not Base64 string order.
Utility for calculating XOR distance between router hashes.
Records the range of values that a hash value may take.
Class to represent RRD header.
Instances of this class model the header section of an RRD file.
References for the RFC 2047 encoded-word rules this class implements.
Helper for the /health page - renders router health rings using RingRenderer for a quick visual overview.
Base helper class for JSP helper beans.
Render the configuration menu at the top of all the config pages.
Utility class for hexadecimal conversion.
Hexdump class (well, it's actually a namespace with some functions, but let's stick with java terminology :-).
Hex table utilities for byte-to-string conversion.
HMAC-based Key Derivation Function (HKDF) implementation using HMAC-SHA256.
HMAC-SHA256 message authentication code generator for I2P cryptographic operations.
Performance-optimized SecretKey implementation for HMAC operations.
Abstract base class for HMAC (Hash-based Message Authentication Code) operations.
Helper for router console home page and configuration.
Defines the general configuration for a hop in a tunnel.
Take a received tunnel message, verify that it isn't a duplicate, and translate it into what the next hop will want.
Ping tester for address book entries.
Ping result data structure containing the outcome of a host reachability test.
Bridge class to provide static access to HostChecker functionality for JSP pages This avoids reflection issues and provides a clean interface.
Block certain Host headers to prevent DNS rebinding attacks.
Block certain Host headers to prevent DNS rebinding attacks.
Block certain Host headers to prevent DNS rebinding attacks.
Whether each site in the Sites of Interest listing is still worth showing.
Utility class for network host interface management and configuration.
Request the router look up the dest for a hash or a host.
Simple command-line ping tool Provides I2PIng-compatible functionality with direct I2PSocketManager usage.
Response to HostLookupMessage.
Handle I2CP dest replies from the router.
A naming service based on multiple "hosts.txt" files.
A hostname, b64 destination, and optional properties.
A class to iterate through a hosts.txt or config file without reading the whole thing into memory.
Utility class providing methods to parse and write files in a hosts.txt file format, and subscription file format.
Represents a horizontal rule in RRD graphs.
Represents a horizontal span in RRD graphs.
HTML encoding for safe text display in SusiMail web pages.
HTML constants for HTTP responses.
Utility class providing HTTP protocol constants and helper methods.
Represents an HTTP header field with a name and value.
Utility class for formatting HTTP headers.
Multicast UDP socket implementation for SSDP communication.
Represents a parsed HTTP packet with header and body handling.
HTTP request message with method, URI, headers, and content body.
Interface for receiving HTTP request notifications.
HTTP response message with status code, headers, and content body.
HTTP response stream with transparent gzip decompression (client side).
HTTP server implementation for the CyberLink HTTP framework.
A collection of HTTPServer instances that extends Vector.
A thread that handles HTTP requests for an HTTPServer.
HTTP socket wrapper providing input/output stream management
Represents an HTTP status line with version, status code, and reason phrase.
UDP socket implementation for SSDP (Simple Service Discovery Protocol) communication.
Defines the base functionality of API messages
Represent an error serializing or deserializing a message.
Define a way to handle a particular type of message.
Handle messages from the server for the client or vice versa.
Defines the base message implementation.
Produce the various messages the session needs to send to the router.
Contains the methods to talk to a router or client via I2CP, when both are in the same JVM.
Contains the methods to talk to a router or client via I2CP, when both are in the same JVM.
The I2CPMessageReader reads an InputStream (using
I2CPMessageHandler) and passes out events to a registered listener, where events are either messages being received, exceptions being thrown, or the connection being closed.Defines the different events the reader produces while reading the stream.
Base interface for all I2NP messages
Represent an error serializing or deserializing an APIMessage.
Handle messages from router to router.
Defines the base message implementation.
Interface for extending the types of messages handled - unused.
Provide a base scope for accessing singletons that I2P exposes.
Like
I2PThread but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.Define the standard means of interacting with the I2P system
Provide a means of hooking into an appropriate I2PClient implementation.
Base client implementation.
Contains a map of message handlers that a session will want to use.
This handles the starting and stopping of Jetty from a single static class so it can be called via clients.config.
JSON-RPC2 handler for the I2PControl method.
Version information and API compatibility for I2PControl interface.
Class for dissecting I2P repliable datagrams, checking the authenticity of the sender.
Class for creating I2P repliable datagrams.
Extends DefaultServlet to set locale for the displayed time of directory listings, to prevent leaking of the locale.
Base class of I2P exceptions
I2P ping utility for CLI use.
Exception thrown when I2P repliable datagram signature verification fails.
Modified from Jetty 6.1.26 StdErrLog.java and Slf4jLog.java Usage: org.eclipse.log.Log.setLog(new I2PLogger(ctx));
This class contains a number of properties ((key,value)-pairs).
Callback interface for property change notifications.
I2P security provider for Java cryptography.
This
RequestLog implementation outputs logs in the pseudo-standard NCSA common log format.Streaming server socket returned by
I2PSocketManager.getServerSocket().Bridge to allow accepting new connections.
Define the standard means of sending and receiving messages on the I2P network by using the I2CP (the client protocol).
Simple holder for tunnel pair information.
Implement multiplexing with a 1-byte 'protocol' and a two-byte 'port'.
Thrown when there is a problem doing something on the session.
Implementation of an I2P session running over TCP.
Session state enumeration.
Thread safe implementation of an I2P session running over TCP.
Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
I2PSession with protocol and ports
Define a means for the router to asynchronously notify the client that a new message is available or the router is under attack.
Simple client implementation with no Destination, just used to talk to the router.
Create a new session for doing naming and bandwidth queries only.
I2P sink implementation that sends datagrams to a fixed destination specified in the constructor.
I2P sink implementation that sends datagrams to any destination specified in each
I2PSinkAnywhere.send(Destination, byte[]) call, rather than a fixed destination.Renders the three forms of the /configure page - main settings, torrent creation filters, and tracker management - and applies submitted settings back to SnarkManager.
Web interface servlet for I2PSnark torrent management: torrent listing and status, adding torrents by file/URL/magnet, torrent creation, peer and bandwidth management, DHT and tracker status, comments, file browsing and download, configuration, and theme/locale support.
Result of building the new announce list.
Parsed announce parameters from the create torrent form.
Result of validating a base file for torrent creation.
Immutable parameters for rendering the comments/ratings section.
Snapshot read atomically from a torrent's comment set: the user's own rating, community rating count and average, and an iterator over the existing comments when any exist.
Result of building the announce list.
Parsed edit form parameters.
Immutable context for rendering a single file row in the torrent file browser.
Mutable counters for file row rendering.
Aggregated footer state, replacing a twelve-parameter signature.
Immutable context for rendering a peer row.
Peer status classification result.
Request-derived inputs shared by every sortable torrent-list header cell; replaces a thirteen-parameter signature.
The mutually exclusive states a torrent row can display, in the evaluation order of
I2PSnarkServlet.classifyStatus(boolean, boolean, boolean, boolean, boolean, boolean, int, int, boolean, boolean).Peer/rate activity flags scanned across one rendered page slice; drives which optional header cells render.
I2P-specific utilities and context management for I2PSnark.
Streaming socket returned by
I2PSocketManager.connect(Destination).A SocketAddress (Destination + port) so we can have SocketChannels.
Fetch a URL using a socket from the supplied I2PSocketManager.
An I2P-specific IOException thrown from input and output streams, with a stored status code to be used for programmatic responses.
Bridge between the full streaming lib and the I2PSocket API.
Centralize the coordination and multiplexing of the local client's streaming.
Listener for notification when an I2P session is disconnected.
Simplify the creation of I2PSession and transient I2P Destination objects if necessary to create a socket manager.
Centralize the coordination and multiplexing of the local client's streaming.
Define the configuration for streaming and verifying data on the socket.
Define the configuration for streaming and verifying data on the socket.
SOCKS tunnel specialized for IRC traffic with I2P filtering and security.
SOCKS proxy server that routes TCP connections through I2P network.
I2P source implementation for streaming data.
Protocol enum for I2P source handling.
Loads trusted ASCII certs from ~/.i2p/certificates/ and $I2P/certificates/.
Preferred over
Thread for all router uses.Listener for out-of-memory events.
Manages I2PTunnelTasks and I2PSessions.
Callback routine to find out.
Standard I2P client tunnel that forwards local TCP connections to I2P destinations.
Abstract base class for I2P client tunnels with common functionality.
SSL tunnel through HTTP proxy using CONNECT method.
A standard client, using an existing socket manager.
A standard server that only answers for registered ports, and each port can only be used once.
HTTP proxy reusing server's I2PSocketManager without outproxy capability.
Bidirectional HTTP server tunnel combining server and client functionality.
HTTP proxy that tunnels requests through I2P.
Request-scoped state machine for one speculative warm socket.
Slot lifecycle.
Common things for HTTPClient and ConnectClient Retrofit over them in 0.8.2.
Authentication result status for HTTP client connections.
HTTP client runner that filters response headers to enforce the "Connection: close" header, ensuring browsers treat the connection as non-persistent, even if the server doesn't comply.
HTTP server tunnel that filters headers and provides compression.
Pumps a client request body through to the I2P side and back.
IRC client tunnel with DCC support and filtering.
IRC server tunnel that filters registration to pass client destination hash as hostname.
I2PTunnelOutproxyRunner forwards data bidirectionally between two connected sockets: one representing an external socket connection and the other an I2P socket connection.
Thread that forwards traffic between an I2PSocket and a TCP Socket.
Snapshot of body-delivery progress used by
I2PTunnelRunner.shouldResumeIncompleteBody(long, long, boolean, boolean, boolean).For use in new constructor.
Winner of a dual-race empty retry: the socket that produced the first response byte, with a pushback stream that still holds that byte so the forwarder never loses the head of the response.
Callback for reconnecting via a second route when the first attempt completes with zero upstream bytes, or dies mid-body with an incomplete Content-Length response (Range resume).
Progress-based budget for body-resume cycles.
Callback interface for successful tunnel operation completion.
Base I2P tunnel server for handling incoming connections.
Base class for I2P tunnel servers and clients.
Base client class that sets up an I2P Datagram client destination.
Base client class that sets up an I2P Datagram server destination.
SkipList iterator with on-demand span loading (I2P version).
Memory-efficient SkipList span implementation (I2P version).
Represents a UPnP device icon with its associated metadata and image data.
A collection of UPnP device icons.
Represents a I2P identiconcache.
Identicon renderer interface.
This servlet generates identicon (visual identifier) images ranging from 16x16 to 1024x1024 in size.
Utility methods useful for implementing identicon functionality.
Pass-through serializer for byte arrays.
Periodically ramp the tunnel count with connected peers, and reduce it once nothing is running.
Close the POP3 connection after a certain idle time.
Monitors transit tunnels for idle behavior.
Converts domain names between Unicode and ASCII Compatible Encoding.
A
(String, Image) pair that links together a reference ID and the source image.Container for image rendering parameters in RRD graphs.
Abstract base class for image workers in RRD graphs.
Receive the inbound tunnel message, removing all of the layers added by earlier hops to recover the preprocessed data sent by the gateway.
NTCP 2 inbound connection establishment state machine.
Data for a new connection being established, where the remote peer has initiated the connection with us.
States for inbound SSU session establishment.
Data for a new connection being established, where the remote peer has initiated the connection with us.
Result of
InboundEstablishState2.selectSessionAddress(List, boolean, byte[]): the chosen RouterInfo address and, when the peer advertises a different IP than the sender's source address, an explanatory mismatch message.For throwing out of gotRI().
Override the hop processor to seed the message with a random IV.
Handle messages at the IBGW.
When a message arrives at the inbound tunnel endpoint, this distributor honors the instructions (safely).
Organize the received data message fragments, feeding completed messages to the
MessageReceiver and telling the PeerState to ACK.Modifiable Long, no locking.
Hold the raw data fragments of an inbound message.
Receive the preprocessed data for an inbound gateway, encrypt it, and forward it on to the first hop.
Byte range inclusive of end points.
Something that filters incoming streaming connections.
Backend bean for I2P tunnel management web interface.
Utility class for IP address manipulation and validation.
A collection of utilities relating to InetAddresses.
Represents a BitTorrent info hash used for DHT operations.
Helper for router information page rendering and form processing.
Receives and dispatches inbound network messages with configurable processing modes.
Automatic I2P router update installer and processor.
Integer serializer using 4-byte big-endian representation.
Determine how well integrated a peer is - how likely they will be useful to us if we are trying to get further connected.
An interface for classes that provide lowlevel information about Intel CPU's
Identifies Intel CPUs via CPUID and exposes instruction set support flags.
A manager for the in-JVM I2CP message interface.
A simple in-JVM ServerSocket using Piped Streams.
A simple in-JVM Socket using Piped Streams.
Listens for in-JVM connections on internal socket.
Tray manager for internal use with full router context access.
Abstract base class for DNS resource records representing internet addresses.
Extended by A and AAAA records to provide common functionality for IP address storage and retrieval.
Extended by A and AAAA records to provide common functionality for IP address storage and retrieval.
Background maintenance job that keeps introducer RouterInfos warm in the local netDb.
Keep track of inbound and outbound introductions.
Exception thrown when an authentication token is invalid.
Exception thrown when a bencoded stream is corrupted or malformed.
Signals that there was an issue reading from the MaxMind DB file due to unexpected data formatting.
Signals that there was an issue reading from the database file due to unexpected data formatting.
Exception thrown when filter definition file cannot be parsed.
Exception thrown when UPnP device description is invalid or cannot be parsed.
Exception for invalid DNS names.
Exception thrown when a DNS name exceeds the maximum allowed length.
DNS names are limited to 255 octets according to DNS specifications.
DNS names are limited to 255 octets according to DNS specifications.
Exception thrown when a DNS label exceeds the maximum allowed length.
DNS labels are limited to 63 characters according to DNS specifications.
DNS labels are limited to 63 characters according to DNS specifications.
An exception indicating a corrupted RRD.
Order profiles by their capacity, but backwards (highest capacity / value first).
Interface for custom data sources used in RRD graphs.
Implement this interface to create custom datasources that can be passed to RrdGraphDef for graphing operations.
Implement this interface to create custom datasources that can be passed to RrdGraphDef for graphing operations.
Throttles connection attempts by IP address to prevent abuse.
The basic visible methods of any pseudo-random number generator.
Static methods to filter individual lines.
Thread to do inbound filtering.
Thread to do outbound filtering.
Performs targeted followup lookups during iterative search operations.
Processes DatabaseSearchReplyMessage responses during iterative searches.
Slightly modified version of FloodOnlyLookupSelector.
Traditional Kademlia iterative search with enhanced robustness.
Handles timeout events for individual peer lookups in iterative searches.
Provide a generic interface for IV validation which may be implemented through something as simple as a hashtable or more a complicated bloom filter.
Emulation of javax.swing.JApplet for the NDT (Network Diagnostic Tool) plugin.
JAXP-based XML parser implementation.
Emulation of javax.swing.JButton for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JCheckBox for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JComboBox for the NDT (Network Diagnostic Tool) plugin.
Start Jetty where the args are one or more XML files.
Parses a Jetty XML configuration file.
Emulation of javax.swing.JFrame for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JLabel for the NDT (Network Diagnostic Tool) plugin.
Interface for router-internal executable tasks.
Base implementation of a Job
Prioritizes and executes router jobs with preference for earlier scheduled tasks.
Helper for job queue page rendering and form processing.
Worker thread that executes jobs from the router job queue.
Dynamic job runner scaling controller for the JobQueue.
Collects and maintains statistical data for job execution performance.
Totals over the most recent runs of one job type.
Define the timing requirements and statistics for a particular job
Emulation of javax.swing.JOptionPane for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JPanel for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JProgressBar for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JScrollPane for the NDT (Network Diagnostic Tool) plugin.
Jsonables can be serialized in java script object notation (JSON).
JsonArray is a common non-thread safe data format for a collection of data.
Jsoner provides JSON utilities for escaping strings to be JSON compatible, thread safe parsing (RFC 4627) JSON strings, and serializing data to strings in JSON format.
Should be implemented by Enums so that keys are easily maintained.
JsonObject is a common non-thread safe data format for string to data mappings.
Represents a JSON-RPC 2.0 error that occurred during the processing of a request.
Represents a JSON-RPC 2.0 error that occured during the processing of a request.
Helper utility class for I2PControl JSON-RPC2 handlers.
The base abstract class for JSON-RPC 2.0 requests, notifications and responses.
Represents a JSON-RPC 2.0 notification.
Enumeration of the three parameter types in JSON-RPC 2.0 requests and notifications.
Thrown to indicate an exception during the parsing of a JSON-RPC 2.0 message string.
Parses JSON-RPC 2.0 request, notification and response messages.
Represents a JSON-RPC 2.0 request.
Represents a JSON-RPC 2.0 response.
Provide an JSON-RPC 2.0 API for remote controlling of I2P
Utility class for JSON object manipulation and message handling.
Build-time wrapper that calls org.apache.jasper.JspC reflectively and then exits, so the build does not depend on the Jasper API at compile time.
Emulation of javax.swing.JSpinner for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JTextArea for the NDT (Network Diagnostic Tool) plugin.
Emulation of javax.swing.JTextPane for the NDT (Network Diagnostic Tool) plugin.
Kademlia based version of network database.
Kademlia bucket trimmer for DHT node management.
Group, without inherent ordering, a set of keys a certain distance away from a local key, using XOR as the distance metric
A concurrent implementation using ConcurrentHashSet.
In-memory storage of buckets sorted by XOR metric from base (us) passed in via constructor.
Called when a kbucket can no longer be split and is too big.
implementation of Keccak based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
Parameters for Key Encapsulation Mechanism (KEM) operations.
Specialized certificate for defining cryptographic key types used in I2P identities.
Java Security Provider KeyFactory implementation for EdDSA (Edwards-curve Digital Signature Algorithm).
Java Security Provider KeyFactory implementation for ElGamal public-key cryptosystem.
Factory interface for generating I2P cryptographic key pairs.
The base class for parameters to key generators.
Comprehensive key generation facility for I2P cryptographic operations.
Manages all router cryptographic key pairs including persistent storage of router keys and in-memory management of LeaseSet keys for secure communications.
A pair of I2P cryptographic keys consisting of a public key and corresponding private key.
Key pair generator for EdDSA (Edwards-curve Digital Signature Algorithm) keys.
Modified from eddsa Only supported strength is 2048.
A backend for storing and retrieving SigningPublicKeys to be used for verifying signatures.
Thread-safe mapping from router hashes to session keys.
Container for cryptographic keys and certificate as used by I2P identities.
Utility class for extracting word and bit offsets from cryptographic keys for Bloom filter operations.
Interface for extracting bit offsets from cryptographic keys for Bloom filter operations.
Interface for extracting word offsets from cryptographic keys for Bloom filter operations.
Provider for managing I2PControl keystore operations.
Keystore utilities, consolidated from various places.
Kademlia Remote Procedure Call implementation for BitTorrent DHT (BEP 5) adapted for I2P.
First implementation of Largest-Triangle-Three-Buckets.
A variation of the Largest-Triangle-Three-Buckets.
A LDH (Letters, Digits, Hyphen) label, which is the classical label form.
A DNS label with a leading or trailing hyphen ('-').
Authorization grant proving a router/tunnel may receive messages for a destination.
Implementation of Lease2 as specified in Proposal 123: New NetDb Entries.
Bundle up the data points necessary when asynchronously requesting a lease from a client.
Defines the set of leases that a destination currently has available for routing messages.
Implementation of LeaseSet2 as specified in Proposal 123: New NetDb Entries.
Wrap up the keys given to the router when a destination connects to it.
Handles legend composition and layout for RRD graphs.
Represents legend text elements in RRD graphs.
A LinkedHashMap with a maximum size, for use as an LRU cache.
InputStream that limits total bytes read to a specified maximum.
Abstract output stream that limits writes and provides completion callback.
Callback interface for notification when a limited output stream completes.
Represents a line plot element in RRD graphs.
A wrapper for a
LinearGradientPaint that can be used as the key for a Map (including a HashMap).Interpolates datasource values from timestamp-value collections.
Suitable for linear interpolation of time-series data points.
Suitable for linear interpolation of time-series data points.
A enumeration of interpolation methods
A thread-safe list for managing event listeners.
Renders the port mapper debug tab as a single consolidated table: the services registered with the port mapper plus the in-JVM internal server sockets, with a column flagging which ports are internal.
Return value of
I2PSession.lookupDest2(String, long).Run any client applications specified in
clients.config.Public for router console only, not for use by others, subject to change.
Run once or twice at startup by StartupJob, and then runs BootCommSystemJob.
Key data container for router information.
Convert foo.jsp to foo_xx.jsp for language xx.
Pull the caching used only by KBucketImpl out of Hash and put it here.
Very simple web server.
Represents geographical location data including coordinates and address information.
A simple log with automatic time stamping.
Wrapper class for whatever logging system I2P uses.
Bean for managing and displaying subscription log entries and statistics.
Offer a glimpse into the last few console messages generated.
Unified logging interface for I2PTunnel components.
Login servlet for console authentication.
Defines the log limit for a particular set of logs.
Manages the logging system, loading (and reloading) the configuration file, coordinating the log limits, and storing the set of log records pending.
Logout servlet to invalidate session.
Keep track of a log entry, unformatted.
Render a log record according to the log manager's settings.
Utility service for logarithmic scaling operations in RRD graphs.
Helper for the logs page.
Collapses repeated occurrences of the same log message.
What the caller should do with one occurrence.
Log writer thread that pulls log records from the LogManager and writes them to the log.
Base class for SHA-384 and SHA-512.
This object represents the definition of a long option in the Java port of GNU getopt.
Simple lookahead buffer to keep the last K bytes in reserve, configured to easily be reused.
Tracks lookup frequency per (peer, tunnel) pair to provide DOS protection via temporary bans on excessive requesters.
Deferred callback for
IPSession.lookupNonblocking().Connect via I2CP and ask the router to look up the lease of a hash, convert it to a Destination and return it.
Look up the lease of a hash, to convert it to a Destination for the client.
The return value of
I2PSession.lookupDest2(String, long).Provides a lookup service for information based on an IP address.
Provides denial-of-service protection for network database lookup operations.
Standalone launcher that forwards magnet links, torrent URLs, info hashes, or torrent file paths to the I2PSnark browser API (POST /_add).
Simple state for the download of the metainfo, shared between Peer and ExtensionHandler.
Magnet URI parser and handler for BitTorrent magnet links.
Data structure representing a single email message for folder display and sorting.
Caches email data for each folder with POP3 mailbox integration.
Enumeration of email fetching strategies.
Represents a part of a multipart email message with headers and content.
Main entry point for the I2P Desktop GUI application.
Entry point for the installer's utility jar: dispatches to one of the other classes in this package, because the installer can only start a jar with a single main class.
Utility class for SSDP MAN (Method Application Namespace) header values.
Maps data coordinates to pixel coordinates for RRD graph rendering.
Enumeration of text alignment and formatting markers used in RRD graph legends.
Router instance liveliness marker for multi-instance detection.
IP address masking utility for router family and network detection.
Utility class for QR code mask operations.
The primary (mux) session for a SAMv3 client, sharing a single I2P destination across multiple protocol subsessions (STREAM, DATAGRAM, RAW).
Encapsulates custom configuration used in methods of
MatrixToImageWriter.Writes a
BitMatrix to BufferedImage, file or stream.Utility class for QR code matrix operations.
An enumeration of the values for the
meetOrSlice attribute.Interface for Memoable objects.
Buffer implementation backed by a byte array.
Class to define Message.
Represents a BitTorrent protocol message for peer communication.
Context information about JSON-RPC 2.0 request and notification messages.
Receive raw information from the I2PSession and turn it into Packets, if we can.
Logs router message traffic for debugging and network analysis.
Defines the message ID of a message delivered between a router and a client in a particular session.
InputStream implementation that accepts messages arriving out of order and presents the data in proper sequence for reading.
An OutputStream implementation that buffers data and forwards it to a
MessageOutputStream.DataReceiver in chunks upon buffer full or flush.Interface for receiving data flushed from this stream.
Interface to detect status of an asynchronous write operation.
Defines the payload message a router sends to the client.
Handle I2CP MessagePayloadMessages from the router delivering the contents of a message by accepting it, decrypting the payload, adding it to the set of received messages, and telling the router that it has been received correctly.
Async job to notify the client that a new message is available for them, or just send it directly if specified.
Pull fully completed fragments off the
InboundMessageFragments queue, parse 'em into I2NPMessages, and stick them on the InNetMessagePool by way of the UDPTransport.Translate strings for this package.
Provides internationalization and string translation for the webmail package.
Provides translatable strings for the addressbook application.
Translate strings for this package.
Translate strings for this package.
Define a mechanism to select what messages are associated with a particular OutNetMessage.
Contains the state of a payload message being sent to a peer.
Defines the message a router sends to a client about a single message.
Handle I2CP MessageStatusMessages from the router.
The NDT control message type constants.
Singleton to manage the logic (and historical data) to determine whether a message is valid or not (meaning it isn't expired and hasn't already been received).
Method and class for garlic encrypting outbound netdb traffic, and sending keys and tags for others to encrypt inbound netdb traffic, including management of the ElGamal/AES tags.
A single key and tag, for receiving a single message.
Wrapper so that we can keep track of the key and tags for later notification to the SKM.
Metadata for MaxMind database files.
Holds all information extracted from a torrent file.
Implementation of MetaLease as specified in Proposal 123: New NetDb Entries.
Implementation of MetaLeaseSet as specified in Proposal 123: New NetDb Entries.
A naming service of multiple naming services.
Second migration, as of 2.9.0.
Utility class for MIME type detection based on URL file extensions.
Based on MimeTypes from Jetty 6.1.26, heavily simplified and modified to remove all dependencies on Jetty libs.
Utility class for Internationalized Domain Names in Applications (IDNA) processing.
Provides methods to convert between Unicode and ASCII representations of domain names according to IDNA specifications.
Provides methods to convert between Unicode and ASCII representations of domain names according to IDNA specifications.
As modified from BiglyBT MLabPlugin
The parameter for runNDT()
Returned from runNDT
The listener for ToolRun
Wrapper around bouncycastle.
Implementation of the MLKEM algorithm for the Noise protocol.
Core engine for ML-KEM (Module-Lattice Key Encapsulation Mechanism) operations.
Extractor for ML-KEM private key operations.
Generator for ML-KEM encapsulated secrets.
Indistinguishability under Chosen Plaintext Attack (IND-CPA) security for ML-KEM.
Try to keep key pairs at the ready.
Key generation parameters for ML-KEM (Module-Lattice Key Encapsulation Mechanism).
Generator for ML-KEM (Module-Lattice Key Encapsulation Mechanism) key pairs.
Base key parameters for ML-KEM (Module-Lattice Key Encapsulation Mechanism).
Parameters for ML-KEM (Module-Lattice Key Encapsulation Mechanism) algorithms.
Private key parameters for ML-KEM (Module-Lattice Key Encapsulation Mechanism).
Public key parameters for ML-KEM (Module-Lattice Key Encapsulation Mechanism).
See ISO 18004:2006, 6.4.1, Tables 2 and 3.
Monotone cubic Hermite interpolation (Fritsch-Carlson / Fritsch-Butland) used to smooth graph plot lines and area boundaries.
Emulation of java.awt.event.MouseAdapter for the NDT (Network Diagnostic Tool) plugin.
Emulation of java.awt.event.MouseEvent for the NDT (Network Diagnostic Tool) plugin.
Utility class for extracting MP3 metadata tags for display in the I2PSnark web interface.
Test utility for extracting and displaying MP3 metadata tags.
Used for both incoming and outgoing message IDs.
The MTU for the network interface of an address.
Fire up multiple routers in the same VM, all with their own RouterContext (and all that entails).
Sends to one of many Sinks based on toPort.
Multi-source data distributor that forwards data to multiple sink destinations.
Sink wrapper for multi-source destinations.
A simple mutex implementation for thread synchronization.
Multiplexed decryption engine supporting both ElGamal and ECIES+AEAD with adaptive ordering.
Post-quantum hybrid decryption engine supporting both ECIES and ML-KEM with adaptive ordering.
Post-quantum hybrid session key manager combining ECIES and ML-KEM operations.
Multiplexed session key manager combining ElGamal and ECIES key management.
DNS MX (Mail Exchange) record payload.
Specifies mail servers responsible for accepting email messages on behalf of a domain.
Specifies mail servers responsible for accepting email messages on behalf of a domain.
Utility class for retrieving JSON-RPC 2.0 named parameters (key-value pairs packed into a JSON Object).
Naming services create a subclass of this class.
Talk to the NamingService API instead of modifying the hosts.txt files directly, except for the 'published' addressbook.
Listener for naming service events.
Interface for updating naming services.
BigInteger that takes advantage of the jbigi library for the modPow operation, which accounts for a massive segment of the processing cost of asymmetric crypto.
Helper for navigation and client application management in router console.
Service to put links on the console.
Constants for the NDT (Network Diagnostic Tool) client, including protocol values, test type flags, firewall test statuses, data rate indicators, RFC option flags, and unit conversion factors.
Class that defines utility methods used by the NDT code.
Negative cache for network database lookup operations.
Comparators used when rendering the network database pages.
Comparator for countries by translated name.
Comparator for LeaseSets, used in the leaseset listing.
Comparator for LeaseSets sorted by hash distance from local router.
Comparator for router addresses by transport then host.
Helper for network database page rendering and form processing.
Renders the network database (netdb) information for the router console.
Memoized "{0} ago" translations.
Cached snapshot of the network database sorted by RouterInfoComparator.
Abstract interface for I2P network database operations.
JSON-RPC2 handler for the NetworkSetting method.
Utility class that creates a new "Frame" with a window closing functionality.
Listener for notifications about new email arrivals.
Command line interface for news and blocklist management utilities.
Represents a single news entry with content and metadata.
HTML-formatted full news entries.
Task to fetch updates to the news.xml, and to keep track of whether that has an announcement for a new version.
Task to periodically look for updates to the news.xml, and to keep track of whether that has an announcement for a new version.
If news file does not exist, use file from the initialNews directory in $I2P.
Manages I2P router news entries with in-memory storage and disk persistence.
Data structure for I2P router news feed metadata and update information.
Represents a software release with version requirements and update sources.
Represents an update source with multiple distribution methods.
Task to periodically look for updates to the news.xml, and to keep track of whether that has an announcement for a new version.
Parser for I2P news feeds in Atom format with security filtering.
The action taken when encountering a non-whitelisted XHTML element or blacklisted attribute in the feed content.
X25519 public key with identifier for next session key exchange in ratchet protocol.
Node Identifier (NID) for Kademlia DHT operations.
Generates 3x3 geometric identicons from hash codes using symmetric and rotated patch patterns.
A no-op cache singleton.
Represents an XML node with name, value, attributes, and child nodes.
Interface for caching nodes during MaxMind database lookups.
Interface for loading nodes on cache miss.
Base data container for UPnP XML node information.
Comprehensive node information container for DHT operations.
Comparator for finding nodes closest to a target key in the DHT keyspace.
A vector-based collection of XML nodes.
Utility functions for the Noise protocol library.
I2P refactor to make Pattern IDs enums Pulled out from HandshakeState and SymmetricState
Pattern identifiers for Noise protocol handshake patterns.
A DNS label which contains more than just letters, digits and a hyphen.
A Non-Reserved LDH label (NR-LDH label), which do not have "--" in the third and fourth position.
Interface for non-RRD data sources.
Represents computed or derived data sources that don't directly reference RRD data but calculate values from other sources.
Represents computed or derived data sources that don't directly reference RRD data but calculate values from other sources.
Normalizes RRD data timestamps and values to consistent intervals.
Handles alignment of time-series data to ensure regular sampling intervals and proper chronological ordering.
Handles alignment of time-series data to ensure regular sampling intervals and proper chronological ordering.
Interface for handling JSON-RPC 2.0 notifications.
A service to send messages to users.
Interface for receiving SSDP notification messages.
Represents a UPnP event notification request.
DNS NS (Nameserver) record payload.
Delegates a DNS zone to use the given authoritative name servers.
Delegates a DNS zone to use the given authoritative name servers.
DNS NSEC (Next Secure) record payload for DNSSEC.
Provides authenticated denial of existence for DNS records and links to the next valid name in the zone.
Provides authenticated denial of existence for DNS records and links to the next valid name in the zone.
DNS NSEC3 (Next Secure 3) record payload for DNSSEC.
Provides authenticated denial of existence with hashed names to prevent zone enumeration attacks.
Provides authenticated denial of existence with hashed names to prevent zone enumeration attacks.
DNSSEC NSEC3 Hash Algorithms.
DNS NSEC3PARAM record payload for DNSSEC.
Contains parameters used for NSEC3 hash calculations including algorithm, iterations, salt, and flags.
Contains parameters used for NSEC3 hash calculations including algorithm, iterations, salt, and flags.
EDNS NSID (Name Server Identifier) option.
Utility class for SSDP NT (Notification Type) header values and validation.
NTCP2 Padding/Dummy/Delay configuration for data phase.
NTCP 2 payload generation and parsing utilities.
Base class for NTCP 2 payload blocks to be transmitted.
Block containing the current date and time.
Block containing I2NP message.
Block containing options data.
Block containing padding data.
For all callbacks, recommend throwing exceptions only from the handshake.
Block containing router information.
Block containing termination data.
Coordinates a connection to a single peer using NTCP 1 or NTCP 2 protocols.
Reusable NTCP2 payload block list and blocks, per writer thread.
Buffer for preparing data to be written to the connection.
Handles asynchronous post-send processing of OutNetMessage using a dynamically resizable thread pool executor with a bounded queue and backpressure.
Non-blocking TCP (NTCP) transport implementation for I2P.
The bid tier selected by the capacity/cost cascade, in order from most to least attractive.
How a peer's announced network id compares with ours: the same, absent, or a different network, which
NTCPTransport.bid(RouterInfo, int) treats as grounds for a ban rather than an unreachable peer.NtpClient - an NTP client for Java.
This class represents a NTP message, as specified in RFC 2030.
Utility class for SSDP NTS (Notification Sub-Type) header values.
Number Theoretic Transform (NTT) implementation for ML-KEM operations.
Thread-safe counter for tracking occurrences of objects.
Non-thread-safe counter for tracking occurrences of objects.
Out-of-memory error handler for emergency router shutdown.
DNS OPENPGPKEY record payload for OpenPGP public keys.
Associates OpenPGP public keys with domain names for secure email and code signing applications.
Associates OpenPGP public keys with domain names for secure email and code signing applications.
DNS OPT record payload for EDNS0 extensions.
Enables extended DNS features and options beyond original DNS protocol.
Enables extended DNS features and options beyond original DNS protocol.
Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).
OsfwWorker creates a thread that listens for a message from the server.
A Non-LDH label which does not begin with an underscore ('_'), hyphen ('-') or ends with an hyphen.
Helper cache manager for outbound message optimization in OCMOSJ.
Composite key for caches, combining source and destination Hashes.
Static methods to create a Garlic Message with one or more cloves.
Send a client message out an outbound tunnel and into an inbound tunnel on the target leaseSet.
Data for a new connection being established, where we initiated the connection with a remote peer.
States for outbound SSU session establishment.
Data for a new connection being established, where we initiated the connection with a remote peer.
Per-introducer introduction states.
Stores all the state for an unsent or partially-sent message.
Turn the preprocessed tunnel data into something that can be delivered to the first hop in the tunnel.
When a message arrives at the outbound tunnel endpoint, this distributor honors the instructions.
Coordinate the outbound fragments and select the next one to be built.
Tracks outbound messages.
Maintain the outbound fragmentation for resending, for a single message.
NTCP 2 only.
We are the outbound gateway - we created this outbound tunnel.
Receive the preprocessed data for an outbound gateway, encrypt all of the layers, and forward it on to the first hop.
Sent from the OBEP to the tunnel creator via an inbound tunnel.
We are the end of an outbound tunnel that we did not create.
Wrap up an outbound I2NP message, along with the information associated with its delivery and jobs to be fired off if particular events occur.
Routes outbound messages to the communication system for delivery.
Interface for outproxy configuration.
Write-only Buffer implementation.
Utility methods for converting byte arrays into ints and longs, and back again.
This contains solely the data that goes out on the wire, including the local and remote port which is embedded in the I2CP overhead, not in the packet itself.
Builds and encrypts SSU2 protocol packets for UDP transport.
Class for passing multiple fragments to buildPacket().
Dispatch inbound stream packets to a small pool of single-threaded shard workers, so a slow or hostile connection no longer stalls the session notifier thread for every other connection on the same destination.
Process one dispatched (connection, packet) pair.
Handles incoming packets by dispatching them to the appropriate connection, server socket, or responding with a reset (RST) packet if no valid connection is found.
Pull inbound packets from the inbound receiver's queue, figure out what peer session they belong to (if any), authenticate and decrypt them with the appropriate keys, and push them to the appropriate handler.
This is the class used for outbound packets.
Blocking thread to grab new packets off the outbound fragment pool and toss them onto the outbound packet queues.
Queue out packets to be sent through the session.
A pair of routers and the distance between them.
Emulation of java.awt.Panel for the NDT (Network Diagnostic Tool) plugin.
Represents a name-value parameter pair used in HTTP requests and responses.
A collection of Parameter objects that extends Vector.
Cipher parameters with associated context data.
Cipher parameters with associated random number generator.
The base abstract class for the JSON-RPC 2.0 parameter retrievers.
Abstract base class for XML parsers.
Exception thrown when XML parsing fails.
Fetch exactly the first 'size' bytes into a stream Anything less or more will throw an IOException Retries may be given; zero for no retries.
Represents a piece of a torrent being downloaded, storing partial data either on the heap or in a temporary file if the piece is large.
Count how often we have accepted a tunnel with the peer as the previous or next hop.
Result of throttling decision for tunnel participation requests.
Manage both plaintext and salted/hashed password storage in
router.config.Iterator for processing paths in RRD graph rendering.
Information about all supported handshake patterns.
Message payload container for I2P communications with encryption support.
A GarlicConfig that holds a single I2NPMessage payload with no sub-cloves.
Write a standard pcap file with a "TCP" packet that can be analyzed with standard tools such as wireshark.
RRD PDEF (Plottable Data Source Definition) implementation.
Creates data sources from plottable objects that can provide values based on timestamps.
Creates data sources from plottable objects that can provide values based on timestamps.
Represents a plottable data definition (PDEF) in RRD graphs.
Instances of this class model the primary data point status from an RRD file.
Represents a single peer participating in a specific torrent within the DHT tracker.
Represents a peer in the BitTorrent network, managing all public information and communication with that peer.
Accepts incoming connections from peers.
A unique exception so we can tell the ConnectionAcceptor about non-BT connections.
TimerTask that checks for good/bad up/downloader.
Handles incoming BitTorrent protocol messages from a peer.
This class runs in a separate thread to continuously read and parse incoming messages, delegating them to the appropriate PeerState handlers.
This class runs in a separate thread to continuously read and parse incoming messages, delegating them to the appropriate PeerState handlers.
Manages outgoing BitTorrent protocol messages to a peer.
This class maintains a queue of outgoing messages and handles bandwidth limiting, message prioritization, and reliable delivery to the peer.
This class maintains a queue of outgoing messages and handles bandwidth limiting, message prioritization, and reliable delivery to the peer.
Coordinates peer activities for a single torrent including upload/download management, peer selection, piece distribution, and bandwidth allocation.
Thread-safe collection for managing PeerCoordinator instances across multiple torrents.
Helper for peer connections page rendering and form processing.
HTML rendering of peers (flag, capability bar, identity block) for the NetDb, PeerHelper, and tunnel pages.
Store the address information about a peer.
Listener for Peer events.
Tracks peer capabilities and manages the periodic profile reorganization cycle.
Manage peer references and keep them up to date so that when asked for peers, it can provide appropriate peers according to the criteria provided.
Base implementation that has simple algorithms and periodically saves state.
Copied from http://www.i2p2.i2p/how_peerselection.html
Thread-safe collection of all peers participating in a single torrent.
Defines the criteria for selecting a set of peers for use when searching the PeerManager.
Abstract base class for peer selection in Kademlia routing tables.
Contain all of the state about a UDP connection to a peer.
Manages the state and protocol logic for a BitTorrent peer connection.
This class tracks peer interest/choking status, piece availability, request queues, and handles all BitTorrent protocol message processing.
This class tracks peer interest/choking status, piece availability, request queues, and handles all BitTorrent protocol message processing.
Fast-retransmit recovery stage for a single message, by NACK count.
Result of classifying one outbound message during a finishAndAllocate() scan over _outboundMessages.
Contain all of the state about a UDP connection to a peer.
Decision of the connection-migration classifier for MIGRATION_STATE_PENDING.
Small, stub version of PeerState2, for handling destroy acks with possible tokens in them.
Initiate a test (we are Alice).
Periodically tests selected peers to gather real-time performance data and update peer profiles.
Entry points are runTest() to start a new test as Alice, and receiveTest() for all received test packets.
Track the state of a peer test.
Roles for peer testing scenarios.
Stores all the state for an unsent or partially-sent message.
A "minimal perfect hash" for Strings.
Retrieve / Store the local DHT in a file.
Output rate data.
Persistent network database storage with disk I/O and memory management.
ConcurrentHashMap with backing in the
router.config file.Manages persistent on-disk email cache with custom compressed format.
Handles persistent storage and retrieval of news entries to/from disk.
Router information persistence and synchronization job.
Store and retrieve analysis files from disk.
Represents a torrent piece and tracks which peers have it and are requesting it.
Connectivity tester that pings streamr destinations at regular intervals to monitor network status.
Abstract base class for plot elements in RRD graphs.
Start/stop/delete plugins that are already installed Get properties of installed plugins Get or change settings in plugins.config.
Stop all plugins that are installed and running.
Check for an updated version of a plugin.
Check for or download an updated version of a plugin.
Check for an updated version of a plugin.
A total score and a List of reason Strings.
For marking end-of-queues in a standard manner.
Polynomial representation for ML-KEM operations.
Simple implementation of the Poly1305 message authenticator.
Vector of polynomials for ML-KEM operations.
Data about a tunnel we created.
POP3 client for retrieving email from POP3 servers over I2P.
Request for fetching email data with UIDL and header options.
Provides a relative working directory for i2p based upon properties set by the parent process.
Map services to internal or external application ports for this context.
Utility class for retrieving JSON-RPC 2.0 positional parameters (packed into a JSON Array).
Interface for priority queue entries with sequence tracking.
Interface for receiving UPnP device presentation requests.
An enumeration of the values for the
preserveAspectRatio attribute.Priority blocking queue with bounded capacity and FIFO ordering within priority levels.
Represents printable text elements in RRD graphs.
Priority-aware bounded send pool for NTCP transport.
Private (secret) key for the asymmetric encryption of an I2P destination.
This helper class reads and writes files in the same "eepPriv.dat" format used by the client code.
Probes peers to verify they are still alive, using DirectLookupJob to ask for their RouterInfo.
Manages peer profiles and performance metrics for router peers.
Methods to update profiles.
Categorizes peers into performance tiers (fast, high-capacity, well-integrated) based on historical metrics from PeerProfile.
Why a peer was evicted from a tier.
Defines peer selection slicing modes for tier-based peer organization.
Helper class to refactor HTML rendering from out of the ProfileOrganizer.
Write profiles to disk at shutdown, read at startup.
Helper for peer profiles page rendering and form processing.
Represents a UPnP event property containing a name-value pair.
A collection of UPnP event properties.
Class aggregating operations that can be performed for sending/receiving/reading Protocol messages.
A latency baseline for one transport, built from the round trip times that transport has actually measured.
DNS PTR (Pointer) record payload.
Used for reverse DNS lookups, mapping IP addresses to domain names.
Used for reverse DNS lookups, mapping IP addresses to domain names.
Cryptographic public key for asymmetric encryption in I2P.
Public suffix is a set of DNS names or wildcards concatenated with dots.
Parses the list from publicsuffix.org and configures a PublicSuffixFilter.
Utility class that can test if DNS names match the content of the Public Suffix List.
Publish the local router's RouterInfo periodically.
This class represents a tunnel gateway with multiple hops that accepts messages, then coalesces and fragments them before sending them down the tunnel.
QR Code representation for encoding.
This object renders a QR Code as a BitMatrix 2D array of greyscale values.
This servlet generates QR code images.
Interface for handling UPnP query control events.
Represents a UPnP query request for state variables.
Represents a UPnP query response.
A DNS question (request).
Zero-copy in-JVM.
Fetches messages off an In-JVM queue, zero-copy.
ref: https://en.wikipedia.org/wiki/Quoted-printable
A wrapper for a
RadialGradientPaint that can be used as the key for a Map (including a HashMap).Implementation of RandomAccessInterface using RandomAccessFile.
Interface for random access file operations.
Draw an ASCII-Art representing the fingerprint so human brain can profit from its built-in pattern recognition ability.
This servlet generates random art (visual identifier) images.
Removes a random element, but only if the bucket hasn't changed in 5 minutes.
Random iterator for efficient early-termination iteration over collections.
Singleton for whatever PRNG i2p uses.
Removes a random element.
Container for outbound ratchet encryption data including tag, key, nonce, and optional next session keys for message preparation The object returned from
SKM.consumeNextAvailableTag() to the engine encrypt.Ratchet payload generation and parsing.
Acknowledgment block for ratchet payload.
Acknowledgment request block for ratchet payload.
Base class for blocks to be transmitted.
Timestamp block for ratchet payload synchronization and timing.
Garlic clove block for embedding I2NP messages in ratchet payload.
Next session key block for ratchet key exchange operations.
Options block for ratchet protocol configuration and negotiation.
Padding block for ratchet payload size alignment and obfuscation.
For all callbacks, recommend throwing exceptions only from the handshake.
Packet number block for ratchet payload.
Termination block for ratchet session closure with reason codes.
8-byte session tag for ratchet protocol messages with efficient long-based storage representation for memory optimization Does not extend SessionTag or DataStructure to save space.
Session key manager for ratchet encryption.
Manages session tags and keys for a single ratchet direction with automatic key generation, supporting both inbound lookahead and on-demand outbound operations
Simple rate calculator for periodically sampled data points - determining an average value over a period, the number of events in that period, the maximum number of events (using the interval between events), and lifetime data.
One coalesced sample, retained so a healed listener can backfill missed steps.
Storage space for computations of various averages.
Centralized rate period constants for memory-optimized statistics collection.
Delivers coalesced rate samples to
RateSummaryListeners off the coalesce thread.Coordinates a moving rate over various periods.
Accumulates samples of a mean rate stat and emits one
addRateData per flush, so a hot path that samples a level once per message or per 1KB fragment pays one stat lookup and one monitor per rate period instead of one per sample.Receive the state of the rate when its coalesced.
Read-only Buffer for constant data initialized from a byte array.
Simply read the router config periodically, so that the user may make config changes externally.
Interface for counting bytes read or skipped.
Instances of this class provide a reader for the MaxMind DB format.
Pool of running threads which will process any read bytes on any of the NTCPConnections, including decryption of the data read, connection handshaking, parsing bytes into I2NP messages, etc.
The file mode to use when opening a MaxMind DB.
The general exception class throw when something goes wrong during decoding of a barcode.
Modified from I2PTunnelHTTPServer Handles UTF-8.
This used be called from StartAcceptingClientsJob but is now disabled.
Defines the message a client sends to a router when asking the router to start sending a message to it.
Defines the message a client sends to a router when asking the router to start sending a message to it.
Defines the message a client sends to a router when updating the config on an existing session.
A generic DNS record.
The symbolic class of a DNS record (usually
Record.CLASS.IN for Internet).The resource record type.
Recorder definition for threshold breach logging.
Signing and verification for REdDSA using SHA-512 and the Ed25519 curve.
Validation for the numeric query strings used by the post/redirect/get pattern in the web UI.
Default keysize is 256 (Ed25519).
Polynomial reduction operations for ML-KEM cryptography.
Implements Reed-Solomon encoding, as the name implies.
RefreshRoutersJob performs router info refresh operations periodically.
OutputStream that performs case-insensitive regex replacement during streaming.
Represents a I2P region.
Removes nothing and always rejects the add.
Unique ID for a peer - its IP + port, all bundled into a tidy obj.
Singleton set with removable element support and iterator functionality.
Thread for automatically renewing UPnP event subscriptions.
Callback interface for ratchet acknowledgment notifications with expiration support.
Defines an executable task that can be fired off in reply to a message.
Async job to send an abuse message to the client.
Defines the message a client sends to a router when asking the router what its address visibility is.
Router information publisher for network database synchronization.
Periodically republishes a local LeaseSet to the network database.
Holds all information needed for a partial piece request.
Interface for handling JSON-RPC 2.0 requests.
Async job to walk the client through generating a lease set.
Defines the message a router sends to a client to request that a leaseset be created and signed.
Handle I2CP RequestLeaseSetMessage from the router by granting all leases, using the specified expiration time for each lease.
Throttles incoming tunnel requests earlier than ParticipatingThrottler, with higher limits and more frequent cleanup.
Sliding window counter for burst detection.
Validates HTTP requests for security and policy compliance.
Encapsulates the result of hostname validation.
Defines the message a router sends to a client to request that a leaseset be created and signed.
Handle I2CP RequestVariableLeaseSetMessage from the router by granting all leases, retaining the individual expiration time for each lease.
Wraps an HttpServletRequest and adds multipart-aware access to the parameters and files of a
multipart/form-data request, using the Servlet 3.0 Part API.Copy a random selection of 'count' router infos from configDir/netDb to 'toDir'.
Checks whether reseeding of the network database is necessary and initiates reseed requests.
Reseed handler that fetches router infos from configured seed URLs.
Handler to create a i2preseed.zip file.
Handler to deal with reseed requests.
A reserved LDH label (R-LDH label), which have the property that they contain "--" in the third and fourth characters.
GZIP implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterInputStream implementations.
GZIP implementation per RFC 1952, reusing java's standard CRC32 and Deflater implementations.
Router restarter implementation.
Text pane component used as the chief results window that summarizes test results.
Per-destination timer for scheduling packet retransmissions.
Provide a cache of reusable GZIP unzipper streams.
Provide a cache of reusable GZIP streams, each handling up to 40 KB output without expansion.
Reverse-DNS resolver and cache for the comm system.
Cache entry for IP address and hostname mappings.
RFC 3339 date parsing utility for Atom feed compatibility.
Moved from NewsFetcher.
Reusable SVG ring chart generator for health-ring dashboards.
A section of a multi-section ring with a proportion and color class.
Class to represent archive values for a single datasource.
Class to represent archive values for a single datasource.
Class to represent archive values for a single datasource.
Root description for UPnP devices.
Core router implementation that manages I2P node lifecycle, configuration, and subsystem coordination.
Defines a method of communicating with a router
If a class started via
clients.config implements this interface, it will be used to manage the client, instead of starting with main()Notify the router of events, and provide methods for client apps to find each other.
Alternate location for determining the time which takes into account an offset.
Listener interface for receiving notifications when the router clock shifts.
Simple command line access to various utilities.
Start the router console.
Extended application context that provides centralized resource coordination for router instances.
Defines the unique identifier of a router, including any certificate or public key.
Defines the data that a router either publishes to the global routing table or provides to trusted peers.
Sorts in true binary order, not Base64 string order.
JSON-RPC2 handler for the RouterInfo method.
Per-cycle state for the promotion deferral on a stale RouterInfo.
Generates routing keys from hashes using date-based modification to prevent Sybil attacks.
This is the class called by the runplain.sh script on linux and the
i2p.exe launcher on Windows.Handle communications with the router instance.
JSON-RPC2 handler for the RouterManager method.
Task to update the wrapper manager with a specific exit code
Comprehensive password management for router configuration with migration support.
Handles router private key files, extending PrivateKeyFile to provide RouterIdentity access instead of Destination.
An I2PException thrown from
I2PServerSocket.accept() when the router is restarting.Controls router load by throttling message processing and tunnel participation.
Simple throttle that basically stops accepting messages or nontrivial requests if the jobQueue lag is too large.
Periodically query a series of NTP servers and update any associated listeners.
Expose a version string.
Router health monitor and automatic recovery system.
Interface for transforming a hash into the key under which it is stored in the network database (KBucketSet).
Reverse Polish Notation (RPN) expression calculator.
Evaluates mathematical expressions on RRD data sources using RPN notation for efficient computation.
Evaluates mathematical expressions on RRD data sources using RPN notation for efficient computation.
An internal usage class.
Instances of this class model Round Robin Database (RRD) files.
Base implementation class for all backend classes.
Description of a
RrdBackendFactoryWrap a exception generated by the backend store
Base (abstract) backend factory class which holds references to all concrete backend factories and defines abstract methods which must be implemented in all concrete factory implementations.
Abstract byte array based backend.
Main class used to create and manipulate round robin databases (RRDs).
Builder for
RrdDb instances.This class should be used to synchronize access to RRD files in a multithreaded environment.
Class to represent definition of new Round Robin Database (RRD).
Class used to create an arbitrary number of
RrdDef (RRD definition) objects from a single XML template.RRD double primitive type.
RRD primitive type for handling arrays of double values.
RRD primitive type for handling matrices of double values.
RRD primitive type for handling enum values.
A general purpose RRD4J exception.
This class is used read information from an RRD file.
An abstract backend which is used to store RRD data to ordinary files on the disk.
An abstract backend factory which is used to store RRD data to ordinary files on the disk.
Class which actually creates Rrd4j graphs (does the hard work).
Class to represent various constants used for graphing.
Font constructor, to use embedded fonts.
Allowed font tag names which can be used in
RrdGraphDef.setFont(org.rrd4j.graph.RrdGraphConstants.FontTag, java.awt.Font) methodClass which should be used to define new Rrd4j graph.
Implementations of this class can be used to generate image than can be layered on graph.
Core graph generation engine for RRD graphs.
Class to represent successfully created Rrd4j graph.
The plot geometry and series behind a rendered graph, in a form a script can invert: given a cursor position in image pixels it yields the time and the value at that point.
RRD integer primitive type.
Logging hook for the vendored rrd4j tree.
Sink for rrd4j diagnostics.
RRD primitive type for handling long integer values.
Backend to be used to store all RRD bytes in memory.
Factory class which creates actual
RrdMemoryBackend objects.Backend which is used to store RRD data to ordinary disk files using java.nio.* package.
Factory class which creates actual
RrdNioBackend objects.Abstract base class for all RRD primitive data types.
Backend which is used to store RRD data to ordinary files on the disk.
Factory class which creates actual
RrdRandomAccessFileBackend objects.Backend which is used to store RRD data to ordinary files on the disk, using locking.
Internal counters for tracking file locking operations.
Factory class which creates actual
RrdSafeFileBackend objects.RRD primitive type for handling string values.
Thread pool used by
RrdNioBackend instances to periodically sync the mapped file to disk.Daemon thread factory used by the monitor executors.
Class used to perform various complex operations on RRD files.
Reader for RRDTool format RRD files.
Interface for RRD components that can update their state.
DNS RRSIG (Resource Record Signature) record payload for DNSSEC.
Contains cryptographic signature covering a set of DNS records to provide authenticity and integrity verification.
Contains cryptographic signature covering a set of DNS records to provide authenticity and integrity verification.
Abstract base class for DNS resource records that point to a target domain name.
Extended by record types like CNAME, NS, and others that contain a target field.
Extended by record types like CNAME, NS, and others that contain a target field.
Constants for RSA.
A SigningPrivateKey that retains the Chinese Remainder Theorem parameters, so it can be converted back to a Java CRT key.
Abstract base class for rule elements in RRD graphs.
Standalone runner for I2PSnark.
the foundation class for the exceptions thrown by the crypto packages.
An implementation of Ryu for double.
A CharSequence whose toString() output is guaranteed safe to expose.
SAM bridge — listens on TCP, dispatches each client to a
SAMHandlerFactory handler via SAMHandlerPool, and tracks sessions in SessionsDB.Basic noop client event listener.
Interface for sending datagram data to a SAM client.
SAM DATAGRAM session class.
Helper for the /samdebug page - shows SAM bridge status with rings and a session table.
Adds SameSite=Lax to all cookies in Set-Cookie headers as defense-in-depth.
Simple helper implementation of a the SAMClientEventListener.
Exception thrown by SAM methods.
Base class for SAM protocol handlers.
SAM handler factory class.
Shared NIO selector-based handler pool for SAM v3 control connections.
Exception thrown by SAM methods when an application tries to create outgoing connections through a receive-only SAM session.
Base for datagram/raw sessions (v1/v3) and also SAMStreamSession.
Base abstract class for SAM message-based sessions.
Class to represent data source values for the given timestamp.
Interface for sending raw data to a SAM client.
SAM RAW session class.
Read from a socket, producing events for any SAM message read.
Async event notification interface for SAM clients.
This is the "default" implementation of the SAMSecureSession @interface that behaves exactly like SAM without interactive authentication.
SAMSecureSessionInterface is used for implementing interactive authentication to SAM applications.
Interface for sending streaming data to a SAM client.
Swiss army knife tester.
SAM STREAM session — BOTH/CREATE/RECEIVE modes over an I2PSocketManager.
Reads bytes off one tunnel socket and pushes them to the SAM client.
Lets us push data through the stream without blocking, (even after exceeding the I2PSocket's buffer).
Swiss army knife tester.
Protocol helpers for SAM: destination/key parsing, naming lookups, SAM parameter parsing, and random destination generation.
Class able to handle a SAM version 1 client connections.
SAM version 2 handler.
SAMv2 STREAM session class.
This is the thread listening on 127.0.0.1:7655 or as specified by
sam.udp.host and sam.udp.port properties.SAM v3 datagram session implementation.
Class able to handle a SAM version 3 client connection.
SAM v3 raw session implementation.
SAMv3 STREAM session class.
Interface for scalar operations in EdDSA.
Examine a connection's state and pick the right scheduler for it.
Scheduler used for after both sides have had their close packets ACKed, but the final timeout hasn't passed.
Scheduler used for after both SYNs have been ACKed and both sides have closed the stream, but either we haven't ACKed their close or they haven't ACKed ours.
Scheduler used for after our SYN has been sent and ACKed but one (or more) sides haven't closed the stream yet.
Scheduler used once we've sent our SYN but it hasn't been ACKed yet.
Scheduler used for after the final timeout has passed or the connection was reset.
Scheduler used after we've locally done a hard disconnect, but the final timeout hasn't passed.
Base class for connection state schedulers.
Scheduler used for locally created connections where we have not yet sent the initial SYN packet.
Scheduler used after receiving an inbound connection but before we have sent our own SYN.
A least recently used cache with a max size, for SimpleDataStructures.
Helper for searches.
Base class for iterative network database search operations.
Interface for receiving SSDP search request messages.
Message selector for matching search operation responses from specific peers.
Processes DatabaseSearchReplyMessage responses from floodfill peers.
Interface for receiving SSDP search response messages.
Manages state for network database search operations.
Called after a match to a db search is found
Interface describing secret with encapsulation details.
Implementation of SecretWithEncapsulation for post-quantum cryptography.
Same as File but sets the file mode after mkdir() so it can be read and written by the owner only (i.e.
Same as SecureDirectory but sets the file mode after createNewFile() and createTempFile() also.
Same as FileOutputStream but sets the file mode so it can only be read and written by the owner only (i.e.
Builds and manages HTTP security headers for server responses.
Manage the password storing for I2PControl.
This class implements an interface for managing many netDbs as part of a single I2P instance, each representing its own view of the network.
Visit kbuckets, gathering matches.
Generate keys and a selfsigned certificate, suitable for storing in a Keystore with
KeyStoreUtil.storePrivateKey(File, String, String, String, PrivateKey, List).Send a message directly to another router (not through a tunnel).
Same as SendMessageMessage, but with an expiration to be passed to the router
Defines the message a client sends to a router to ask it to deliver a new message.
Advanced options attached to a single outgoing I2CP message.
Overrides
i2cp.gzip session option and size threshold for this message only.Reliability bits 9-10.
Asynchronously notify the client of the status of a sent message.
Interface for serializing and deserializing objects to/from byte arrays.
Defines the lifecycle interface for router subsystems.
An UPnP service, described by an SCPD document and reached through its containing device.
Data container for UPnP service information and metadata.
A collection of UPnP services.
A collection of UPnP service state variables.
A wrapper for addressbook to allow it to be started as a web application.
Simple utilities for servlets.
A V3 session.
Lightweight session validation endpoint for AJAX polling.
Defines the information a client must provide to create a session.
Defines the token passed between the router and client to associate messages with a particular session.
Reduce tunnels or shutdown the session on idle if so configured.
Cryptographic session key for symmetric encryption in I2P.
Session key with nonce and optional handshake state for ratchet message encryption and decryption operations, supporting nonces up to 65535
Manage the session keys and session tags used for encryption and decryption.
Simple session manager for console authentication.
A record of a SAM session stored in the
SessionsDB.A database of SAM sessions, mapping nicknames to
SessionRecords.Exception thrown when attempting to create a session with an existing destination.
Exception thrown when attempting to create a session with an existing ID.
Defines the message a router sends to a client indicating the status of the session.
Handle I2CP SessionStatusMessagese from the router, updating the session as necessary.
32 bytes, usually of random data.
Interface for managing session tag lifecycle in ratchet tag sets.
Tell the other side what time it is.
Handle I2CP time messages from the router.
Decode only.
Implementation of the SHA-1 secure hash algorithm as specified in FIPS PUB 180-2.
I2P data structure for SHA-1 hash values.
Defines a wrapper for SHA-256 operation.
implementation of SHA-3 based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
FIPS 180-2 implementation of SHA-512.
implementation of SHAKE based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
Passes a command to the OS shell for execution and manages the input and output.
Alternative to ShellCommand for plugins based on ProcessBuilder, which manages a process and keeps track of it's state by maintaining a Process object.
Small records.
Variable size, small records.
Internal use only, to convert an inbound STBM to a reply.
Emergency shutdown hook for JVM termination.
Callback interface for the end of the shutdown sequence.
Simple helper to query the appropriate router for data necessary to render the summary sections on the router console.
Enumeration of network reachability state values.
State message to be displayed to the user in the summary bar.
Helper for sidebar rendering and navigation.
Base signature algorithm type.
Defines the context for signing with personalized hashes.
Algorithm parameter specification for personalized hash contexts in digital signatures.
Cryptographic signature implementation for I2P data structures and identity verification.
Cryptographic private key for digital signature generation in I2P.
Cryptographic public key for digital signature verification in I2P.
Defines the properties for various signature types that I2P supports or may someday support.
Comprehensive utility class for I2P signing keys and digital signatures.
A Westwood+ bandwidth estimator with a first stage anti-aliasing low pass filter based on RTT, and the time-varying Westwood filter based on inter-arrival time.
A Westwood+ bandwidth estimator with: <ul> <li>A first-stage anti-aliasing low-pass filter based on RTT</li> <li>A time-varying EWMA filter based on inter-arrival time</li> </ul>
Like ByteCache but works directly with byte arrays, not ByteArrays.
Base class for I2P data structures holding a single byte array in a protected
SimpleDataStructure._data field.Simple time label using a format similar to
strftime.Scheduled event executor backed by ScheduledThreadPoolExecutor.
Base class for timer events.
What a single saturation-watchdog sample means.
A naming service based on a single file using the "hosts.txt" format.
Performs targeted followup lookups for RouterInfo entries from search replies.
Performs a targeted lookup to a single peer for a specific key.
Single-use tag set for handling inbound Existing Session messages in database replies with fixed nonce of 0, designed for DSM/DSRM response processing.
Sink interface for streaming data destinations.
Wrapper around SipHashInline with constant per-JVM keys.
SipHash implementation with hand inlining the SIPROUND.
A basic iterator for a skip list.
Manages the level structure for a skip list data structure.
Skip list data structure implementation for efficient key-value storage and retrieval.
Represents a span or node in a skip list data structure.
SMTP client for sending email through SMTP servers over I2P.
Main Snark program startup class.
A unique exception class to blame the router that can be caught by SnarkManager.
Simple command line access to various utilities.
Central manager for multiple torrent downloads and the I2PSnark application.
Result of a DHT metadata lookup — name plus combined size of data files.
DNS SOA (Start of Authority) record payload.
Contains authoritative information about a DNS zone including primary nameserver, admin email, and timing parameters.
Contains authoritative information about a DNS zone including primary nameserver, admin email, and timing parameters.
Utility class for SOAP (Simple Object Access Protocol) message handling.
Represents a SOAP (Simple Object Access Protocol) request message.
Represents a SOAP (Simple Object Access Protocol) response message.
This handles the starting and stopping of a ServerSocket from a single static class so it can be called via clients.config.
Listener for socket events.
Implements one or two timers; one for inactivity, that is reset by resetTimer(), and optionally, a total time since instantiation, that is configured by setTotalTimeoutPeriod().
I2PSocket implementation wrapping a standard TCP Socket obtained from an outproxy, which is itself a wrapper around the Orchid stream.
SOCKS4a server implementation for handling SOCKS version 4/4a connections.
A simple SOCKS 4/4a client.
Constants for SOCKS4 protocol.
SOCKS4 command codes.
SOCKS4 reply codes.
A simple SOCKS 5 client.
Constants for SOCKS5 protocol.
SOCKS5 address types.
SOCKS5 command codes.
SOCKS5 authentication methods.
SOCKS5 reply codes.
SOCKS5 server implementation with comprehensive protocol support and authentication.
Exception thrown by socket methods.
Save the SOCKS header from a datagram Ref: RFC 1928.
Abstract base class used by all SOCKS servers.
Factory class for creating SOCKS forwarders through I2P.
Implements a UDP port and Socks encapsulation / decapsulation.
A Datagram Tunnel that can have multiple bidirectional ports on the UDP side.
Strip a SOCKS header off a datagram, convert it to a Destination and port Ref: RFC 1928.
Put a SOCKS header on a datagram Ref: RFC 1928.
Collection of comparators for sorting email messages by various criteria.
Comparators for various columns.
Sorts Mail objects by date field.
Class to precompute and efficiently sort data on a torrent file entry.
Sorts Mail objects by sender field.
Sorts Mail objects by message size.
Sorts Mail objects by subject field.
Sorts Mail objects by recipient fields.
Utility class for sorting DataStructure objects by their hash.
Source interface for streaming data sources.
Abstract base class for RRD data sources.
Provides common functionality for storing and managing time-series data with timestamps and values.
Provides common functionality for storing and managing time-series data with timestamps and values.
Abstract base class for data sources in RRD graphs.
Represents a plot element that obtains data from a named source.
Abstract base class for span elements in RRD graphs.
Memory-efficient sparse array implementation for integer-to-object mappings using binary search lookup, optimized for collections with up to hundreds of items
Quantify how fast the peer is based on advertised bandwidth tier, measured latency, congestion capability, and actual tunnel throughput.
Order profiles by their speed (lowest first).
Shutdown delay thread to ensure complete router termination.
Emulation of javax.swing.SpinnerNumberModel for the NDT (Network Diagnostic Tool) plugin.
Container for Noise protocol split keys that prevents duplicate HKDF calculations by sharing derived keys between engine and session key manager components.
DNS SRV (Service) record payload for service discovery.
Specifies the location of services for a given domain with priority, weight, and port information for load balancing.
Specifies the location of services for a given domain with priority, weight, and port information for load balancing.
Constants and utility methods for Simple Service Discovery Protocol (SSDP).
This class defines SSDP protocol constants including multicast addresses, ports, and utility methods for parsing SSDP cache control headers.
This class defines SSDP protocol constants including multicast addresses, ports, and utility methods for parsing SSDP cache control headers.
Represents an SSDP NOTIFY request for device advertisement.
This class identifies a SSDP socket only for notifying packet.
A list of SSDP notification sockets for receiving SSDP notify messages.
This class manages multiple
This class manages multiple
SSDPNotifySocket instances to handle SSDP notifications across different network interfaces and addresses.Represents an SSDP packet received over UDP.
Base class for SSDP request messages.
Represents an SSDP response message.
Represents an SSDP M-SEARCH request for device discovery.
Represents an SSDP search response message.
Socket for receiving SSDP search responses from UPnP devices.
A list of SSDP search response sockets for handling SSDP search responses.
This class manages multiple
This class manages multiple
SSDPSearchResponseSocket instances to send SSDP search requests and receive responses across different network interfaces.Socket for sending SSDP search requests and receiving responses.
A collection of SSDP search sockets.
SSL version of ClientListenerRunner.
SSL server socket utilities for I2PTunnel clients.
HTTPS only, no retries, no min and max size options, no timeout option As of 0.9.45, supports redirect to https (redirect to http will still fail).
Not all may be supported.
An opaque class for the caller to pass to repeated instantiations of SSLEepGet.
Helper class for SSL configuration and certificate management in the tunnel web interface.
Simple wrapper for a SSLServerSocket.
Simple wrapper for a SSLSocket.
Utilities for SAM SSL server sockets.
Utilities for SAM SSL server sockets.
Container of a long array representing set and unset bits.
Callback interface for bitfield operations.
Encrypt/decrypt headers.
A temporary structure returned from trial decrypt, with methods to access the fields.
SSU2 Payload generation and parsing utilities.
Block containing acknowledgment data.
Block containing IP address and port information.
Base class for blocks to be transmitted.
Block containing the current date and time.
Same format as I2NPBlock.
Follow-on fragment block for SSU2 payload.
Block containing I2NP message data.
Block containing a new session token.
Block containing session options.
Block containing padding data.
Path challenge block for SSU2 payload.
Path response block for SSU2 payload.
For all callbacks, recommend throwing exceptions only from the handshake.
Block containing peer test data.
Block containing relay introduction data.
Block containing relay request data.
Block containing relay response data.
Block containing relay tag data.
Block containing relay tag request data.
Block containing router information data.
Block containing session termination data.
Basic interface over top of PeerState2 and PeerStateDestroyed, so we can pass them both to PacketBuilder2 to send packets.
SSU2 Utils and constants.
Utility class for SSDP ST (Search Target) header values and validation.
Represents a stacked plot element in RRD graphs.
Evicts the least-recently-attested peer from a full routing bucket so the netdb routing table rotates toward live peers instead of filling with dead-but-unexpired routers.
Records which destinations had a streaming stall, so the router can prefer a different outbound tunnel when sending to them again.
A default implementation of the
FontMapper interface.Bridge to I2PServerSocket.
Bridge to I2PSocket.
Start the I2CP interface.
This job initiates exploration of the network database by selecting keys to explore and queuing ExploreJobs up to a maximum per run.
The StartupJob should be run once on router startup to initialize the system and set things in motion.
A ConnectionFilter that may hold state, can be started and stopped.
Holds a UPnP state variable definition and the value currently set on it.
Data container for UPnP state variable information.
Helper for statistics page rendering and form processing.
Main snark startup class for staticly linking with gcj.
Collects and publishes router performance statistics to the network database.
Coordinate the management of various frequencies and rates within I2P components, both allowing central update and retrieval, as well as distributed creation and use.
Dump the stats to the web admin interface.
Swing-free status panel; the display methods are no-ops and only the stop flag is tracked.
Storage manages torrent data files on disk for I2PSnark.
Classified storage failures.
Callback interface for monitoring Storage state changes and progress.
Abstract base class for network database store operations.
Message selector for matching database store operation confirmations.
Manages state for network database store operations.
Stream interface for managing streaming data flow.
Helper for the /streams page - shows active I2P streaming connections.
Streamr consumer that acts as an I2P client and UDP server, receiving data from I2P destinations and forwarding it to a configured UDP host/port.
Streamr producer that acts as an I2P server and UDP client, receiving UDP data on a configured port and forwarding it through I2P.
Maintains list of countries with strict application restrictions.
Writer implementation backed by StringBuilder.
String serializer using US-ASCII encoding.
Emulation of java.awt.datatransfer.StringSelection for the NDT (Network Diagnostic Tool) plugin.
Utility class for string manipulation and conversion operations.
Emulation of javax.swing.text.StyledDocument for the NDT (Network Diagnostic Tool) plugin.
I2P update file format handler for .su3 files.
Server-mode subscriber that manages multiple data sources and handles incoming connections.
Represents a UPnP event subscriber.
A collection of UPnP event subscribers.
A subscription to a remote address book.
Utility class for UPnP event subscription management.
An iterator over the subscriptions in a SubscriptionList.
A list of Subscriptions loaded from a file.
Represents a UPnP event subscription request.
Represents a UPnP event subscription response.
Bean for managing address book subscription sources and updates.
An additional session using another session's connection.
Parses the CSS colour forms allowed for graph theme variables.
A
Graphics2D implementation that creates SVG output.A graphics configuration for the
SVGGraphics2D class.A graphics device for JFreeSVG.
Defines the rendering hints that can be used with the
SVGGraphics2D class.A key for hints used by the
SVGGraphics2D class.I2P adapter for jfreesvg.
An enumeration of the values for SVG units.
Utility methods related to the
SVGGraphics2D implementation.Renders Sybil attack analysis and detection information for debugging.
Abstract base class for symmetric cryptographic primitives in ML-KEM.
SHAKE-based symmetric implementation for ML-KEM operations.
Symmetric state for helping manage a Noise handshake.
A "synthetic" queue that does not store data but estimates the average queue size assuming a fixed output bandwidth, and applies the Random Early Detection (RED) algorithm to decide probabilistically whether to accept or drop packets.
Methods to find out what system we are running on.
An opaque handle to a TagSet returned by the SessionKeyManager, so that OCMOSJ can report that the tags were later acked, or not.
Coordinates what we do 'next'.
Share important TCP Control Block parameters across Connections to the same remote peer.
Main Applet class that creates UI, defines tests and interprets results from the tests.
Definition for a data source in a graph.
Prevent systemd from deleting our temp dir or any dirs or files in it.
Repeatedly tests a single tunnel for its lifetime to ensure it remains functional.
Runtime state owned by a single router context: the first-test buffer and its pump flag, the instance and in-flight gauges, and the running-test map.
Why a round was refused its in-flight permits.
The instance slots one TestJob owns: the total counter (memory bound), the per-pool claim, and the running-test registration.
A first-test candidate waiting in the batch buffer.
Identity of one dispatched test round: the generation it belongs to, the pool it counts against, the deadline it expires at, and the release switches for the permits it reserved.
Decides when a thin-pool warning is worth repeating.
Base class for managing thread lifecycle and execution.
Thread dump utility for debugging hung router instances.
Connection threshold definition.
Specialized pumped tunnel gateway for inbound gateways (IBGWs) that throttles messages by checking bandwidth usage before queuing them.
Represents the time axis (x-axis) in RRD graphs.
Configuration settings for time axis in RRD graphs.
Simplified version of DateFormat for just defining how to map a timestamp into a label for presentation.
Adds setReadTimeout().
Helper for TimeoutPipedInputStream.
Parser for at-style time specifications used in RRDTool commands.
Utility class providing timer and thread sleeping functionality.
Tokenizes at-style time specification strings into tokens.
Represents time specifications parsed from at-style date strings.
Dummy.
Interface to receive update notifications for when we query the time Only used by Clock.
Token representation for time specification parsing.
Enumeration of time units used in RRD graphs.
DNS TLSA record payload for TLS certificate association.
Associates TLS certificates with domain names for DANE-based authentication of TLS services.
Associates TLS certificates with domain names for DANE-based authentication of TLS services.
The certificate usage field.
How the certificate association data is hashed before comparison.
Which part of the server certificate the association data covers.
DHT token management for secure peer verification.
Indexing key for DHT tokens based on node ID and info hash combination.
Emulation of java.awt.Toolkit for the NDT (Network Diagnostic Tool) plugin.
We attempted to have more open streams than we are willing to put up with.
A structure for torrent creation filters.
Bundles the transient I2P destination, session, server socket, DHT instance, and UDP tracker client for one torrent or for a pool of torrents, so that all of a torrent's network activity goes out through its own identity.
A DHT instance for one or more torrents on a shared transient I2P session and destination.
Thread-safe collection of all torrents tracked by the DHT.
Represents a known BitTorrent tracker with its configuration and capabilities.
Handles communication with BitTorrent trackers and DHT to discover new peers.
The data structure for the tracker response.
In-memory network database storage implementation.
Implement the session key management, but keep everything in memory (don't write to disk).
Helper for transit tunnel summary page rendering and form processing.
Translate strings efficiently.
Filters a reader, replacing the gettext-style tags described below as they are read.
Translate a svg file on-the-fly.
Core interface for I2P transport protocols.
Source of transport address configuration.
Represents a transport's bid for message delivery cost.
Handles transport events including message receipt and address changes.
Defines a way to send a message to another peer and start listening for messages.
Central coordinator for all I2P transport protocols.
Port configuration for transport protocols.
Utility class providing common transport operations and configurations.
IPv6 configuration options for transports.
Abstract base class for managing system tray icons and menus for I2P.
Do the simplest thing possible for preprocessing - for each message available, turn it into the minimum number of fragmented preprocessed blocks, sending each of those out.
Plugin keys we know about.
Handles signing and verification of I2P update files.
A thread-safe, lock-free-ish object cache that reuses objects to reduce allocation overhead.
Factory interface for creating new objects in TryCache.
General-purpose adaptive tuner.
Manages the autotune.config file — separate from
router.config.Base class for tunable params with history tracking and auto-revert.
Snapshot of a subsystem's tunable parameter values at a point in time.
Per-subsystem health scores.
Tracks overall router health score for adaptive tuning decisions.
Thread-id keyed sample state for
Tuner.sampleStageCpu(): per live thread, which Tuner.CPU_STAGES entry its name matched and the CPU nanoseconds recorded at the previous sample.A tunable parameter with name, description, bounds, and default value.
Form handler for the transport tuning page.
Helper for the transport tuning page (tuning.jsp).
Helper for tunnel bandwidth page rendering and form processing.
The basic build message with 8 records.
Base for TBM, TBRM, VTBM, VTBRM Retrofitted over them.
The basic build reply message with 8 records.
Helper class to generate a valid TunnelController configuration from provided settings.
Coordinate the runtime operation and configuration of a single I2PTunnel.
The tunnel state.
Coordinates tunnel groups within the JVM, managing configuration persistence.
Thread pool executor for I2P tunnel client handlers.
Per-tunnel runner pool state: the explicit per-tunnel ceiling and the lazily created executor.
Per-tunnel server-handler pool state: the explicit per-tunnel cap (or -1 for the Tuner-managed default) and the lazily created executor.
Coordinate the info that the tunnel creator keeps track of, including what peers are in the tunnel and what their configuration is
Why a tunnel that would normally be dropped by the early-expiry gate was instead admitted for one last-chance test.
Defines the message sent between routers as part of the tunnel delivery
Handle the actual processing and forwarding of messages through the various tunnels.
Location in the tunnel for RED (Random Early Discard) logic.
Serve as the gatekeeper for a tunnel, accepting messages, coalescing and/or fragmenting them before wrapping them up for tunnel delivery.
Interface for preprocessing queued tunnel messages.
Interface for receiving encrypted tunnel data.
Interface for sending preprocessed tunnel data.
Defines the message sent between one tunnel's endpoint and another's gateway.
TunnelGatewayPumper runs a pool of threads that process PumpedTunnelGateway instances which need messages pushed through preprocessing and sending.
Serve as the gatekeeper for a tunnel with no hops, either inbound or outbound.
Helper for tunnel status page rendering and form processing.
Tunnel related history information.
Tunnel identifier: a 32-bit unsigned value, held in a long, that names a tunnel within the network database and in lease sets.
Defines the information associated with a tunnel.
Manages tunnel creation, maintenance, and selection for encrypted routing.
Participates in a tunnel at an intermediate hop (not gateway or endpoint).
Helper for fastest participating tunnels page rendering and form processing.
Helper for participating tunnels page rendering and form processing.
Helper for tunnel peer count page rendering and form processing.
Coordinate the selection of peers to go into a tunnel for one particular pool.
Per-cycle tally of why keepalive did not act on the peers it selected.
What a pre-connect probe actually achieved.
A group of tunnels for the router or a particular client, in a single direction.
Always build a LeaseSet with Leases in sorted order, so that
LeaseSet.equals(Object) and lease-by-lease equals() always work.Why a pool could not supply a tunnel, as counts rather than prose.
Why a tunnel's local transport session was lost.
Manage all the exploratory and client tunnel pools.
Background reachability probe over the peers a client pool would provisionally use as a first hop.
Wrap up the settings for a pool of tunnels.
Event fired when a tunnel is removed from a client tunnel pool.
Why a tunnel was removed from a client's pool.
For /tunnels.jsp, used by TunnelHelper.
Listener for tunnel status changes.
Test status for tunnel testing display.
DNS TXT record payload for arbitrary text data.
Contains one or more text strings, commonly used for verification, policies, or other metadata.
Contains one or more text strings, commonly used for verification, policies, or other metadata.
Parses and caches the host, port, introducer list, MTU, and key data from a RouterAddress for the SSU and SSU2 transport styles.
Coordinate the low-level datagram socket, creating and managing the UDPSender and UDPReceiver.
UDP datagram wrapper implementing CDPQEntry for priority queue dispatch.
Receives raw UDP datagrams off the wire as fast as possible, controlled by the bandwidth limiter and the router's throttle.
Lowest level UDP packet sender that pushes packets from its queue ASAP.
UDP sink implementation for streaming data.
Comparators for various columns.
Comparator for sorting UDP peers by peer hash in ascending order.
Comparator for sorting UDP peers by congestion window in ascending order.
Comparator for sorting UDP peers by duplicate packets received in ascending order.
Comparator for sorting UDP peers by inbound idle time in ascending order.
Comparator for sorting UDP peers by outbound idle time in ascending order.
Comparator for sorting UDP peers by maximum transmission unit in ascending order.
Base comparator for UDP peers that falls back to peer hash comparison.
Comparator for sorting UDP peers by inbound rate in ascending order.
Comparator for sorting UDP peers by outbound rate in ascending order.
Comparator for sorting UDP peers by received messages count in ascending order.
Comparator for sorting UDP peers by retransmitted packets in ascending order.
Comparator for sorting UDP peers by retransmission timeout in ascending order.
Comparator for sorting UDP peers by round trip time in ascending order.
Comparator for sorting UDP peers by sent messages count in ascending order.
Comparator for sorting UDP peers by clock skew in ascending order.
Comparator for sorting UDP peers by slow start threshold in ascending order.
Comparator for sorting UDP peers by uptime in ascending order.
UDP source implementation for streaming data.
One of these for all trackers and info hashes.
Represents a response from a UDP tracker.
This class encapsulates the tracker's response including peer lists, interval information, and any error messages.
This class encapsulates the tracker's response including peer lists, interval information, and any error messages.
SSU/SSU2 transport implementation with UDP endpoint management and packet dispatch.
IPv6 external-address rebuild action for a reachability status change.
A queue of messages, where each has an ID number.
Represents a single UI message with a unique identifier.
A DNS label which begins with an underscore ('_').
This class is used to read a unival from a file unival is a rrdtool type, defined in rrd_format.h
DNS record payload for unknown or unsupported record types.
Provides raw byte-level access to record data when the specific record type is not recognized by the library.
Provides raw byte-level access to record data when the specific record type is not recognized by the library.
UnknownCPUException Extends RuntimeException.
EDNS option for unknown option codes.
This is similar to DataMessage or GarlicMessage but with a variable message type.
Efficient implementation of a SortedSet stored in a fixed-size array.
Does a simple EepHead to get the last-modified header.
Handles the request to update the router by firing off an
EepGet call to download the latest unsigned zip file and displaying the status to anyone who asks.Eepget the .zip file to the temp dir, then notify.r Moved from UnsignedUpdateHandler and turned into an UpdateTask.
Signature verification failed because the sig type is unknown or unavailable.
Handles the request to update the router by firing one or more
EepGet calls to download the latest signed update file and displaying the status to anyone who asks.Handles the request to update the router by firing one or more
EepGet calls to download the latest signed update file and display the status to anyone who asks.Handles the request to update the router by firing up a magnet.
The central resource coordinating updates.
Transport mechanism for getting something.
An external class to handle complex processing of update files, where necessary instead of simply copying i2pupdate.zip to the config dir.
Controls one or more types of updates.
Update the routing Key modifier every day at midnight (plus on startup).
The downloader for router signed updates, and the base class for all the other Checkers and Runners.
The downloader for router signed updates.
A running check or download.
What to update.
Discovers UPnP internet gateways and forwards local ports through them.
Global utility class for UPnP framework configuration and operations.
IPv6-specific port forwarding configuration.
Universal Plug and Play (UPnP) manager for NAT traversal and port forwarding.
For Android MulticastLock.
Represents the status of UPnP operations and provides standard UPnP error codes.
URI Holder.
A quick and simple multi-platform URL launcher.
Utility class for parsing user agent strings to extract browser and OS information.
Utility class for SSDP USN (Unique Service Name) header values and parsing.
An unbuffered version of InputStreamReader.
String serializer using UTF-8 encoding.
For NetDbRenderer and Sybil http://forums.sun.com/thread.jspa?threadID=597652
Utility class for byte array operations and cryptographic helper functions.
Class defines various utility functions used in Rrd4j.
Various DOM utility functions.
Basic utilities for EdDSA.
Represents value axis (y-axis) in RRD graphs.
Configuration for Y-axis labels and grid spacing.
Represents logarithmic value axis (y-axis) in RRD graphs.
Represents MRTG-style value axis (y-axis) in RRD graphs.
Configuration settings for value axis in RRD graphs.
Utility class for scaling values with appropriate units in RRD graphs.
Represents a scaled value with its corresponding unit.
Abstract class for extracting single values from data sets (VDEF in rrdtool).
Provides statistical calculations on RRD values and supports custom computation methods for advanced data processing.
Provides statistical calculations on RRD values and supports custom computation methods for advanced data processing.
Calculate the average of the data points.
The sort used by rrdtool for percent, where NaN < -INF < finite values < INF
Find the first valid data point and it's timestamp
Find the first last valid point and it's timestamp
Calculate the correlation coefficient of the least squares line.
Calculate the y-intercept of the least squares line.
Calculate the slop of the least squares line.
The biggest of the data points, stamped with the latest point attaining it.
The smallest of the data points, stamped with the latest point attaining it.
Store all the informations about a datasource point, for predictive and consistent sorting
Find the point at the n-th percentile.
Percentile calculation that leaves gap entries out of the ranking.
Calculate the standard deviation for the data point.
Calculate the sum of the data points.
This class store both the value and the time stamp It will be used by graph rendering legend
Variable number of records.
Transmitted from the new outbound endpoint to the creator through a reply tunnel.
RRD VDEF (Variable Definition) implementation.
Creates computed data sources by applying aggregation functions to existing data sources.
Creates computed data sources by applying aggregation functions to existing data sources.
Represents a variable definition (VDEF) in RRD graphs.
Extend Destination with methods to verify its Certificate.
See ISO 18004:2006 Annex D
Encapsulates the parameters for one error-correction block in one symbol version.
Encapsulates a set of error-correction blocks in one symbol version.
Bean providing SusDNS application version and URL information.
Compares versions.
Moved out of CPUID.java
Moved out of CPUID.java
Represents a view box in SVG.
Hacked up in-VM comm system for talking between contexts within the same Java virtual machine.
Represents a vertical rule in RRD graphs.
Represents a vertical span in RRD graphs.
Adds to the webapp classpath as specified in
webapps.config.Work around the "No org.apache.tomcat.InstanceManager set in ServletContext" problem for eepsites with webapps.
Configuration class for web app provider to set up Tomcat instance manager.
Add, start or stop a webapp.
Main webmail application class providing email functionality for I2P.
BEP 19.
Emulation of java.awt.event.WindowAdapter for the NDT (Network Diagnostic Tool) plugin.
Emulation of java.awt.event.WindowEvent for the NDT (Network Diagnostic Tool) plugin.
The new user wizard.
The new user wizard.
Provides the working directory for i2p.
Listen for events.
The base class for all objects which encode/generate a barcode image.
Pool of running threads which will transform the next I2NP message into something ready to be transferred over an NTCP connection, including encryption of the data read.
A base class which covers the range of exceptions which may occur when encoding a barcode using the Writer framework.
Treat a writer as an output stream.
DH wrapper around Noise's Curve25519 with I2P types.
Try to keep DH pairs at the ready.
Parameter specification for X25519 elliptic curve Diffie-Hellman.
Adds a header, X-I2P-Location, to requests when they do **not** come in on an I2P hostname.
Utility class for XML character escaping and unescaping operations.
Enhanced XML parser for I2P news content with XHTML support.
Reader for importing RRD data from XML format.
Class used as a base class for various XML template related classes.
Extremely simple utility class used to create XML documents.
Functional interface for formatting double values in XML output.
A label that begins with "xn--" and follows the LDH rule.
With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
Help sort Hashes in relation to a base key using the XOR metric.
Filter to prevent XSS attacks.
Request wrapper to prevent XSS attacks.
Precalculate the Y and K for ElGamal encryption operations.
This class is a scanner generated by JFlex 1.4.3 on 8/30/16 5:50 PM from the specification file
/home/davinloegering/cliftonlabs/workspace/json-simple/src/main/lex/jsonstrict.lexRepresents structural entities in JSON.
Represents the different kinds of tokens.
Country to continent mapping for NTP.