| Package | Description |
|---|---|
| net.i2p.client | Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P. |
| net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client
side of the I2CP protocol for applications communicating through I2P. |
| net.i2p.client.naming | Naming service for resolving human-readable names to I2P destinations,
providing a standard interface without JNDI complexity. |
| net.i2p.client.streaming | API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over IP-like (unreliable, unauthenticated, unordered) I2P messages. |
| net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages. |
| net.i2p.data | These classes define the common data structures used by the various I2P protocols. |
| net.i2p.internal | Internal communication interfaces for router and client within
same JVM, using queues instead of socket-based I2CP. |
| net.i2p.router | The I2P router application handles I2P network communication. |
| net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration. |
| net.i2p.sam | The SAM (Simple Anonymous Messaging) client API. |
| Modifier and Type | Method and Description |
|---|---|
I2PSession | I2PSession.addSubsession(InputStream privateKeyStream,
Properties opts)Add a subsession. |
int[] | I2PSession.bandwidthLimits()Get the current bandwidth limits. |
void | I2PSession.connect()Actually connect the session and start receiving/sending messages. |
I2PSession | I2PSimpleClient.createSession(I2PAppContext context,
Properties options)Create a new session (though do not connect it yet) |
I2PSession | I2PClient.createSession(InputStream destKeyStream,
Properties options)Create a new client session for the Destination stored at the destKeyStream
using the specified options to both connect to the router, to instruct
the router how to handle the new session, and to configure the end to end
encryption. |
I2PSession | I2PSimpleClient.createSession(InputStream destKeyStream,
Properties options)Create a new session (though do not connect it yet) |
void | I2PSession.destroySession()Tear down the session and release any resources. |
Destination | I2PSession.lookupDest(Hash h)Lookup a Destination by Hash. |
Destination | I2PSession.lookupDest(Hash h,
long maxWait)Lookup a Destination by Hash. |
LookupResult | I2PSession.lookupDest(Hash h,
long maxWait,
LookupCallback callback)Lookup a Destination by hash. |
Destination | I2PSession.lookupDest(String name)Ask the router to lookup a Destination by host name. |
Destination | I2PSession.lookupDest(String name,
long maxWait)Ask the router to lookup a Destination by host name. |
LookupResult | I2PSession.lookupDest(String name,
long maxWait,
LookupCallback callback)Lookup a Destination by hostname. |
LookupResult | I2PSession.lookupDest2(String name,
long maxWait)Ask the router to lookup a Destination by host name. |
byte[] | I2PSession.receiveMessage(int msgId)Receive a message that the router has notified the client about, returning
the payload. |
void | I2PSession.reportAbuse(int msgId,
int severity)Instruct the router that the message received was abusive (including how
abusive on a 1-100 scale) in the hopes the router can do something to
minimize receiving abusive messages like that in the future. |
void | I2PSession.sendBlindingInfo(BlindData bd)Send blinding info to the router. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload)Send a new message to the given destination, containing the specified
payload, returning true if the router feels confident that the message
was delivered. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size)Send a new message to the given destination, containing the specified
payload, returning true if the router feels confident that the message
was delivered. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int proto,
int fromport,
int toport)See I2PSessionMuxedImpl for proto/port details. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromPort,
int toPort,
SendMessageOptions options)See I2PSessionMuxedImpl for proto/port details. |
long | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromPort,
int toPort,
SendMessageOptions options,
SendMessageStatusListener listener)Send a message and request an asynchronous notification of delivery status. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent)End-to-End Crypto is disabled, tags and keys are ignored. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
int proto,
int fromPort,
int toPort)See I2PSessionMuxedImpl for proto/port details. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expire)End-to-End Crypto is disabled, tags and keys are ignored. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expire,
int proto,
int fromPort,
int toPort)See I2PSessionMuxedImpl for proto/port details. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expire,
int proto,
int fromPort,
int toPort,
int flags)See I2PSessionMuxedImpl for proto/port details. |
boolean | I2PSession.sendMessage(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set<SessionTag> tagsSent)End-to-End Crypto is disabled, tags and keys are ignored!
Like sendMessage above, except the key used and the tags sent are exposed to the
application. |
| Modifier and Type | Method and Description |
|---|---|
void | ClientWriterRunner.addMessage(I2CPMessage msg)Add this message to the writer's queue. |
I2PSession | I2PSessionImpl.addSubsession(InputStream privateKeyStream,
Properties opts)Router must be connected or was connected... |
I2PSession | SubSession.addSubsession(InputStream destKeyStream,
Properties opts)Unsupported in a subsession. |
int[] | I2PSessionImpl.bandwidthLimits()Blocking. |
int[] | SubSession.bandwidthLimits()This won't be called, as the reply does not contain a session ID, so
it won't be routed back to us |
void | I2PSimpleSession.connect()Connect to the router and establish a session. |
void | I2PSessionImpl.connect()Connect to the router and establish a session. |
void | SubSession.connect()Connect to the router and establish a session. |
void | I2CPMessageProducer.connect(I2PSessionImpl session)Connect to the server. |
void | I2CPMessageProducer.createLeaseSet(I2PSessionImpl session,
LeaseSet leaseSet,
SigningPrivateKey signingPriv,
List<PrivateKey> privs)Send a CreateLeaseSet message. |
I2PSession | I2PClientImpl.createSession(I2PAppContext context,
InputStream destKeyStream,
Properties options)Create a new session (though do not connect it yet) |
I2PSession | I2PClientImpl.createSession(InputStream destKeyStream,
Properties options)Create a new session (though do not connect it yet) |
void | I2CPMessageProducer.disconnect(I2PSessionImpl session)Disconnect from the server. |
Destination | I2PSessionImpl.lookupDest(Hash h)Blocking. |
Destination | SubSession.lookupDest(Hash h)Blocking. |
Destination | I2PSessionImpl.lookupDest(Hash h,
long maxWait)Blocking. |
Destination | SubSession.lookupDest(Hash h,
long maxWait)Blocking. |
LookupResult | I2PSessionImpl.lookupDest(Hash h,
long maxWait,
LookupCallback callback)Lookup a Destination by hostname. |
Destination | I2PSessionImpl.lookupDest(String name)Ask the router to lookup a Destination by host name. |
Destination | SubSession.lookupDest(String name)Ask the router to lookup a Destination by host name. |
Destination | I2PSessionImpl.lookupDest(String name,
long maxWait)Ask the router to lookup a Destination by host name. |
Destination | SubSession.lookupDest(String name,
long maxWait)Ask the router to lookup a Destination by host name. |
LookupResult | I2PSessionImpl.lookupDest(String name,
long maxWait,
LookupCallback callback)Lookup a Destination by hash. |
LookupResult | I2PSessionImpl.lookupDest2(String name,
long maxWait)Ask the router to lookup a Destination by host name. |
byte[] | I2PSessionImpl.receiveMessage(int msgId)Pull the unencrypted data from the message that we've already prefetched and
notified the user that its available. |
byte[] | I2PSessionImpl2.receiveMessage(int msgId)pull the unencrypted AND DECOMPRESSED data |
void | I2CPMessageProducer.reportAbuse(I2PSessionImpl session,
int msgId,
int severity)Send an abuse report. |
void | I2PSessionImpl.reportAbuse(int msgId,
int severity)Report abuse with regards to the given messageId |
protected boolean | I2PSessionImpl2.sendBestEffort(Destination dest,
byte[] payload,
long expires,
int flags)TODO - Don't need to save MessageState since actuallyWait is false... |
protected boolean | I2PSessionImpl2.sendBestEffort(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expires)Send a message with best effort delivery. |
void | I2PSessionImpl.sendBlindingInfo(BlindData bd) |
(package private) void | I2PSessionImpl.sendMessage_unchecked(I2CPMessage message)Deliver an I2CP message to the router. |
(package private) void | SubSession.sendMessage_unchecked(I2CPMessage message)Deliver an I2CP message to the router. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload)unused, see MuxedImpl override |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload)sendMessage. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size)sendMessage. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int proto,
int fromport,
int toport)Not supported. |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int proto,
int fromport,
int toport)sendMessage. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromport,
int toport,
SendMessageOptions options)Not supported. |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromPort,
int toPort,
SendMessageOptions options)See SendMessageOptions for option details. |
long | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromport,
int toport,
SendMessageOptions options,
SendMessageStatusListener listener)Not supported. |
long | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromPort,
int toPort,
SendMessageOptions options,
SendMessageStatusListener listener)Send a message and request an asynchronous notification of delivery status. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent)Send a message with session key and tags. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
int proto,
int fromport,
int toport)Not supported. |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
int proto,
int fromport,
int toport)Send a message with session key and tags. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expires)Unused? see MuxedImpl override |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expires)Send a message with session key and tags. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expire,
int proto,
int fromport,
int toport)Not supported. |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expires,
int proto,
int fromPort,
int toPort)Send a message with protocol and port information. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expire,
int proto,
int fromport,
int toport,
int flags)Not supported. |
boolean | I2PSessionMuxedImpl.sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set<SessionTag> tagsSent,
long expires,
int proto,
int fromPort,
int toPort,
int flags)Send a message with protocol, port, and flags. |
boolean | I2PSessionImpl2.sendMessage(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set<SessionTag> tagsSent)Send a message with session key and tags. |
(package private) void | I2PSessionImpl.sendMessage(I2CPMessage message)Deliver an I2CP message to the router
As of 0.9.3, may block for several seconds if the write queue to the router is full |
(package private) void | SubSession.sendMessage(I2CPMessage message)Deliver an I2CP message to the router
May block for several seconds if the write queue to the router is full |
void | I2CPMessageProducer.sendMessage(I2PSessionImpl session,
Destination dest,
long nonce,
byte[] payload,
long expires,
int flags)Send an I2CP message. |
void | I2CPMessageProducer.sendMessage(I2PSessionImpl session,
Destination dest,
long nonce,
byte[] payload,
SendMessageOptions options)Send an I2CP message. |
void | I2CPMessageProducer.sendMessage(I2PSessionImpl session,
Destination dest,
long nonce,
byte[] payload,
SessionTag tag,
SessionKey key,
Set<SessionTag> tags,
SessionKey newKey,
long expires)Send an I2CP message. |
protected boolean | I2PSessionImpl2.sendNoEffort(Destination dest,
byte[] payload,
long expires,
int flags)Same as sendBestEffort(), except we do not expect any MessageStatusMessage responses -
not for accepted, or success, or failure. |
void | I2CPMessageProducer.updateTunnels(I2PSessionImpl session,
int tunnels)Update the tunnel count and settings. |
protected void | I2PSessionImpl.verifyOpen()Throws I2PSessionException if uninitialized, closed or closing. |
| Constructor and Description |
|---|
I2PSessionImpl(I2PAppContext context,
InputStream destKeyStream,
Properties options)Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey
from the destKeyStream, and using the specified options to connect to the router
As of 0.9.19, defaults in options are honored. |
I2PSessionImpl(I2PSessionImpl primary,
InputStream destKeyStream,
Properties options)For extension by SubSession via I2PSessionMuxedImpl and I2PSessionImpl2 |
I2PSessionImpl2(I2PAppContext ctx,
InputStream destKeyStream,
Properties options)for extension by I2PSessionMuxedImpl
Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey
from the destKeyStream, and using the specified options to connect to the router |
I2PSessionImpl2(I2PSessionImpl primary,
InputStream destKeyStream,
Properties options)I2PSessionImpl2. |
I2PSessionMuxedImpl(I2PAppContext ctx,
InputStream destKeyStream,
Properties options)Create a new muxed session. |
I2PSessionMuxedImpl(I2PSessionImpl primary,
InputStream destKeyStream,
Properties options)For extension by SubSession. |
I2PSimpleSession(I2PAppContext context,
Properties options)Create a new session for doing naming and bandwidth queries only. |
SubSession(I2PSession primary,
InputStream destKeyStream,
Properties options)Must be a I2PSessionMuxedImpl. |
| Modifier and Type | Method and Description |
|---|---|
(package private) static Destination | LookupDest.lookupBase32Hash(I2PAppContext ctx,
String key)Look up a destination by Base32 hash. |
(package private) static Destination | LookupDest.lookupHostname(I2PAppContext ctx,
String hostname)Any hostname, but this is for long-format b32 |
| Modifier and Type | Method and Description |
|---|---|
I2PSession | I2PSocketManager.addSubsession(InputStream privateKeyStream,
Properties opts)For a server, you must call connect() on the returned object. |
static I2PSocketManager | I2PSocketManagerFactory.createDisconnectedManager(InputStream myPrivateKeyStream,
String i2cpHost,
int i2cpPort,
Properties opts)Create a disconnected socket manager using the destination loaded from the given private key
stream, or null for a transient destination. |
static I2PSocketManager | I2PSocketManagerFactory.createDisconnectedManager(InputStream myPrivateKeyStream,
String i2cpHost,
int i2cpPort,
Properties opts,
IncomingConnectionFilter filter)Create a disconnected socket manager using the destination loaded from the given private key
stream, or null for a transient destination. |
| Modifier and Type | Method and Description |
|---|---|
I2PSession | I2PSocketManagerFull.addSubsession(InputStream privateKeyStream,
Properties opts)For a server, you must call connect() on the returned object. |
| Modifier and Type | Method and Description |
|---|---|
Destination | PrivateKeyFile.getDestination()If the destination is not set, read it in from the file. |
I2PSession | PrivateKeyFile.open()Open an I2P session. |
I2PSession | PrivateKeyFile.open(Properties opts)Open a session with the given options. |
| Constructor and Description |
|---|
PrivateKeyFile(InputStream in)Read a PrivateKeyFile from an input stream. |
| Modifier and Type | Method and Description |
|---|---|
I2CPMessageQueue | InternalClientManager.connect()Connect to the router, receiving a message queue to talk to the router with. |
| Modifier and Type | Method and Description |
|---|---|
void | ClientManagerFacade.registerMetaDest(Destination dest)Declare that we're going to publish a meta LS for this destination. |
| Modifier and Type | Method and Description |
|---|---|
I2CPMessageQueue | ClientManagerFacadeImpl.connect()The InternalClientManager interface. |
I2CPMessageQueue | ClientManager.internalConnect()The InternalClientManager interface. |
void | ClientManager.registerMetaDest(Destination dest)Declare that we're going to publish a meta LS for this destination. |
void | ClientManagerFacadeImpl.registerMetaDest(Destination dest)Declare that we're going to publish a meta LS for this destination. |
| Modifier and Type | Method and Description |
|---|---|
(package private) static Destination | SAMMessageSession.lookupDest(I2PSession session,
String name)Lookup a destination through the I2CP session. |
Destination | SAMMessageSession.lookupDest(String name)Lookup a destination through the I2CP session. |
Destination | SAMMessageSess.lookupDest(String name)Lookup a destination through the I2CP session. |
Destination | SAMStreamSession.lookupDest(String name)Lookup a destination through the I2CP session. |
abstract boolean | SAMMessageSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)Send bytes through a SAM message-based session. |
boolean | SAMMessageSess.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)Send bytes through a SAM message-based session. |
boolean | SAMRawSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)Send bytes through a SAM RAW session. |
boolean | SAMDatagramSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)Send bytes through a SAM DATAGRAM session. |
boolean | SAMStreamSession.sendBytes(String s,
byte[] b,
int pr,
int fp,
int tp)Unsupported |
boolean | SAMMessageSess.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)Send bytes through a SAM message-based session. |
boolean | SAMRawSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)Send bytes through a SAM RAW session. |
boolean | SAMDatagramSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)Send bytes through a SAM DATAGRAM session. |
boolean | SAMStreamSession.sendBytes(String s,
byte[] b,
int pr,
int fp,
int tp,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)Unsupported |
protected boolean | SAMMessageSession.sendBytesThroughMessageSession(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)Actually send bytes through the SAM message-based session I2PSession
(er...). |
protected boolean | SAMMessageSession.sendBytesThroughMessageSession(String dest,
byte[] data,
int proto,
int fromPort,
int toPort,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)Actually send bytes through the SAM message-based session I2PSession,
using per-message extended options. |
| Constructor and Description |
|---|
SAMDatagramSession(I2PSession sess,
Properties props,
int listenPort,
SAMDatagramReceiver recv)Create a new SAM DATAGRAM session on an existing I2P session. |
SAMDatagramSession(InputStream destStream,
Properties props,
SAMDatagramReceiver recv)Create a new SAM DATAGRAM session. |
SAMDatagramSession(String dest,
Properties props,
SAMDatagramReceiver recv)Create a new SAM DATAGRAM session. |
SAMMessageSession(InputStream destStream,
Properties props)Initialize a new SAM message-based session. |
SAMMessageSession(String dest,
Properties props)Initialize a new SAM message-based session. |
SAMRawSession(I2PSession sess,
Properties props,
int listenProtocol,
int listenPort,
SAMRawReceiver recv)Create a new SAM RAW session on an existing I2P session. |
SAMRawSession(InputStream destStream,
Properties props,
SAMRawReceiver recv)Create a new SAM RAW session. |
SAMRawSession(String dest,
Properties props,
SAMRawReceiver recv)Create a new SAM RAW session. |
SAMv3DatagramSession(String nick,
Properties props,
SAMv3Handler handler,
I2PSession isess,
int listenPort,
SAMv3DatagramServer dgServer)Build a Datagram Session on an existing i2p session
registered with the given nickname
Caller MUST call start(). |
SAMv3DatagramSession(String nick,
SAMv3DatagramServer dgServer)build a DatagramSession according to informations registered
with the given nickname
Caller MUST call start(). |
SAMv3RawSession(String nick,
Properties props,
SAMv3Handler handler,
I2PSession isess,
int listenProtocol,
int listenPort,
SAMv3DatagramServer dgServer)Build a Raw Session on an existing i2p session
registered with the given nickname
Caller MUST call start(). |
SAMv3RawSession(String nick,
SAMv3DatagramServer dgServer)Build a Raw Datagram Session according to information
registered with the given nickname
Caller MUST call start(). |