net.i2p.router.transport.udp
Class InboundEstablishState

java.lang.Object
  extended by net.i2p.router.transport.udp.InboundEstablishState

public class InboundEstablishState
extends java.lang.Object

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.


Field Summary
static int STATE_CONFIRMED_COMPLETELY
          we have completely received all of the confirmation packets
static int STATE_CONFIRMED_PARTIALLY
          we have received one or more confirmation packets
static int STATE_CREATED_SENT
          we have sent a signed creation packet
static int STATE_FAILED
          we are explicitly failing it
static int STATE_REQUEST_RECEIVED
          we have received an initial request
static int STATE_UNKNOWN
          nothin known yet
 
Constructor Summary
InboundEstablishState(RouterContext ctx, byte[] remoteIP, int remotePort, int localPort)
           
 
Method Summary
 boolean complete()
           
 boolean confirmedFullyReceived()
          have we fully received the SessionConfirmed messages from Alice?
 void createdPacketSent()
          note that we just sent a SessionCreated packet
 void fail()
           
 void generateSessionKey()
           
 byte[] getBobIP()
           
 SessionKey getCipherKey()
           
 RouterIdentity getConfirmedIdentity()
          Who is Alice (null if forged/unknown)
 long getEstablishBeginTime()
           
 long getLifetime()
          how long have we been trying to establish this session?
 SessionKey getMACKey()
           
 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()
           
 int getState()
           
 void prepareSessionCreated()
           
 void receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)
           
 void receiveSessionRequest(UDPPacketReader.SessionRequestReader req)
           
 boolean sessionRequestReceived()
           
 void setNextSendTime(long when)
           
 void setSentRelayTag(long tag)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

STATE_UNKNOWN

public static final int STATE_UNKNOWN
nothin known yet

See Also:
Constant Field Values

STATE_REQUEST_RECEIVED

public static final int STATE_REQUEST_RECEIVED
we have received an initial request

See Also:
Constant Field Values

STATE_CREATED_SENT

public static final int STATE_CREATED_SENT
we have sent a signed creation packet

See Also:
Constant Field Values

STATE_CONFIRMED_PARTIALLY

public static final int STATE_CONFIRMED_PARTIALLY
we have received one or more confirmation packets

See Also:
Constant Field Values

STATE_CONFIRMED_COMPLETELY

public static final int STATE_CONFIRMED_COMPLETELY
we have completely received all of the confirmation packets

See Also:
Constant Field Values

STATE_FAILED

public static final int STATE_FAILED
we are explicitly failing it

See Also:
Constant Field Values
Constructor Detail

InboundEstablishState

public InboundEstablishState(RouterContext ctx,
                             byte[] remoteIP,
                             int remotePort,
                             int localPort)
Method Detail

getState

public int getState()

complete

public boolean complete()

receiveSessionRequest

public void receiveSessionRequest(UDPPacketReader.SessionRequestReader req)

sessionRequestReceived

public boolean sessionRequestReceived()

getReceivedX

public byte[] getReceivedX()

getReceivedOurIP

public byte[] getReceivedOurIP()

generateSessionKey

public void generateSessionKey()
                        throws DHSessionKeyBuilder.InvalidPublicParameterException
Throws:
DHSessionKeyBuilder.InvalidPublicParameterException

getCipherKey

public SessionKey getCipherKey()

getMACKey

public SessionKey getMACKey()

getSentIP

public byte[] getSentIP()
what IP do they appear to be on?


getSentPort

public int getSentPort()
what port number do they appear to be coming from?


getBobIP

public byte[] getBobIP()

getSentY

public byte[] getSentY()

fail

public void fail()

getSentRelayTag

public long getSentRelayTag()

setSentRelayTag

public void setSentRelayTag(long tag)

getSentSignedOnTime

public long getSentSignedOnTime()

prepareSessionCreated

public void prepareSessionCreated()

getSentSignature

public Signature getSentSignature()

createdPacketSent

public void createdPacketSent()
note that we just sent a SessionCreated packet


getLifetime

public long getLifetime()
how long have we been trying to establish this session?


getEstablishBeginTime

public long getEstablishBeginTime()

getNextSendTime

public long getNextSendTime()

setNextSendTime

public void setNextSendTime(long when)

getRemoteHostId

RemoteHostId getRemoteHostId()
RemoteHostId, uniquely identifies an attempt


receiveSessionConfirmed

public void receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)

confirmedFullyReceived

public boolean confirmedFullyReceived()
have we fully received the SessionConfirmed messages from Alice?


getConfirmedIdentity

public RouterIdentity getConfirmedIdentity()
Who is Alice (null if forged/unknown)


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object