|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.router.transport.udp.InboundEstablishState
class InboundEstablishState
Data for a new connection being established, where the remote peer has initiated the connection with us. In other words, they are Alice and we are Bob. TODO do all these methods need to be synchronized?
Nested Class Summary | |
---|---|
static class |
InboundEstablishState.InboundState
|
Constructor Summary | |
---|---|
InboundEstablishState(RouterContext ctx,
byte[] remoteIP,
int remotePort,
int localPort,
DHSessionKeyBuilder dh)
|
Method Summary | |
---|---|
void |
addMessage(OutNetMessage msg)
Queue a message to be sent after the session is established. |
void |
complete()
Notify successful completion |
void |
createdPacketSent()
note that we just sent a SessionCreated packet |
void |
fail()
|
void |
generateSessionKey()
Generates session key and mac key. |
SessionKey |
getCipherKey()
|
RouterIdentity |
getConfirmedIdentity()
Who is Alice (null if forged/unknown) Note that this isn't really confirmed - see below. |
long |
getEstablishBeginTime()
|
long |
getLifetime()
how long have we been trying to establish this session? |
SessionKey |
getMACKey()
|
OutNetMessage |
getNextQueuedMessage()
Pull from the message queue |
long |
getNextSendTime()
|
byte[] |
getReceivedOurIP()
|
byte[] |
getReceivedX()
|
(package private) RemoteHostId |
getRemoteHostId()
RemoteHostId, uniquely identifies an attempt |
byte[] |
getSentIP()
what IP do they appear to be on? |
int |
getSentPort()
what port number do they appear to be coming from? |
long |
getSentRelayTag()
|
Signature |
getSentSignature()
|
long |
getSentSignedOnTime()
|
byte[] |
getSentY()
|
InboundEstablishState.InboundState |
getState()
|
boolean |
isComplete()
|
void |
prepareSessionCreated()
|
void |
receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)
Note that while a SessionConfirmed could in theory be fragmented, in practice a RouterIdentity is 387 bytes and a single fragment is 512 bytes max, so it will never be fragmented. |
void |
receiveSessionRequest(UDPPacketReader.SessionRequestReader req)
|
boolean |
sessionRequestReceived()
|
void |
setSentRelayTag(long tag)
|
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public InboundEstablishState(RouterContext ctx, byte[] remoteIP, int remotePort, int localPort, DHSessionKeyBuilder dh)
localPort
- Must be our external port, otherwise the signature of the
& SessionCreated message will be bad if the external port != the internal port.Method Detail |
---|
public InboundEstablishState.InboundState getState()
public boolean isComplete()
public void complete()
public void addMessage(OutNetMessage msg)
public OutNetMessage getNextQueuedMessage()
public void receiveSessionRequest(UDPPacketReader.SessionRequestReader req)
public boolean sessionRequestReceived()
public byte[] getReceivedX()
public byte[] getReceivedOurIP()
public void generateSessionKey() throws DHSessionKeyBuilder.InvalidPublicParameterException
DHSessionKeyBuilder.InvalidPublicParameterException
public SessionKey getCipherKey()
public SessionKey getMACKey()
public byte[] getSentIP()
public int getSentPort()
public byte[] getSentY()
public void fail()
public long getSentRelayTag()
public void setSentRelayTag(long tag)
public long getSentSignedOnTime()
public void prepareSessionCreated()
public Signature getSentSignature()
public void createdPacketSent()
public long getLifetime()
public long getEstablishBeginTime()
public long getNextSendTime()
RemoteHostId getRemoteHostId()
public void receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)
public RouterIdentity getConfirmedIdentity()
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |