|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.client.I2PSessionImpl
net.i2p.client.I2PSessionImpl2
class I2PSessionImpl2
Thread safe implementation of an I2P session running over TCP.
Field Summary |
---|
Fields inherited from class net.i2p.client.I2PSessionImpl |
---|
_context, _handlerMap, _producer, LISTEN_PORT |
Constructor Summary | |
---|---|
I2PSessionImpl2(I2PAppContext ctx,
java.io.InputStream destKeyStream,
java.util.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 |
Method Summary | |
---|---|
void |
destroySession(boolean sendDisconnect)
|
protected long |
getTimeout()
|
byte[] |
receiveMessage(int msgId)
pull the unencrypted AND DECOMPRESSED data |
void |
receiveStatus(int msgId,
long nonce,
int status)
|
protected boolean |
reconnect()
Called whenever we want to reconnect (used only in the superclass). |
boolean |
sendMessage(Destination dest,
byte[] payload)
Send the data to the destination. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size)
|
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
java.util.Set tagsSent)
|
boolean |
sendMessage(Destination dest,
byte[] payload,
SessionKey keyUsed,
java.util.Set tagsSent)
Like sendMessage above, except the key used and the tags sent are exposed to the application. |
Methods inherited from class net.i2p.client.I2PSessionImpl |
---|
addNewMessage, connect, createNewTags, dateUpdated, destroySession, disconnect, disconnected, getDecryptionKey, getLeaseSet, getMyDestination, getOptions, getPrefix, getPrivateKey, getProducer, getSessionId, isClosed, messageReceived, propogateError, readError, reportAbuse, sendMessage, setLeaseSet, setSessionId, setSessionListener, shouldReconnect |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public I2PSessionImpl2(I2PAppContext ctx, java.io.InputStream destKeyStream, java.util.Properties options) throws I2PSessionException
I2PSessionException
- if there is a problem loading the private keys orMethod Detail |
---|
protected long getTimeout()
public void destroySession(boolean sendDisconnect)
destroySession
in class I2PSessionImpl
public boolean sendMessage(Destination dest, byte[] payload) throws I2PSessionException
I2PSessionImpl
sendMessage
in interface I2PSession
sendMessage
in class I2PSessionImpl
dest
- location to send the messagepayload
- body of the message to be sent (unencrypted)
I2PSessionException
public boolean sendMessage(Destination dest, byte[] payload, int offset, int size) throws I2PSessionException
I2PSessionException
public boolean sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent) throws I2PSessionException
I2PSession
SessionKeyManager.getInstance().tagsDelivered(dest.getPublicKey(), keyUsed, tagsSent);If an application is using guaranteed delivery mode, this is not useful, but for applications using best effort delivery mode, if they can know with certainty that a message was delivered and can update the SessionKeyManager appropriately, a significant performance boost will occur (subsequent message encryption and decryption will be done via AES and a SessionTag, rather than ElGamal+AES, which is 1000x slower).
sendMessage
in interface I2PSession
sendMessage
in class I2PSessionImpl
dest
- location to send the messagepayload
- body of the message to be sent (unencrypted)keyUsed
- session key delivered to the destination for association with the tags sent. This is essentially
an output parameter - keyUsed.getData() is ignored during this call, but after the call completes,
it will be filled with the bytes of the session key delivered. Typically the key delivered is the
same one as the key encrypted with, but not always. If this is null then the key data will not be
exposed.tagsSent
- set of tags delivered to the peer and associated with the keyUsed. This is also an output parameter -
the contents of the set is ignored during the call, but afterwards it contains a set of SessionTag
objects that were sent along side the given keyUsed.
I2PSessionException
public boolean sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, java.util.Set tagsSent) throws I2PSessionException
I2PSessionException
public byte[] receiveMessage(int msgId) throws I2PSessionException
receiveMessage
in interface I2PSession
receiveMessage
in class I2PSessionImpl
msgId
- message to fetch
I2PSessionException
public void receiveStatus(int msgId, long nonce, int status)
receiveStatus
in class I2PSessionImpl
protected boolean reconnect()
reconnect
in class I2PSessionImpl
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |