public abstract class TunnelCreatorConfig extends Object implements TunnelInfo
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext |
_context |
static int |
REPLY_IV_LENGTH
IV length for
getAESReplyIV(int) |
| Constructor and Description |
|---|
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound)
For exploratory only (null destination)
|
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound,
net.i2p.data.Hash destination) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
getAESReplyIV(int hop)
IV used to encrypt the reply sent for the tunnel creation crypto.
|
net.i2p.data.SessionKey |
getAESReplyKey(int hop)
Key to encrypt the reply sent for the tunnel creation crypto.
|
net.i2p.data.Hash |
getBlankHash()
Checksum for blank record
|
byte[] |
getChaChaReplyAD(int hop)
Get ECIES reply AD
|
net.i2p.data.SessionKey |
getChaChaReplyKey(int hop)
Get ECIES reply key
|
HopConfig |
getConfig(int hop)
retrieve the config for the given hop.
|
net.i2p.data.Hash |
getDestination()
If this is a client tunnel, what destination is it for?
|
net.i2p.data.Hash |
getEndpoint()
For convenience
|
long |
getExpiration() |
net.i2p.data.Hash |
getFarEnd()
For convenience
|
net.i2p.data.Hash |
getGateway()
For convenience
|
int |
getLength()
How many hops are there in the tunnel?
INCLUDING US.
|
Properties |
getOptions() |
net.i2p.data.Hash |
getPeer(int hop)
retrieve the peer at the given hop.
|
int |
getPriority()
Outbound message priority - for outbound tunnels only
|
int |
getProcessedMessagesCount() |
net.i2p.data.TunnelId |
getReceiveTunnelId(int hop)
retrieve the tunnelId that the given hop receives messages on.
|
long |
getReplyMessageId()
new style reply message id
|
List<Integer> |
getReplyOrder()
component ordering in the new style request
|
net.i2p.data.TunnelId |
getSendTunnelId(int hop)
retrieve the tunnelId that the given hop sends messages on.
|
boolean |
getTunnelFailed() |
int |
getTunnelFailures() |
long |
getVerifiedBytesTransferred()
we know for sure that this many bytes travelled through the tunnel in its lifetime
|
void |
incrementProcessedMessages()
take note of a message being pumped through this tunnel
|
void |
incrementVerifiedBytesTransferred(int bytes)
This calls profile manager tunnelDataPushed1m() for each peer
|
boolean |
isEC(int hop)
Is it an ECIES hop?
|
boolean |
isInbound()
is this an inbound tunnel?
|
void |
setAESReplyKeys(int hop,
net.i2p.data.SessionKey key,
byte[] iv)
Key and IV to encrypt the reply sent for the tunnel creation crypto.
|
void |
setBlankHash(net.i2p.data.Hash h)
Checksum for blank record
|
void |
setChaChaReplyKeys(int hop,
net.i2p.data.SessionKey key,
byte[] ad)
Set ECIES reply key and IV
|
void |
setExpiration(long when) |
void |
setPeer(int hop,
net.i2p.data.Hash peer) |
void |
setPriority(int priority)
Outbound message priority - for outbound tunnels only
|
void |
setReplyMessageId(long id) |
void |
setReplyOrder(List<Integer> order) |
void |
setReused()
Note that we reused this tunnel
|
void |
testSuccessful(int ms)
take note that the tunnel was able to measurably Do Good
in the given time
|
String |
toString() |
boolean |
tunnelFailed()
The tunnel failed a test, so (maybe) stop using it
|
boolean |
wasReused()
Did we reuse this tunnel?
|
protected final RouterContext _context
public static final int REPLY_IV_LENGTH
getAESReplyIV(int)public TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound)
length - 1 minimum (0 hop is length 1)public TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound, net.i2p.data.Hash destination)
length - 1 minimum (0 hop is length 1)destination - null for exploratorypublic int getLength()
getLength in interface TunnelInfopublic Properties getOptions()
public HopConfig getConfig(int hop)
public net.i2p.data.TunnelId getReceiveTunnelId(int hop)
getReceiveTunnelId in interface TunnelInfopublic net.i2p.data.TunnelId getSendTunnelId(int hop)
getSendTunnelId in interface TunnelInfopublic net.i2p.data.Hash getPeer(int hop)
getPeer in interface TunnelInfopublic void setPeer(int hop,
net.i2p.data.Hash peer)
public net.i2p.data.Hash getGateway()
getGateway in interface TunnelInfopublic net.i2p.data.Hash getEndpoint()
getEndpoint in interface TunnelInfopublic net.i2p.data.Hash getFarEnd()
getFarEnd in interface TunnelInfopublic boolean isInbound()
isInbound in interface TunnelInfopublic net.i2p.data.Hash getDestination()
getDestination in interface TunnelInfopublic long getExpiration()
getExpiration in interface TunnelInfopublic void setExpiration(long when)
public long getReplyMessageId()
public void setReplyMessageId(long id)
public void incrementProcessedMessages()
public int getProcessedMessagesCount()
getProcessedMessagesCount in interface TunnelInfopublic void incrementVerifiedBytesTransferred(int bytes)
incrementVerifiedBytesTransferred in interface TunnelInfopublic long getVerifiedBytesTransferred()
TunnelInfogetVerifiedBytesTransferred in interface TunnelInfopublic boolean tunnelFailed()
public boolean getTunnelFailed()
public int getTunnelFailures()
public void testSuccessful(int ms)
TunnelInfotestSuccessful in interface TunnelInfopublic boolean wasReused()
wasReused in interface TunnelInfopublic void setReused()
setReused in interface TunnelInfopublic int getPriority()
public void setPriority(int priority)
priority - -25 to +25, default 0public void setAESReplyKeys(int hop,
net.i2p.data.SessionKey key,
byte[] iv)
IllegalArgumentException - if iv not 16 bytespublic net.i2p.data.SessionKey getAESReplyKey(int hop)
IllegalArgumentException - if iv not 16 bytespublic byte[] getAESReplyIV(int hop)
public net.i2p.data.Hash getBlankHash()
public void setBlankHash(net.i2p.data.Hash h)
public void setChaChaReplyKeys(int hop,
net.i2p.data.SessionKey key,
byte[] ad)
public boolean isEC(int hop)
public net.i2p.data.SessionKey getChaChaReplyKey(int hop)
public byte[] getChaChaReplyAD(int hop)