Package | Description |
---|---|
net.i2p.client.datagram |
Provides a standard way for reading and writing messages transferred over I2P
so that the recipient has an authenticated mechanism to reply to it.
|
net.i2p.crypto |
These classes provide a number of low-level cryptographic routines.
|
net.i2p.data |
These classes define the common data structures used by the various
I2P protocols.
|
net.i2p.data.i2cp |
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).
|
net.i2p.data.i2np |
This package defines the low-level messages sent between routers,
called the Invisible Internet Network Protocol (I2NP).
|
net.i2p.data.router |
Classes formerly in net.i2p.data but moved here as they are only used by the router.
|
net.i2p.i2ptunnel |
Implementation of preconfigured tunnels, both for clients and servers,
and a UI for adding more and editing the configuration.
|
net.i2p.router.crypto |
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
|
net.i2p.router.crypto.ratchet |
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
|
net.i2p.router.message |
Creates and parses garlic messages.
|
net.i2p.router.naming | |
net.i2p.router.startup |
The I2P startup package loads the configuration when I2P is started.
|
net.i2p.router.transport.ntcp |
The NTCP transport allows passing I2P messages on top of TCP.
|
net.i2p.router.transport.udp |
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
|
net.i2p.sam |
The SAM client API.
|
org.klomp.snark.dht |
Modifier and Type | Method and Description |
---|---|
void |
I2PDatagramDissector.loadI2PDatagram(byte[] dgram)
Load an I2P repliable datagram into the dissector.
|
Modifier and Type | Method and Description |
---|---|
void |
SHA1Hash.readBytes(InputStream in) |
Modifier and Type | Method and Description |
---|---|
static Certificate |
Certificate.create(byte[] data,
int off)
If null, P256 key, or Ed25519 key cert, return immutable static instance, else create new
|
static Destination |
Destination.create(InputStream in)
Pull from cache or return new
|
static Certificate |
Certificate.create(InputStream in)
If null, P256 key, or Ed25519 key cert, return immutable static instance, else create new
|
Destination |
PrivateKeyFile.createIfAbsent()
Create with the default signature type if nonexistent.
|
Destination |
PrivateKeyFile.createIfAbsent(SigType type)
Create with the specified signature type if nonexistent.
|
void |
DataStructure.fromBase64(String data)
Load the structure from the base 64 encoded data provided
Warning - many classes will throw IllegalStateException if data is already set.
|
void |
DataStructureImpl.fromBase64(String data) |
void |
SimpleDataStructure.fromBase64(String data)
Sets the data.
|
void |
DateAndFlags.fromByteArray(byte[] data)
Overridden for efficiency.
|
void |
TunnelId.fromByteArray(byte[] data)
Overridden for efficiency.
|
void |
DataStructure.fromByteArray(byte[] data)
Load the structure from the data provided
Warning - many classes will throw IllegalStateException if data is already set.
|
void |
DataStructureImpl.fromByteArray(byte[] data) |
void |
SimpleDataStructure.fromByteArray(byte[] data)
Overridden for efficiency.
|
static Date |
DataHelper.fromDate(byte[] src,
int offset) |
static int |
DataHelper.fromProperties(byte[] source,
int offset,
Properties target)
Reads the props from the byte array and puts them in the Properties target
See readProperties() for the format.
|
protected abstract byte[] |
DatabaseEntry.getBytes()
Returns the raw payload data, excluding the signature, to be signed by sign().
|
Destination |
PrivateKeyFile.getDestination()
If the destination is not set, read it in from the file.
|
int |
Destination.readBytes(byte[] source,
int offset)
Deprecated.
|
int |
Certificate.readBytes(byte[] source,
int offset) |
void |
DateAndFlags.readBytes(InputStream in) |
void |
Lease2.readBytes(InputStream in) |
void |
TunnelId.readBytes(InputStream in) |
void |
MetaLease.readBytes(InputStream in) |
void |
Hash.readBytes(InputStream in) |
void |
DataStructure.readBytes(InputStream in)
Load up the current object with data from the given stream.
|
void |
MetaLeaseSet.readBytes(InputStream in)
This does NOT validate the signature
|
void |
EncryptedLeaseSet.readBytes(InputStream in)
This does NOT validate the signature
|
void |
Payload.readBytes(InputStream in) |
void |
Certificate.readBytes(InputStream in) |
void |
LeaseSet2.readBytes(InputStream in)
This does NOT validate the signature
|
void |
KeysAndCert.readBytes(InputStream in) |
void |
SimpleDataStructure.readBytes(InputStream in)
Sets the data.
|
void |
LeaseSet.readBytes(InputStream in)
This does NOT validate the signature
|
void |
Lease.readBytes(InputStream in) |
static Date |
DataHelper.readDate(InputStream in)
Read in a date from the stream as specified by the I2P data structure spec.
|
protected void |
EncryptedLeaseSet.readHeader(InputStream in)
Overridden because we have a blinded key, not a dest
|
protected void |
LeaseSet2.readHeader(InputStream in) |
static long |
DataHelper.readLong(InputStream rawStream,
int numBytes)
Read the stream for an integer as defined by the I2P data structure specification.
|
protected void |
EncryptedLeaseSet.readOfflineBytes(InputStream in)
Overridden because we have a blinded key, not a dest
|
protected void |
LeaseSet2.readOfflineBytes(InputStream in) |
static Properties |
DataHelper.readProperties(InputStream rawStream)
Read a mapping from the stream, as defined by the I2P data structure spec,
and store it into a Properties object.
|
static Properties |
DataHelper.readProperties(InputStream rawStream,
Properties props)
Ditto, load into an existing properties
As of 0.9.18, throws DataFormatException on duplicate key
|
static String |
DataHelper.readString(InputStream in)
Read in a string from the stream as specified by the I2P data structure spec.
|
void |
EncryptedLeaseSet.sign(SigningPrivateKey key)
Sign the structure using the supplied signing key.
|
void |
DatabaseEntry.sign(SigningPrivateKey key)
Sign the structure using the supplied signing key
|
void |
LeaseSet2.sign(SigningPrivateKey key)
Sign the structure using the supplied signing key.
|
void |
EncryptedLeaseSet.sign(SigningPrivateKey key,
int authType,
List<? extends SimpleDataStructure> clientKeys)
Sign the structure using the supplied signing key.
|
KeyCertificate |
Certificate.toKeyCertificate()
Up-convert this to a KeyCertificate
|
static int |
DataHelper.toProperties(byte[] target,
int offset,
Properties props)
Deprecated.
|
static byte[] |
DataHelper.toProperties(Properties opts)
Writes the props to returned byte array, not sorted
(unless the opts param is an OrderedProperties)
Strings will be UTF-8 encoded in the byte array.
|
void |
PrivateKeyFile.write()
Copied from I2PClientImpl.createDestination()
|
protected void |
LeaseSet2.writeBody(OutputStream out)
Without sig.
|
void |
DateAndFlags.writeBytes(OutputStream out) |
void |
Lease2.writeBytes(OutputStream out) |
void |
TunnelId.writeBytes(OutputStream out) |
void |
MetaLease.writeBytes(OutputStream out) |
void |
DataStructure.writeBytes(OutputStream out)
Write out the data structure to the stream, using the format defined in the
I2P data structure specification.
|
void |
Payload.writeBytes(OutputStream out) |
void |
Certificate.writeBytes(OutputStream out) |
void |
LeaseSet2.writeBytes(OutputStream out)
Including sig.
|
void |
KeysAndCert.writeBytes(OutputStream out) |
void |
SimpleDataStructure.writeBytes(OutputStream out) |
void |
LeaseSet.writeBytes(OutputStream out)
This does NOT validate the signature
|
void |
Lease.writeBytes(OutputStream out) |
protected void |
MetaLeaseSet.writeBytesWithoutSig(OutputStream out)
Without sig.
|
protected void |
EncryptedLeaseSet.writeBytesWithoutSig(OutputStream out)
Before encrypt() is called, the inner leaseset.
|
protected void |
LeaseSet2.writeBytesWithoutSig(OutputStream out)
Without sig.
|
static void |
DataHelper.writeDate(OutputStream out,
Date date)
Write out a date to the stream as specified by the I2P data structure spec.
|
protected void |
EncryptedLeaseSet.writeHeader(OutputStream out)
Overridden because we have a blinded key, not a dest
|
protected void |
LeaseSet2.writeHeader(OutputStream out) |
static void |
DataHelper.writeLong(OutputStream rawStream,
int numBytes,
long value)
Write an integer as defined by the I2P data structure specification to the stream.
|
protected void |
EncryptedLeaseSet.writeOfflineBytes(OutputStream out)
Overridden because we have a blinded key, not a dest
|
protected void |
LeaseSet2.writeOfflineBytes(OutputStream out) |
static void |
DataHelper.writeProperties(OutputStream rawStream,
Properties props)
Write a mapping to the stream, as defined by the I2P data structure spec,
and store it into a Properties object.
|
static void |
DataHelper.writeProperties(OutputStream rawStream,
Properties props,
boolean utf8)
Writes the props to the stream, sorted by property name.
|
static void |
DataHelper.writeProperties(OutputStream rawStream,
Properties props,
boolean utf8,
boolean sort)
Writes the props to the stream, sorted by property name if sort == true or
if props is an OrderedProperties.
|
static void |
DataHelper.writeString(OutputStream out,
String string)
Write out a string to the stream as specified by the I2P data structure spec.
|
static void |
DataHelper.writeStringUTF8(OutputStream out,
String string)
Write out a string to the stream as specified by the I2P data structure spec.
|
void |
SigningPublicKey.writeTruncatedBytes(OutputStream out)
Write the data up to a max of 128 bytes.
|
Constructor and Description |
---|
Destination(String s)
alternative constructor which takes a base64 string representation
|
KeyCertificate(byte[] payload) |
KeyCertificate(Certificate cert)
Up-convert a cert to this class
|
PrivateKey(String base64Data)
constructs from base64
|
PublicKey(String base64Data)
Constructs from base64.
|
SigningPrivateKey(String base64Data)
constructs from base64
|
SigningPublicKey(String base64Data)
constructs from base64
|
VerifiedDestination(Destination d)
create from an existing Dest
|
VerifiedDestination(String s)
alternative constructor which takes a base64 string representation
|
Modifier and Type | Method and Description |
---|---|
void |
AbuseSeverity.readBytes(InputStream in) |
void |
I2CPMessageImpl.readBytes(InputStream in) |
void |
AbuseReason.readBytes(InputStream in) |
void |
MessageId.readBytes(InputStream in) |
void |
SessionConfig.readBytes(InputStream rawConfig) |
void |
SessionId.readBytes(InputStream in) |
void |
SessionConfig.signSessionConfig(SigningPrivateKey signingKey)
Sign the structure using the supplied private key
|
void |
AbuseSeverity.writeBytes(OutputStream out) |
void |
I2CPMessageImpl.writeBytes(OutputStream out) |
void |
AbuseReason.writeBytes(OutputStream out) |
void |
MessageId.writeBytes(OutputStream out) |
void |
SessionConfig.writeBytes(OutputStream out) |
void |
SessionId.writeBytes(OutputStream out) |
Modifier and Type | Method and Description |
---|---|
static DeliveryInstructions |
DeliveryInstructions.create(byte[] data,
int offset)
Returns immutable local instructions, or new
|
int |
GarlicClove.readBytes(byte[] source,
int offset) |
int |
DeliveryInstructions.readBytes(byte[] data,
int offset) |
void |
GarlicClove.readBytesRatchet(byte[] source,
int offset,
int len)
Short format for ECIES-Ratchet, saves 22 bytes.
|
Constructor and Description |
---|
BuildRequestRecord(I2PAppContext ctx,
PrivateKey ourKey,
EncryptedBuildRecord encryptedRecord)
Decrypt the data from the specified record, writing the decrypted record into this instance's
data buffer
Caller MUST check that first 16 bytes of our hash matches first 16 bytes of encryptedRecord
before calling this.
|
Modifier and Type | Method and Description |
---|---|
protected byte[] |
RouterInfo.getBytes()
Write out the raw payload of the routerInfo, excluding the signature.
|
RouterIdentity |
RouterPrivateKeyFile.getRouterIdentity()
Read it in from the file.
|
void |
RouterInfo.readBytes(InputStream in)
This does NOT validate the signature
|
void |
RouterAddress.readBytes(InputStream in)
As of 0.9.3, expiration MUST be all zeros as it is ignored on
readin and the signature will fail.
|
void |
RouterInfo.readBytes(InputStream in,
boolean verifySig)
If verifySig is true,
this validates the signature while reading in,
and throws a DataFormatException if the sig is invalid.
|
void |
RouterInfo.writeBytes(OutputStream out)
This does NOT validate the signature
|
void |
RouterAddress.writeBytes(OutputStream out)
As of 0.9.3, expiration MUST be all zeros as it is ignored on
readin and the signature will fail.
|
Modifier and Type | Method and Description |
---|---|
static Destination |
I2PTunnel.destFromName(String name)
Deprecated.
Don't use i2ptunnel for lookup! Use I2PAppContext.getGlobalContext().namingService().lookup(name) from i2p.jar
|
Modifier and Type | Method and Description |
---|---|
byte[] |
ElGamalAESEngine.decrypt(byte[] data,
PrivateKey targetPrivateKey)
Deprecated.
specify the key manager!
|
byte[] |
ElGamalAESEngine.decrypt(byte[] data,
PrivateKey targetPrivateKey,
SessionKeyManager keyManager)
Decrypt the message using the given private key
and using tags from the specified key manager.
|
(package private) byte[] |
ElGamalAESEngine.decryptAESBlock(byte[] encrypted,
int offset,
int encryptedLen,
SessionKey key,
byte[] iv,
byte[] sentTag,
Set<SessionTag> foundTags,
SessionKey foundKey)
private byte[] decryptAESBlock(byte encrypted[], SessionKey key, byte iv[],
byte sentTag[], Set foundTags, SessionKey foundKey) throws DataFormatException {
return decryptAESBlock(encrypted, 0, encrypted.length, key, iv, sentTag, foundTags, foundKey);
}
|
Modifier and Type | Method and Description |
---|---|
CloveSet |
ECIESAEADEngine.decrypt(byte[] data,
PrivateKey elgKey,
PrivateKey ecKey,
MuxedSKM keyManager)
Try to decrypt the message with one or both of the given private keys
|
CloveSet |
MuxedEngine.decrypt(byte[] data,
PrivateKey elgKey,
PrivateKey ecKey,
MuxedSKM keyManager)
Decrypt the message with the given private keys
|
CloveSet |
ECIESAEADEngine.decrypt(byte[] data,
PrivateKey targetPrivateKey,
RatchetSKM keyManager)
Decrypt the message using the given private key
and using tags from the specified key manager.
|
void |
RatchetPayload.PayloadCallback.gotDateTime(long time) |
void |
RatchetPayload.PayloadCallback.gotOptions(byte[] options,
boolean isHandshake) |
static int |
RatchetPayload.processPayload(I2PAppContext ctx,
RatchetPayload.PayloadCallback cb,
byte[] payload,
int off,
int length,
boolean isHandshake)
Incoming payload.
|
Modifier and Type | Method and Description |
---|---|
CloveSet |
GarlicMessageParser.readCloveSet(byte[] data,
int offset)
ElGamal only
|
Modifier and Type | Method and Description |
---|---|
static Properties |
BlockfileNamingService.readProperties(ByteArrayInputStream in)
Same as DataHelper.readProperties, UTF-8, unsorted,
except that values may up to 4K bytes.
|
Modifier and Type | Method and Description |
---|---|
static LoadRouterInfoJob.KeyData |
LoadRouterInfoJob.readKeyData(File rkf1,
File rkf2) |
Modifier and Type | Method and Description |
---|---|
void |
NTCP2Payload.PayloadCallback.gotDateTime(long time) |
void |
NTCP2Payload.PayloadCallback.gotOptions(byte[] options,
boolean isHandshake) |
void |
InboundEstablishState.gotRI(RouterInfo ri,
boolean isHandshake,
boolean flood)
Get "s" static key out of RI, compare to what we got in the handshake.
|
void |
NTCP2Payload.PayloadCallback.gotRI(RouterInfo ri,
boolean isHandshake,
boolean flood) |
static int |
NTCP2Payload.processPayload(I2PAppContext ctx,
NTCP2Payload.PayloadCallback cb,
byte[] payload,
int off,
int length,
boolean isHandshake)
Incoming payload.
|
Constructor and Description |
---|
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
RouterIdentity remotePeer,
RouterAddress remAddr,
int version)
Create an outbound unconnected NTCP connection.
|
Modifier and Type | Method and Description |
---|---|
ACKBitfield[] |
UDPPacketReader.DataReader.readACKBitfields() |
int |
UDPPacketReader.DataReader.readFragmentCount() |
void |
UDPPacketReader.DataReader.readMessageFragment(int fragmentNum,
byte[] target,
int targetOffset) |
int |
UDPPacketReader.DataReader.readMessageFragmentNum(int fragmentNum) |
int |
UDPPacketReader.DataReader.readMessageFragmentSize(int fragmentNum) |
long |
UDPPacketReader.DataReader.readMessageId(int fragmentNum) |
boolean |
UDPPacketReader.DataReader.readMessageIsLast(int fragmentNum) |
boolean |
InboundMessageState.receiveFragment(UDPPacketReader.DataReader data,
int dataFragment)
Read in the data from the fragment.
|
void |
UDPPacketReader.DataReader.toRawString(StringBuilder buf) |
Constructor and Description |
---|
InboundMessageState(RouterContext ctx,
long messageId,
Hash from,
UDPPacketReader.DataReader data,
int dataFragment)
Create a new IMS and read in the data from the fragment.
|
Modifier and Type | Method and Description |
---|---|
boolean |
SAMv2StreamSession.connect(int id,
String dest,
Properties props)
Connect the SAM STREAM session to the specified Destination
|
boolean |
SAMStreamSession.connect(int id,
String dest,
Properties props)
Connect the SAM STREAM session to the specified Destination
|
void |
SAMv3StreamSession.connect(SAMv3Handler handler,
String dest,
Properties props)
Connect the SAM STREAM session to the specified Destination
for a single connection, using the socket stolen from the handler.
|
static Destination |
SAMUtils.getDest(String s)
Resolve the destination from a key or a hostname
|
(package private) SAMStreamSession |
SAMv2Handler.newSAMStreamSession(String destKeystream,
String direction,
Properties props) |
boolean |
SAMRawSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)
Send bytes through a SAM RAW session.
|
boolean |
SAMMessageSess.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)
Send bytes through a SAM message-based session.
|
boolean |
SAMDatagramSession.sendBytes(String dest,
byte[] data,
int proto,
int fromPort,
int toPort)
Send bytes through a SAM DATAGRAM session.
|
abstract boolean |
SAMMessageSession.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,
boolean sendLeaseSet,
int sendTags,
int tagThreshold,
int expiration)
Send bytes through a SAM RAW session.
|
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 |
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.
|
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 |
---|
MasterSession(String nick,
SAMv3DatagramServer dgServer,
SAMv3Handler handler,
Properties props)
Build a Session according to information
registered with the given nickname.
|
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(I2PSession sess,
int listenProtocol,
int listenPort)
Initialize a new SAM message-based session using an existing I2PSession.
|
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.
|
SAMStreamSession(I2PSocketManager mgr,
Properties props,
SAMStreamReceiver recv,
int listenport)
Create a new SAM STREAM session on an existing socket manager.
|
SAMStreamSession(InputStream destStream,
String dir,
Properties props,
SAMStreamReceiver recv)
Create a new SAM STREAM session.
|
SAMStreamSession(String dest,
String dir,
Properties props,
SAMStreamReceiver recv)
Create a new SAM STREAM session.
|
SAMv2StreamSession(InputStream destStream,
String dir,
Properties props,
SAMStreamReceiver recv)
Create a new SAM STREAM session.
|
SAMv2StreamSession(String dest,
String dir,
Properties props,
SAMStreamReceiver recv)
Create a new SAM STREAM 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().
|
SAMv3StreamSession(String login)
Create a new SAM STREAM session, according to information
registered with the given nickname
Caller MUST call start().
|
SAMv3StreamSession(String login,
Properties props,
SAMv3Handler handler,
I2PSocketManager mgr,
int listenPort)
Build a Stream Session on an existing I2P session
registered with the given nickname
Caller MUST call start().
|
Constructor and Description |
---|
NodeInfo(String s)
Create from persistent storage string.
|