Uses of Class
net.i2p.data.SessionKey

Packages that use SessionKey
net.i2p.client Implements the base I2P SDK for developing applications that communicate through I2P. 
net.i2p.client.streaming Implements a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages. 
net.i2p.crypto   
net.i2p.data.i2np   
net.i2p.router.message   
net.i2p.router.transport.tcp Implements the transport for communicating with other routers via TCP/IP. 
net.i2p.router.tunnel   
net.i2p.router.tunnel.pool   
 

Uses of SessionKey in net.i2p.client
 

Methods in net.i2p.client that return SessionKey
 SessionKey MessageState.getKey()
           
 SessionKey MessageState.getNewKey()
           
 

Methods in net.i2p.client with parameters of type SessionKey
 void MessageState.setKey(SessionKey key)
           
 void MessageState.setNewKey(SessionKey key)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent)
           
 boolean I2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, java.util.Set tagsSent)
           
abstract  boolean I2PSessionImpl.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, java.util.Set tagsSent)
           
 boolean I2PSession.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.
 boolean I2PSession.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, java.util.Set tagsSent)
           
 void I2CPMessageProducer.sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, SessionTag tag, SessionKey key, java.util.Set tags, SessionKey newKey)
          Package up and send the payload to the router for delivery
 

Uses of SessionKey in net.i2p.client.streaming
 

Methods in net.i2p.client.streaming that return SessionKey
 SessionKey PacketLocal.getKeyUsed()
           
 

Methods in net.i2p.client.streaming with parameters of type SessionKey
 void PacketLocal.setKeyUsed(SessionKey key)
           
 boolean ConnectionManager.ping(Destination peer, long timeoutMs, boolean blocking, SessionKey keyToUse, java.util.Set tagsToSend, ConnectionManager.PingNotifier notifier)
           
 

Uses of SessionKey in net.i2p.crypto
 

Methods in net.i2p.crypto that return SessionKey
 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.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.OutboundSession.getCurrentKey()
           
 SessionKey TransientSessionKeyManager.TagSet.getAssociatedKey()
           
 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.createSession(PublicKey target)
          Generate a new session key and associate it with the specified target.
 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 KeyGenerator.generateSessionKey()
          Generate a private 256 bit session key
 SessionKey DHSessionKeyBuilder.getSessionKey()
          Retrieve the session key, calculating it if necessary (and if possible).
 

Methods in net.i2p.crypto with parameters of type SessionKey
 void ElGamalAESEngineTest.runBasicElGamalTest(SessionKey key, PublicKey pubKey, PrivateKey privKey)
           
 void TransientSessionKeyManager.createSession(PublicKey target, SessionKey key)
          Associate a new session key with the specified target.
 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.
 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
 void TransientSessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, java.util.Set 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 TransientSessionKeyManager.tagsReceived(SessionKey key, java.util.Set sessionTags)
          Accept the given tags and associate them with the given key for decryption
 void TransientSessionKeyManager.OutboundSession.setCurrentKey(SessionKey key)
           
 void SessionKeyManager.createSession(PublicKey target, SessionKey key)
          Associate a new session key with the specified target.
 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.
 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
 void SessionKeyManager.tagsDelivered(PublicKey target, SessionKey key, java.util.Set 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, java.util.Set sessionTags)
          Accept the given tags and associate them with the given key for decryption
 Hash HMACSHA256Generator.calculate(SessionKey key, byte[] data)
          This should calculate the HMAC/SHA256, but it DOESNT.
(package private)  byte[] ElGamalAESEngine.decryptNewSession(byte[] data, PrivateKey targetPrivateKey, java.util.Set foundTags, SessionKey usedKey, SessionKey foundKey)
          scenario 1: Begin with 222 bytes, ElG encrypted, containing: - 32 byte SessionKey - 32 byte pre-IV for the AES - 158 bytes of random padding Then encrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV, using the decryptAESBlock method & structure.
(package private)  byte[] ElGamalAESEngine.decryptExistingSession(byte[] data, SessionKey key, PrivateKey targetPrivateKey, java.util.Set foundTags, SessionKey usedKey, SessionKey foundKey)
          scenario 2: The data begins with 32 byte session tag, which also serves as the preIV.
(package private)  byte[] ElGamalAESEngine.decryptAESBlock(byte[] encrypted, SessionKey key, byte[] iv, byte[] sentTag, java.util.Set foundTags, SessionKey foundKey)
          Decrypt the AES data with the session key and IV.
(package private)  byte[] ElGamalAESEngine.decryptAESBlock(byte[] encrypted, int offset, int encryptedLen, SessionKey key, byte[] iv, byte[] sentTag, java.util.Set foundTags, SessionKey foundKey)
           
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, java.util.Set tagsForDelivery, SessionTag currentTag, SessionKey newKey, long paddedSize)
          Encrypt the unencrypted data to the target.
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, java.util.Set tagsForDelivery, SessionTag currentTag, long paddedSize)
          Encrypt the data to the target using the given key and deliver the specified tags
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, java.util.Set tagsForDelivery, long paddedSize)
          Encrypt the data to the target using the given key and deliver the specified tags
 byte[] ElGamalAESEngine.encrypt(byte[] data, PublicKey target, SessionKey key, long paddedSize)
          Encrypt the data to the target using the given key delivering no tags
(package private)  byte[] ElGamalAESEngine.encryptNewSession(byte[] data, PublicKey target, SessionKey key, java.util.Set tagsForDelivery, SessionKey newKey, long paddedSize)
          scenario 1: Begin with 222 bytes, ElG encrypted, containing: - 32 byte SessionKey - 32 byte pre-IV for the AES - 158 bytes of random padding Then encrypt with AES using that session key and the first 16 bytes of the SHA256 of the pre-IV: - 2 byte integer specifying the # of session tags - that many 32 byte session tags - 4 byte integer specifying data.length - SHA256 of data - 1 byte flag that, if == 1, is followed by a new SessionKey - data - random bytes, padding the total size to greater than paddedSize with a mod 16 = 0
(package private)  byte[] ElGamalAESEngine.encryptExistingSession(byte[] data, PublicKey target, SessionKey key, java.util.Set tagsForDelivery, SessionTag currentTag, SessionKey newKey, long paddedSize)
          scenario 2: Begin with 32 byte session tag, which also serves as the preIV.
(package private)  byte[] ElGamalAESEngine.encryptAESBlock(byte[] data, SessionKey key, byte[] iv, java.util.Set 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.
(package private)  byte[] ElGamalAESEngine.encryptAESBlock(byte[] data, SessionKey key, byte[] iv, java.util.Set tagsForDelivery, SessionKey newKey, long paddedSize, int prefixBytes)
           
 void CryptixAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
           
 void CryptixAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
           
 void CryptixAESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
           
 void CryptixAESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
          decrypt the data with the session key provided
 void AESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
          Encrypt the payload with the session key
 byte[] AESEngine.safeEncrypt(byte[] payload, SessionKey sessionKey, byte[] iv, int paddedSize)
           
 byte[] AESEngine.safeDecrypt(byte[] payload, SessionKey sessionKey, byte[] iv)
           
 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 AESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
           
 void AESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
          decrypt the data with the session key provided
 

Constructors in net.i2p.crypto with parameters of type SessionKey
TransientSessionKeyManager.OutboundSession(PublicKey target, SessionKey curKey, long established, long lastUsed, java.util.List tagSets)
           
TransientSessionKeyManager.TagSet(java.util.Set tags, SessionKey key, long date)
           
AESOutputStream(I2PAppContext context, java.io.OutputStream source, SessionKey key, byte[] iv)
           
AESInputStream(I2PAppContext context, java.io.InputStream source, SessionKey key, byte[] iv)
           
 

Uses of SessionKey in net.i2p.data.i2np
 

Methods in net.i2p.data.i2np that return SessionKey
 SessionKey TunnelSessionKey.getKey()
           
 SessionKey TunnelCreateMessage.getLayerKey()
           
 SessionKey TunnelCreateMessage.getIVKey()
           
 SessionKey TunnelCreateMessage.getReplyKey()
           
 SessionKey DeliveryInstructions.getEncryptionKey()
           
 

Methods in net.i2p.data.i2np with parameters of type SessionKey
 void TunnelSessionKey.setKey(SessionKey key)
           
 void TunnelCreateMessage.setLayerKey(SessionKey key)
           
 void TunnelCreateMessage.setIVKey(SessionKey key)
           
 void TunnelCreateMessage.setReplyKey(SessionKey key)
           
 void DeliveryInstructions.setEncryptionKey(SessionKey key)
           
 

Constructors in net.i2p.data.i2np with parameters of type SessionKey
TunnelSessionKey(SessionKey key)
           
 

Uses of SessionKey in net.i2p.router.message
 

Methods in net.i2p.router.message with parameters of type SessionKey
(package private) static GarlicMessage OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, Payload data, Hash from, Destination dest, SessionKey wrappedKey, java.util.Set wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)
          Build a garlic message that will be delivered to the router on which the target is located.
(package private) static GarlicMessage OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, SessionKey wrappedKey, java.util.Set 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)
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set wrappedTags)
           
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set wrappedTags, int numTagsToDeliver)
           
static GarlicMessage GarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, java.util.Set wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
           
 

Constructors in net.i2p.router.message with parameters of type SessionKey
SendGarlicJob(RouterContext ctx, GarlicConfig config, Job onSend, Job onSendFailed, ReplyJob onReply, Job onReplyFailed, long timeoutMs, int priority, MessageSelector replySelector, SessionKey wrappedKey, java.util.Set wrappedTags)
           
 

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

Methods in net.i2p.router.transport.tcp that return SessionKey
 SessionKey ConnectionTagManager.getKey(Hash peer)
           
 SessionKey ConnectionTagManager.getKey(ByteArray tag)
           
 

Methods in net.i2p.router.transport.tcp with parameters of type SessionKey
 void ConnectionTagManager.replaceTag(Hash peer, ByteArray newTag, SessionKey key)
          Update the tag associated with a peer, dropping the old one
 

Uses of SessionKey in net.i2p.router.tunnel
 

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

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

Uses of SessionKey in net.i2p.router.tunnel.pool
 

Constructors in net.i2p.router.tunnel.pool with parameters of type SessionKey
SendGarlicMessageJob(RouterContext ctx, I2NPMessage payload, RouterInfo target, MessageSelector selector, ReplyJob onReply, Job onTimeout, SessionKey sentKey, java.util.Set sentTags)