Uses of Class
net.i2p.data.SessionKey

Packages that use SessionKey
net.i2p.client Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P. 
net.i2p.client.impl Implements the base I2P SDK for developing applications that communicate through I2P. 
net.i2p.client.streaming.impl Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages. 
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.i2np This package defines the low-level messages sent between routers, called the Invisible Internet Network Protocol (I2NP). 
net.i2p.router The I2P router application handles the I2P network communication. 
net.i2p.router.crypto Classes formerly in net.i2p.crypto but moved here as they are only used by the router. 
net.i2p.router.message Creates and parses garlic messages. 
net.i2p.router.networkdb.kademlia The network database, including implementation of floodfills. 
net.i2p.router.transport.crypto DH key generation. 
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.router.tunnel All the work of managing locally created and participating tunnels, creating and handling tunnel messages, and their encryption. 
 

Uses of SessionKey in net.i2p.client
 

Methods in net.i2p.client with parameters of type SessionKey
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent)
          End-to-End Crypto is disabled, tags and keys are ignored.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, int proto, int fromPort, int toPort)
          See I2PSessionMuxedImpl for proto/port details.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expire)
          End-to-End Crypto is disabled, tags and keys are ignored.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expire, int proto, int fromPort, int toPort)
          See I2PSessionMuxedImpl for proto/port details.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expire, int proto, int fromPort, int toPort, int flags)
          See I2PSessionMuxedImpl for proto/port details.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, Set tagsSent)
          End-to-End Crypto is disabled, tags and keys are ignored! Like sendMessage above, except the key used and the tags sent are exposed to the application.
 

Uses of SessionKey in net.i2p.client.impl
 

Methods in net.i2p.client.impl with parameters of type SessionKey
protected  boolean I2PSessionImpl2.sendBestEffort(Destination dest, byte[] payload, SessionKey keyUsed, Set tagsSent, long expires)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent)
           
 boolean I2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, int proto, int fromport, int toport)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, int proto, int fromport, int toport)
           
 boolean I2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expires)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expires)
          Unused? see MuxedImpl override
 boolean I2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expires, int proto, int fromPort, int toPort)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expire, int proto, int fromport, int toport)
           
 boolean I2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expires, int proto, int fromPort, int toPort, int flags)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set tagsSent, long expire, int proto, int fromport, int toport, int flags)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, Set tagsSent)
           
 void I2CPMessageProducer.sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, SessionTag tag, SessionKey key, Set tags, SessionKey newKey, long expires)
          Package up and send the payload to the router for delivery
 

Uses of SessionKey in net.i2p.client.streaming.impl
 

Methods in net.i2p.client.streaming.impl that return SessionKey
 SessionKey PacketLocal.getKeyUsed()
          Deprecated. should always return null
 

Methods in net.i2p.client.streaming.impl with parameters of type SessionKey
 void PacketLocal.setKeyUsed(SessionKey key)
          Deprecated. I2PSession throws out the tags
 

Uses of SessionKey in net.i2p.crypto
 

Methods in net.i2p.crypto that return SessionKey
 SessionKey SessionKeyManager.consumeTag(SessionTag tag)
          Determine if we have received a session key associated with the given session tag, and if so, discard it (but keep track for frequent dups) and return the decryption key it was received with (via tagsReceived(...)).
 SessionKey SessionKeyManager.createSession(PublicKey target)
          Generate a new session key and associate it with the specified target.
 SessionKey KeyGenerator.generateSessionKey()
          Generate a private 256 bit session key
 SessionKey KeyGenerator.generateSessionKey(byte[] salt, byte[] passphrase)
          PBE the passphrase with the salt.
 SessionKey SessionKeyManager.getCurrentKey(PublicKey target)
          Retrieve the session key currently associated with encryption to the target, or null if a new session key should be generated.
 SessionKey SessionKeyManager.getCurrentOrNewKey(PublicKey target)
          Retrieve the session key currently associated with encryption to the target.
 

Methods in net.i2p.crypto with parameters of type SessionKey
 Hash HMACGenerator.calculate(SessionKey key, byte[] data)
          Deprecated. unused (not even by Syndie)
 Hash HMAC256Generator.calculate(SessionKey key, byte[] data)
          Deprecated. unused (not even by Syndie)
 void HMACGenerator.calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
          Calculate the HMAC of the data with the given key
 void HMAC256Generator.calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
          Calculate the HMAC of the data with the given key.
 SessionTag SessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key)
          Retrieve the next available session tag for identifying the use of the given key when communicating with the target.
 void SessionKeyManager.createSession(PublicKey target, SessionKey key)
          Associate a new session key with the specified target.
 void CryptixAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
           
 void AESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
          Decrypt the data with the session key
 void CryptixAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
           
 void AESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
          Decrypt the data with the session key.
(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); }
 void CryptixAESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
          decrypt exactly 16 bytes of data with the session key provided
 void AESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
          This just copies payload to rv, see extension for the real thing.
 void CryptixAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
           
 void AESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
          Encrypt the payload with the session key
 void CryptixAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
           
 void AESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
          Encrypt the payload with the session key.
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, long paddedSize)
          Deprecated. unused
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, long paddedSize)
          Deprecated. unused
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, SessionTag currentTag, long paddedSize)
          Encrypt the data to the target using the given key and deliver the specified tags No new session key This is the one called from GarlicMessageBuilder and is the primary entry point.
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, SessionTag currentTag, SessionKey newKey, long paddedSize)
          Encrypt the unencrypted data to the target.
(package private)  byte[] ElGamalAESEngine.encryptAESBlock(byte[] data, SessionKey key, byte[] iv, Set<SessionTag> tagsForDelivery, SessionKey newKey, long paddedSize)
          For both scenarios, this method encrypts the AES area using the given key, iv and making sure the resulting data is at least as long as the paddedSize and also mod 16 bytes.
 void CryptixAESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
          encrypt exactly 16 bytes using the session key
 void AESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
          This just copies payload to out, see extension for the real thing.
 void SessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts)
           
 int SessionKeyManager.getAvailableTags(PublicKey target, SessionKey key)
          Determine (approximately) how many available session tags for the current target have been confirmed and are available
 long SessionKeyManager.getAvailableTimeLeft(PublicKey target, SessionKey key)
          Determine how long the available tags will be available for before expiring, in milliseconds
 byte[] AESEngine.safeDecrypt(byte[] payload, SessionKey sessionKey, byte[] iv)
          Deprecated. unused
 byte[] AESEngine.safeEncrypt(byte[] payload, SessionKey sessionKey, byte[] iv, int paddedSize)
          Deprecated. unused
 boolean SessionKeyManager.shouldSendTags(PublicKey target, SessionKey key)
           
 boolean SessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold)
           
 void SessionKeyManager.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts)
           
 TagSetHandle SessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags)
          Take note of the fact that the given sessionTags associated with the key for encryption to the target have definitely been received at the target (aka call this method after receiving an ack to a message delivering them)
 void SessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags)
          Accept the given tags and associate them with the given key for decryption, with the default expiration.
 void SessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire)
          Accept the given tags and associate them with the given key for decryption, with specified expiration.
 boolean HMACGenerator.verify(SessionKey key, byte[] curData, int curOffset, int curLength, byte[] origMAC, int origMACOffset, int origMACLength)
          Verify the MAC inline, reducing some unnecessary memory churn.
 boolean HMAC256Generator.verify(SessionKey key, byte[] curData, int curOffset, int curLength, byte[] origMAC, int origMACOffset, int origMACLength)
          Verify the MAC inline, reducing some unnecessary memory churn.
 

Uses of SessionKey in net.i2p.data
 

Fields in net.i2p.data declared as SessionKey
static SessionKey SessionKey.INVALID_KEY
           
 

Methods in net.i2p.data with parameters of type SessionKey
 void LeaseSet.encrypt(SessionKey key)
          Encrypt the gateway and tunnel ID of each lease, leaving the expire dates unchanged.
 

Uses of SessionKey in net.i2p.data.i2np
 

Methods in net.i2p.data.i2np that return SessionKey
 SessionKey DeliveryInstructions.getEncryptionKey()
          Deprecated. unused
 SessionKey DatabaseLookupMessage.getReplyKey()
          The included session key or null if unset
 SessionKey BuildRequestRecord.readIVKey()
          Tunnel IV encryption key that the current hop should use
 SessionKey BuildRequestRecord.readLayerKey()
          Tunnel layer encryption key that the current hop should use
 SessionKey BuildRequestRecord.readReplyKey()
          Session key that should be used to encrypt the reply
 

Methods in net.i2p.data.i2np with parameters of type SessionKey
static EncryptedBuildRecord BuildResponseRecord.create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyIV, long responseMessageId)
          Create a new encrypted response
 void DeliveryInstructions.setEncryptionKey(SessionKey key)
          Deprecated. unused
 void DatabaseLookupMessage.setReplySession(SessionKey encryptKey, SessionTag encryptTag)
          Only worthwhile if sending reply via tunnel
 

Constructors in net.i2p.data.i2np with parameters of type SessionKey
BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, Hash peer, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint)
          Populate this instance with data.
 

Uses of SessionKey in net.i2p.router
 

Methods in net.i2p.router that return SessionKey
 SessionKey PersistentKeyRing.put(Hash h, SessionKey sk)
           
 SessionKey PersistentKeyRing.remove(Hash h)
           
 

Methods in net.i2p.router with parameters of type SessionKey
 SessionKey PersistentKeyRing.put(Hash h, SessionKey sk)
           
 

Uses of SessionKey in net.i2p.router.crypto
 

Methods in net.i2p.router.crypto that return SessionKey
 SessionKey TransientSessionKeyManager.consumeTag(SessionTag tag)
          Determine if we have received a session key associated with the given session tag, and if so, discard it (but keep track for frequent dups) and return the decryption key it was received with (via tagsReceived(...)).
 SessionKey TransientSessionKeyManager.getCurrentKey(PublicKey target)
          Retrieve the session key currently associated with encryption to the target, or null if a new session key should be generated.
 SessionKey TransientSessionKeyManager.getCurrentOrNewKey(PublicKey target)
          Retrieve the session key currently associated with encryption to the target.
 

Methods in net.i2p.router.crypto with parameters of type SessionKey
 SessionTag TransientSessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key)
          Retrieve the next available session tag for identifying the use of the given key when communicating with the target.
 void TransientSessionKeyManager.createSession(PublicKey target, SessionKey key)
          Associate a new session key with the specified target.
 void TransientSessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts)
          Mark these tags as invalid, since the peer has failed to ack them in time.
 int TransientSessionKeyManager.getAvailableTags(PublicKey target, SessionKey key)
          Determine (approximately) how many available session tags for the current target have been confirmed and are available
 long TransientSessionKeyManager.getAvailableTimeLeft(PublicKey target, SessionKey key)
          Determine how long the available tags will be available for before expiring, in milliseconds
 boolean TransientSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold)
           
 void TransientSessionKeyManager.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts)
          Mark these tags as acked, start to use them (if we haven't already) If the set was previously failed, it will be added back in.
 TagSetHandle TransientSessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags)
          Take note of the fact that the given sessionTags associated with the key for encryption to the target have been sent.
 void TransientSessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags)
          Accept the given tags and associate them with the given key for decryption
 void TransientSessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire)
          Accept the given tags and associate them with the given key for decryption
 

Uses of SessionKey in net.i2p.router.message
 

Methods in net.i2p.router.message with parameters of type SessionKey
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm)
          called by netdb and above
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm)
          called by OCMJH
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
          used by TestJob and directly above and for encrypting DatabaseLookupMessages
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)
          Now unused, since we have to generate a reply token first in OCMOSJ but we don't know if tags are required yet.
(package private) static GarlicMessage OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, int tagsToSendOverride, int lowTagsOverride, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)
          Allow the app to specify the data clove directly, which enables OutboundClientMessage to resend the same payload (including expiration and unique id) in different garlics (down different tunnels) This is called from OCMOSJ
 

Uses of SessionKey in net.i2p.router.networkdb.kademlia
 

Fields in net.i2p.router.networkdb.kademlia declared as SessionKey
 SessionKey MessageWrapper.OneTimeSession.key
           
 

Methods in net.i2p.router.networkdb.kademlia with parameters of type SessionKey
static GarlicMessage MessageWrapper.wrap(RouterContext ctx, I2NPMessage m, SessionKey encryptKey, SessionTag encryptTag)
          Garlic wrap a message from nobody, destined for an unknown router, to hide the contents from the IBGW.
 

Constructors in net.i2p.router.networkdb.kademlia with parameters of type SessionKey
MessageWrapper.OneTimeSession(SessionKey key, SessionTag tag)
           
MessageWrapper.WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh)
           
 

Uses of SessionKey in net.i2p.router.transport.crypto
 

Methods in net.i2p.router.transport.crypto that return SessionKey
 SessionKey DHSessionKeyBuilder.getSessionKey()
          Retrieve the session key, calculating it if necessary (and if possible).
 

Uses of SessionKey in net.i2p.router.transport.ntcp
 

Methods in net.i2p.router.transport.ntcp with parameters of type SessionKey
 void NTCPConnection.finishInboundEstablishment(SessionKey key, long clockSkew, byte[] prevWriteEnd, byte[] prevReadEnd)
          We are Bob.
 void NTCPConnection.finishOutboundEstablishment(SessionKey key, long clockSkew, byte[] prevWriteEnd, byte[] prevReadEnd)
          We are Alice.
 

Uses of SessionKey in net.i2p.router.transport.udp
 

Methods in net.i2p.router.transport.udp that return SessionKey
 SessionKey PeerTestState.getAliceIntroKey()
           
 SessionKey PeerTestState.getBobCipherKey()
           
 SessionKey PeerTestState.getBobMACKey()
           
 SessionKey PeerTestState.getCharlieIntroKey()
           
 SessionKey OutboundEstablishState.getCipherKey()
           
 SessionKey InboundEstablishState.getCipherKey()
           
 SessionKey PeerState.getCurrentCipherKey()
          The AES key used to encrypt/decrypt packets, set only after the connection is established.
 SessionKey PeerState.getCurrentMACKey()
          The AES key used to verify packets, set only after the connection is established.
 SessionKey OutboundEstablishState.getIntroKey()
          Bob's introduction key, as published in the netdb
(package private)  SessionKey UDPTransport.getIntroKey()
          Introduction key that people should use to contact us
 SessionKey OutboundEstablishState.getMACKey()
           
 SessionKey InboundEstablishState.getMACKey()
           
 SessionKey PeerState.getNextCipherKey()
          The pending AES key for encrypting/decrypting packets if we are rekeying the connection, or null if we are not in the process of rekeying.
 SessionKey PeerState.getNextMACKey()
          The pending AES key for verifying packets if we are rekeying the connection, or null if we are not in the process of rekeying.
 

Methods in net.i2p.router.transport.udp with parameters of type SessionKey
 UDPPacket PacketBuilder.buildPeerTestFromAlice(InetAddress toIP, int toPort, SessionKey toIntroKey, long nonce, SessionKey aliceIntroKey)
          Build a packet as if we are Alice and we either want Bob to begin a peer test or Charlie to finish a peer test.
 UDPPacket PacketBuilder.buildPeerTestFromAlice(InetAddress toIP, int toPort, SessionKey toCipherKey, SessionKey toMACKey, long nonce, SessionKey aliceIntroKey)
          Build a packet as if we are Alice and we either want Bob to begin a peer test or Charlie to finish a peer test.
 UDPPacket PacketBuilder.buildPeerTestToAlice(InetAddress aliceIP, int alicePort, SessionKey aliceIntroKey, SessionKey charlieIntroKey, long nonce)
          Build a packet as if we are either Bob or Charlie and we are helping test Alice.
 UDPPacket PacketBuilder.buildPeerTestToBob(InetAddress bobIP, int bobPort, InetAddress aliceIP, int alicePort, SessionKey aliceIntroKey, long nonce, SessionKey bobCipherKey, SessionKey bobMACKey)
          Build a packet as if we are Charlie sending Bob a packet verifying that we will help test Alice.
 UDPPacket PacketBuilder.buildPeerTestToCharlie(InetAddress aliceIP, int alicePort, SessionKey aliceIntroKey, long nonce, InetAddress charlieIP, int charliePort, SessionKey charlieCipherKey, SessionKey charlieMACKey)
          Build a packet as if we are Bob sending Charlie a packet to help test Alice.
 List<UDPPacket> PacketBuilder.buildRelayRequest(UDPTransport transport, OutboundEstablishState state, SessionKey ourIntroKey)
          build intro packets for each of the published introducers
(package private)  UDPPacket PacketBuilder.buildRelayResponse(RemoteHostId alice, PeerState charlie, long nonce, SessionKey cipherKey, SessionKey macKey)
           
 UDPPacket PacketBuilder.buildSessionCreatedPacket(InboundEstablishState state, int externalPort, SessionKey ourIntroKey)
          Build a new SessionCreated packet for the given peer, encrypting it as necessary.
 void UDPPacket.decrypt(SessionKey cipherKey)
          Decrypt this valid packet, overwriting the _data buffer's payload with the decrypted data (leaving the MAC and IV unaltered)
 void PeerTestManager.runTest(InetAddress bobIP, int bobPort, SessionKey bobCipherKey, SessionKey bobMACKey)
          The next few methods are for when we are Alice
 void PeerTestState.setAliceIntroKey(SessionKey key)
           
 void PeerTestState.setBobCipherKey(SessionKey key)
           
 void PeerTestState.setBobMACKey(SessionKey key)
           
 void PeerTestState.setCharlieIntroKey(SessionKey key)
           
 void PeerState.setCurrentCipherKey(SessionKey key)
          The AES key used to encrypt/decrypt packets, set only after the connection is established.
 void PeerState.setCurrentMACKey(SessionKey key)
          The AES key used to verify packets, set only after the connection is established.
 void PeerState.setNextCipherKey(SessionKey key)
          Deprecated. unused
 void PeerState.setNextMACKey(SessionKey key)
          Deprecated. unused
 boolean UDPPacket.validate(SessionKey macKey)
          Validate the packet against the MAC specified, returning true if the MAC matches, false otherwise.
 

Constructors in net.i2p.router.transport.udp with parameters of type SessionKey
OutboundEstablishState(RouterContext ctx, RemoteHostId claimedAddress, RemoteHostId remoteHostId, RouterIdentity remotePeer, SessionKey introKey, UDPAddress addr, DHSessionKeyBuilder.Factory dh)
           
 

Uses of SessionKey in net.i2p.router.tunnel
 

Methods in net.i2p.router.tunnel that return SessionKey
 SessionKey HopConfig.getIVKey()
          what key should we use to encrypt the preIV before passing it on?
 SessionKey HopConfig.getLayerKey()
          what key should we use to encrypt the layer before passing it on?
 SessionKey HopConfig.getReplyKey()
          key to encrypt the reply sent for the new tunnel creation crypto
 

Methods in net.i2p.router.tunnel with parameters of type SessionKey
 void HopConfig.setIVKey(SessionKey key)
           
 void HopConfig.setLayerKey(SessionKey key)
           
 void HopConfig.setReplyKey(SessionKey key)