All Packages
Package
Description
The main identicon code is here.
This is a small portion of zxing, including only what's required to generate QR codes.
This is MaxMind-DB-Reader-java release 1.2.2 2017-02-17
retrieved from github.
This is geoip-api-java release 1.3.1 2016-02-08
retrieved from github.
This is GeoIP2-java release 2.12.0 2018-04-11
retrieved from github.
HashCash implementation.
Fallback implementations of cryptographic primitives.
Noise ChaCha20 primitive, moved from com.southernstorm.noise.crypto (in router)
to com.southernstorm.noise.crypto.chacha20 (in core) in 0.9.39.
Noise X25519 primitive, moved from com.southernstorm.noise.crypto (in router)
to com.southernstorm.noise.crypto.x25519 (in core) in 0.9.38.
Provides classes for communicating via the Noise protocol.
Classes to represent, parse and serialise JSON-RPC 2.0 requests,
notifications and responses.
Simple server framework for processing JSON-RPC 2.0 requests and
notifications.
Utility classes for typed retrieval of JSON-RPC 2.0 request parameters on the
server side.
Class to run the M-Lab Network Diagnostic Tool (NDT).
Vuze/BiglyBT Swing stub layer for M-Lab Network Diagnostic Tool (NDT) Applet.
The M-Lab Web100 Network Diagnostic Tool (NDT) Java Applet
Version 3.7.0.2 (May 20, 2015)
From: GitHub.
CPUID implementaion, borrowed from freenet, updated and heavily modified.
The Fortuna PRNG from GNU Crypto, updated and modifed for I2P.
This is Java getopt 1.0.14 (released 2012/02/08)
GettextResource only, for ngettext().
The SusiDNS webapp, which is the user interface for the addressbook application
and the local naming service (hosts database) implemented in net.i2p.client.naming.
The SusiMail webapp, which implements a webmail interface,
POP3 and SMTP client-side protocols, and local caching of email.
Core I2P package, contains information about the I2P version and an entry point to access important elements.
The addressbook application, which fetches hosts.txt files from subscription URLs via
HTTP and adds new hosts to the local database.
The servlet that starts the addressbook DaemonThread.
From Apache HttpClient 4.4.1.
From Apache HttpClient 4.4.1.
From Apache HttpCore 4.4.1.
Interfaces for classes to be started and stopped via clients.config.
A system tray control for launching the I2P router console.
Interfaces and factories for
the base I2P SDK used to develop applications that communicate
through I2P.
Provides a standard way for reading and writing messages transferred over I2P
so that the recipient has an authenticated mechanism to reply to it.
Implements the base I2P SDK for developing applications that communicate
through I2P.
Provides a standard way for querying the local naming service to resolve a
name into a
Destination
(without the complexity of JNDI).API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for
communicating over the IP-like (unreliable, unauthenticated, unordered) I2P
messages.
Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for
communicating over the IP-like (unreliable, unauthenticated, unordered) I2P
messages.
These classes provide a number of low-level cryptographic routines.
Java implementation of EdDSA, a digital signature scheme using
a variant of elliptic curve cryptography based on Twisted Edwards curves.
Data structures that definie curves and fields, and
the mathematical operaions on them.
Low-level, non-optimized implementation using BigIntegers for any curve.
Low-level, optimized implementation using Radix $2^{51}$ for Curve 25519.
Specifications for curves and keys, and a table for named curves.
Interfaces for ElGamal keys, used for I2PProvider.
Implementation of ElGamal keys, used for I2PProvider.
Specs ElGamal keys, used for I2PProvider.
I2P implementation of java.security.Provider for EdDSA.
DH for X25519.
AlgorithmParameterSpec for X25519.
These classes define the common data structures used by the various
I2P protocols.
The Invisible Internet Client Protocol (I2CP) allows applications simplified access to
the I2P network without requiring them to deal with the issues involved with the
Invisible Internet Network Protocol (I2NP).
This package defines the low-level messages sent between routers,
called the Invisible Internet Network Protocol (I2NP).
Classes formerly in net.i2p.data but moved here as they are only used by the router.
Desktopgui is a graphical interface to I2P that allows managing the lifecycle of I2P from the system tray.
Implementation of preconfigured tunnels, both for clients and servers,
and a UI for adding more and editing the configuration.
These classes are the implementation of a definition-based
incoming connection filter.
Filters for the IRC client tunnel, and DCC handlers.
A very simple HTTP server, used only for css and images on HTTP client proxy error pages.
SOCKS 4, 4a, and 5 client tunnels.
Special-purpose client and server tunnels for streaming UDP clients and servers,
generally for audio and video streaming.
A small API used by UDP tunnels.
Classes for configuring tunnels, used externally by Android.
The UI for adding tunnels and editing their configurations,
implemented as a webapp packaged in i2ptunnel.war.
Servlets for generating QR codes and identicon images.
These classes make up the "Helper Utilities" that are used by the installer.
Interface and classes for a router and client
within the same JVM to directly pass I2CP messages using Queues
instead of serialized messages over socket streams.
Classes for starting Jetty, logging requests, and debug logging to the I2P router log.
This is a major rewrite of KBucket, KBucketSet, and KBucketImpl from net.i2p.router.networkdb.kademlia.
The I2P router application handles the I2P network communication.
Interface for classes to be started and stopped via clients.config.
Implements the router side of the I2CP interface,
which is the API for applications to send and receive data through the router.
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
Dummy versions of things for testing.
Creates and parses garlic messages.
A couple of classes, but most things are in kademlia.
The network database, including implementation of floodfills.
Fetching, validation, unpacking, and installation of RouterInfos from
signed su3 files, unsigned zip files, and web indexes.
Classes to parse the I2P news format, which follows the Atom
standard with additional metadata for the I2P update notification feature.
The peer manager logs information about the history and quality of network peers.
The I2P startup package loads the configuration when I2P is started.
Classes to run offline Sybil analysis, and to
store and load the results.
Miscellaneous classes, mostly things that are executed periodically as
Jobs, Threads, and SimpleTimer.TimedEvents.
Provides classes for time synchronization using NTP.
The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
DH key generation.
The NTCP transport allows passing I2P messages on top of TCP.
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
All the work of managing locally created and participating tunnels,
creating and handling tunnel messages, and their encryption.
Tunnel creation, tunnel build message handling.
Classes to implement the update process.
These classes define the several useful utilities used
throughout the router.
The router console user interface, implemented in routerconsole.jar, with these classes
supporting the webapp in routerconsole.war.
Helpers and handlers for the router console user interface,
with these classes supporting the webapp in routerconsole.war.
Full servlets, mostly for static content.
The SAM client API.
Demo and test client classes.
RequestWrapper was a susimail class,
moved from susimail to jetty-i2p.jar when we needed them in the router console also.
XSS filter, since 0.9.14.
Small utilities for servlets.
Constants and clients for SOCKS.
These classes define the statistics package used extensively throughout
the I2P router - both for adaptive operation of the router
and for debugging.
Provides a stub class for time synchronization.
Interfaces for classes to assist in the update process without
needing the router context.
These classes define the several useful utilities used
throughout the router and applications.
I2P Notes:
This is the database used by the BlockfileNamingService class.
The cybergarage cyberlink UPnP library version 3.0, with minor mods for I2P.
Small classes used by net.i2p.transport.UPnP to interface with the org.cybergarage UPnP library,
as imported from freenet.
This is json-simple release 2.3.0 2017-10-04
retrieved from github.
I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced
to add a web UI, DHT support, and other features.
Data structures to support ut_comment, since 0.9.31.
Classes only used for, and bundled with, the standalone installation.
The i2psnark user interface, implemented as a webapp in i2psnark.war.
RRD4J is a high performance data logging and graphing system for time series data, implementing
RRDTool's functionality in Java.
core RRD4J implementation.
This package provides read-only access to natives RRD file.
RRD4J data management.
RRD4J graph capabilities.
Bloom filter used by net.i2p.router.util.DecayingBloomFilter