Uses of Class
net.i2p.data.SessionKey
-
Packages that use SessionKey Package Description 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.crypto.x25519 DH for X25519.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.crypto.ratchet Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).net.i2p.router.message Creates and parses garlic messages.net.i2p.router.networkdb.kademlia The network database, including implementation of floodfills.net.i2p.router.peermanager The peer manager logs information about the history and quality of network peers.net.i2p.router.transport.crypto DH key generation.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.net.i2p.router.tunnel.pool Tunnel creation, tunnel build message handling. -
-
Uses of SessionKey in net.i2p.client
Methods in net.i2p.client with parameters of type SessionKey Modifier and Type Method Description boolean
I2PSession. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> 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<SessionTag> 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<SessionTag> 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<SessionTag> 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<SessionTag> 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<SessionTag> 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 Modifier and Type Method Description protected boolean
I2PSessionImpl2. sendBestEffort(Destination dest, byte[] payload, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires)
void
I2CPMessageProducer. sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, SessionTag tag, SessionKey key, Set<SessionTag> tags, SessionKey newKey, long expires)
Package up and send the payload to the router for deliveryboolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent)
boolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, int proto, int fromport, int toport)
boolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires)
Unused? see MuxedImpl overrideboolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expire, int proto, int fromport, int toport)
boolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expire, int proto, int fromport, int toport, int flags)
boolean
I2PSessionImpl2. sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, Set<SessionTag> tagsSent)
boolean
I2PSessionMuxedImpl. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, int proto, int fromport, int toport)
boolean
I2PSessionMuxedImpl. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires)
boolean
I2PSessionMuxedImpl. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires, int proto, int fromPort, int toPort)
boolean
I2PSessionMuxedImpl. sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires, int proto, int fromPort, int toPort, int flags)
-
Uses of SessionKey in net.i2p.client.streaming.impl
Methods in net.i2p.client.streaming.impl that return SessionKey Modifier and Type Method Description SessionKey
PacketLocal. getKeyUsed()
Deprecated.should always return nullMethods in net.i2p.client.streaming.impl with parameters of type SessionKey Modifier and Type Method Description 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 Modifier and Type Method Description 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 keySessionKey
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 Modifier and Type Method Description 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.abstract void
HMACGenerator. calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
Calculate the HMAC of the data with the given keySessionTag
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
AESEngine. decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
Decrypt the data with the session keyvoid
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.void
CryptixAESEngine. decrypt(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 ivOffset, int length)
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. decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex)
decrypt exactly 16 bytes of data with the session key providedvoid
AESEngine. encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
Encrypt the payload with the session keyvoid
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.void
CryptixAESEngine. encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length)
void
CryptixAESEngine. encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length)
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
CryptixAESEngine. encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex)
encrypt exactly 16 bytes using the session keyvoid
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 availablelong
SessionKeyManager. getAvailableTimeLeft(PublicKey target, SessionKey key)
Determine how long the available tags will be available for before expiring, in millisecondsbyte[]
AESEngine. safeDecrypt(byte[] payload, SessionKey sessionKey, byte[] iv)
Deprecated.unusedbyte[]
AESEngine. safeEncrypt(byte[] payload, SessionKey sessionKey, byte[] iv, int paddedSize)
Deprecated.unusedboolean
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
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.abstract 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. -
Uses of SessionKey in net.i2p.crypto.x25519
Methods in net.i2p.crypto.x25519 that return SessionKey Modifier and Type Method Description static SessionKey
X25519DH. dh(PrivateKey priv, PublicKey pub)
DH -
Uses of SessionKey in net.i2p.data
Fields in net.i2p.data declared as SessionKey Modifier and Type Field Description static SessionKey
SessionKey. INVALID_KEY
A key with all zeroes in the dataMethods in net.i2p.data with parameters of type SessionKey Modifier and Type Method Description void
EncryptedLeaseSet. encrypt(SessionKey skey)
Throws IllegalStateException if not initialized.void
LeaseSet. encrypt(SessionKey key)
Encrypt the gateway and tunnel ID of each lease, leaving the expire dates unchanged.void
LeaseSet2. encrypt(SessionKey key)
-
Uses of SessionKey in net.i2p.data.i2np
Methods in net.i2p.data.i2np that return SessionKey Modifier and Type Method Description SessionKey
BuildRequestRecord. getChaChaReplyKey()
Valid after calling encryptECIESRecord() or after the decrypting constructor with an ECIES private key.SessionKey
DeliveryInstructions. getEncryptionKey()
Deprecated.unusedSessionKey
DatabaseLookupMessage. getReplyKey()
The included session key or null if unset.SessionKey
BuildRequestRecord. readIVKey()
Tunnel IV encryption key that the current hop should useSessionKey
BuildRequestRecord. readLayerKey()
Tunnel layer encryption key that the current hop should useSessionKey
BuildRequestRecord. readReplyKey()
AES Session key that should be used to encrypt the reply.Methods in net.i2p.data.i2np with parameters of type SessionKey Modifier and Type Method Description static EncryptedBuildRecord
BuildResponseRecord. create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyIV, long responseMessageId)
Create a new encrypted response.static EncryptedBuildRecord
BuildResponseRecord. create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options)
Create a new encrypted response (long record).static ShortEncryptedBuildRecord
BuildResponseRecord. createShort(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options, int slot)
Create a new encrypted response (short record).static boolean
BuildResponseRecord. decrypt(EncryptedBuildRecord rec, SessionKey key, byte[] ad)
static boolean
BuildResponseRecord. decrypt(EncryptedBuildRecord rec, SessionKey key, byte[] ad, int nonce)
void
DeliveryInstructions. setEncryptionKey(SessionKey key)
Deprecated.unusedvoid
DatabaseLookupMessage. setReplySession(SessionKey encryptKey, SessionTag encryptTag)
Only worthwhile if sending reply via tunnelvoid
DatabaseLookupMessage. setReplySession(SessionKey encryptKey, RatchetSessionTag encryptTag)
RatchetConstructors in net.i2p.data.i2np with parameters of type SessionKey Constructor Description BuildRequestRecord(I2PAppContext ctx, long receiveTunnelId, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint, Properties options)
Populate this instance with data.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 Modifier and Type Method Description SessionKey
TunnelPoolSettings. getRandomKey()
random key used for peer orderingSessionKey
PersistentKeyRing. put(Hash h, SessionKey sk)
SessionKey
PersistentKeyRing. remove(Object o)
Methods in net.i2p.router with parameters of type SessionKey Modifier and Type Method Description SessionKey
PersistentKeyRing. put(Hash h, SessionKey sk)
-
Uses of SessionKey in net.i2p.router.crypto
Methods in net.i2p.router.crypto that return SessionKey Modifier and Type Method Description 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 Modifier and Type Method Description 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.(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); }byte[]
ElGamalAESEngine. encrypt(byte[] data, PublicKey target, SessionKey key, long paddedSize)
Deprecated.unusedbyte[]
ElGamalAESEngine. encrypt(byte[] data, PublicKey target, SessionKey key, Set<SessionTag> tagsForDelivery, long paddedSize)
Deprecated.unusedbyte[]
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
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 availablelong
TransientSessionKeyManager. getAvailableTimeLeft(PublicKey target, SessionKey key)
Determine how long the available tags will be available for before expiring, in millisecondsboolean
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 decryptionvoid
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.crypto.ratchet
Subclasses of SessionKey in net.i2p.router.crypto.ratchet Modifier and Type Class Description (package private) class
SessionKeyAndNonce
A session key is 32 bytes of data.Fields in net.i2p.router.crypto.ratchet declared as SessionKey Modifier and Type Field Description protected SessionKey
RatchetTagSet. _key
SessionKey
SplitKeys. ck
SessionKey
SplitKeys. k_ab
SessionKey
SplitKeys. k_ba
Methods in net.i2p.router.crypto.ratchet that return SessionKey Modifier and Type Method Description SessionKey
MuxedSKM. consumeTag(SessionTag tag)
SessionKey
RatchetSKM. consumeTag(SessionTag tag)
SessionKey
MuxedSKM. createSession(PublicKey target)
ElG onlySessionKey
RatchetTagSet. getAssociatedKey()
The root key for the tag set.SessionKey
MuxedSKM. getCurrentKey(PublicKey target)
ElG onlySessionKey
RatchetSKM. getCurrentKey(PublicKey target)
SessionKey
MuxedSKM. getCurrentOrNewKey(PublicKey target)
ElG onlySessionKey
RatchetSKM. getCurrentOrNewKey(PublicKey target)
SessionKey
RatchetTagSet. getNextRootKey()
Root key for the next DH ratchet.Methods in net.i2p.router.crypto.ratchet with parameters of type SessionKey Modifier and Type Method Description SessionTag
MuxedSKM. consumeNextAvailableTag(PublicKey target, SessionKey key)
ElG onlySessionTag
RatchetSKM. consumeNextAvailableTag(PublicKey target, SessionKey key)
void
MuxedSKM. createSession(PublicKey target, SessionKey key)
ElG onlyvoid
RatchetSKM. createSession(PublicKey target, SessionKey key)
byte[]
ECIESAEADEngine. encrypt(CloveSet cloves, SessionKey key, RatchetSessionTag tag)
Create an Existing Session Message to an anonymous target using the given session key and tag, for netdb DSM/DSRM replies.void
MuxedSKM. failTags(PublicKey target, SessionKey key, TagSetHandle ts)
ElG onlyvoid
RatchetSKM. failTags(PublicKey target, SessionKey key, TagSetHandle ts)
int
MuxedSKM. getAvailableTags(PublicKey target, SessionKey key)
int
RatchetSKM. getAvailableTags(PublicKey target, SessionKey key)
Determine (approximately) how many available session tags for the current target have been confirmed and are availablelong
MuxedSKM. getAvailableTimeLeft(PublicKey target, SessionKey key)
long
RatchetSKM. getAvailableTimeLeft(PublicKey target, SessionKey key)
Determine how long the available tags will be available for before expiring, in millisecondsboolean
MuxedSKM. shouldSendTags(PublicKey target, SessionKey key)
ElG onlyboolean
MuxedSKM. shouldSendTags(PublicKey target, SessionKey key, int lowThreshold)
ElG onlyboolean
RatchetSKM. shouldSendTags(PublicKey target, SessionKey key, int lowThreshold)
void
MuxedSKM. tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts)
ElG onlyvoid
RatchetSKM. tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts)
TagSetHandle
MuxedSKM. tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags)
ElG onlyTagSetHandle
RatchetSKM. tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags)
void
MuxedSKM. tagsReceived(SessionKey key, Set<SessionTag> sessionTags)
ElG onlyvoid
MuxedSKM. tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire)
ElG onlyvoid
MuxedSKM. tagsReceived(SessionKey key, RatchetSessionTag tag, long expire)
EC only One time sessionvoid
RatchetSKM. tagsReceived(SessionKey key, Set<SessionTag> sessionTags)
void
RatchetSKM. tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire)
void
RatchetSKM. tagsReceived(SessionKey key, RatchetSessionTag tag, long expire)
One time sessionConstructors in net.i2p.router.crypto.ratchet with parameters of type SessionKey Constructor Description RatchetTagSet(HKDF hkdf, HandshakeState state, SessionKey rootKey, SessionKey data, long date)
Outbound NSR TagsetRatchetTagSet(HKDF hkdf, SessionKey rootKey, SessionKey data, long date, int tagsetid, int keyid)
Outbound ES TagsetRatchetTagSet(HKDF hkdf, SessionTagListener lsnr, HandshakeState state, SessionKey rootKey, SessionKey data, long date, int minSize, int maxSize)
Inbound NSR TagsetRatchetTagSet(HKDF hkdf, SessionTagListener lsnr, PublicKey remoteKey, SessionKey rootKey, SessionKey data, long date, int tagsetid, int keyid, int minSize, int maxSize)
Inbound ES TagsetRatchetTagSet(SessionTagListener lsnr, SessionKey rootKey, long date, long timeout)
For SingleTagSetSingleTagSet(SessionTagListener lsnr, SessionKey key, RatchetSessionTag tag, long date, long timeout)
For outbound Existing Session -
Uses of SessionKey in net.i2p.router.message
Methods in net.i2p.router.message with parameters of type SessionKey Modifier and Type Method Description static GarlicMessage
GarlicMessageBuilder. buildMessage(RouterContext ctx, GarlicConfig config, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)
ELGAMAL_2048 only.static GarlicMessage
GarlicMessageBuilder. buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm)
ELGAMAL_2048 only.static GarlicMessage
GarlicMessageBuilder. buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm)
ELGAMAL_2048 only.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.static GarlicMessage
GarlicMessageBuilder. buildMessage(RouterContext ctx, GarlicConfig config, SessionKey encryptKey, RatchetSessionTag encryptTag)
Ratchet only.(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, ReplyCallback callback)
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 Modifier and Type Field Description SessionKey
MessageWrapper.OneTimeSession. key
ElG or ratchetMethods in net.i2p.router.networkdb.kademlia with parameters of type SessionKey Modifier and Type Method Description 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.static GarlicMessage
MessageWrapper. wrap(RouterContext ctx, I2NPMessage m, SessionKey encryptKey, RatchetSessionTag 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 Constructor Description OneTimeSession(SessionKey key, SessionTag tag)
OneTimeSession(SessionKey key, RatchetSessionTag tag)
WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh)
-
Uses of SessionKey in net.i2p.router.peermanager
Methods in net.i2p.router.peermanager with parameters of type SessionKey Modifier and Type Method Description void
ProfileOrganizer. selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, SessionKey randomKey, ProfileOrganizer.Slice subTierMode)
Return a set of Hashes for peers that are both fast and reliable. -
Uses of SessionKey in net.i2p.router.transport.crypto
Methods in net.i2p.router.transport.crypto that return SessionKey Modifier and Type Method Description SessionKey
DHSessionKeyBuilder. getSessionKey()
Retrieve the session key, calculating it if necessary (and if possible). -
Uses of SessionKey in net.i2p.router.transport.udp
Methods in net.i2p.router.transport.udp that return SessionKey Modifier and Type Method Description SessionKey
PeerTestState. getAliceIntroKey()
SessionKey
PeerTestState. getBobCipherKey()
SessionKey
PeerTestState. getBobMACKey()
SessionKey
PeerTestState. getCharlieIntroKey()
SessionKey
InboundEstablishState. getCipherKey()
SessionKey
OutboundEstablishState. getCipherKey()
(package private) SessionKey
PeerState. getCurrentCipherKey()
The AES key used to encrypt/decrypt packets, set only after the connection is established.(package private) 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 usSessionKey
InboundEstablishState. getMACKey()
SessionKey
OutboundEstablishState. getMACKey()
(package private) 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.(package private) 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 Modifier and Type Method Description 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, EstablishmentManager emgr, 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
SSUHMACGenerator. calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
Calculate the HMAC of the data with the given keyvoid
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 Alicevoid
PeerTestState. setAliceIntroKey(SessionKey key)
void
PeerTestState. setBobCipherKey(SessionKey key)
void
PeerTestState. setBobMACKey(SessionKey key)
void
PeerTestState. setCharlieIntroKey(SessionKey key)
(package private) void
PeerState. setCurrentCipherKey(SessionKey key)
The AES key used to encrypt/decrypt packets, set only after the connection is established.(package private) void
PeerState. setCurrentMACKey(SessionKey key)
The AES key used to verify packets, set only after the connection is established.boolean
UDPPacket. validate(SessionKey macKey, HMACGenerator hmac)
Validate the packet against the MAC specified, returning true if the MAC matches, false otherwise.boolean
SSUHMACGenerator. verify(SessionKey key, byte[] curData, int curOffset, int curLength, byte[] origMAC, int origMACOffset, int origMACLength)
Verify the MAC inline, reducing some unnecessary memory churn.Constructors in net.i2p.router.transport.udp with parameters of type SessionKey Constructor Description OutboundEstablishState(RouterContext ctx, RemoteHostId claimedAddress, RemoteHostId remoteHostId, RouterIdentity remotePeer, boolean allowExtendedOptions, boolean needIntroduction, SessionKey introKey, UDPAddress addr, DHSessionKeyBuilder.Factory dh)
-
Uses of SessionKey in net.i2p.router.tunnel
Methods in net.i2p.router.tunnel that return SessionKey Modifier and Type Method Description SessionKey
TunnelCreatorConfig. getAESReplyKey(int hop)
Key to encrypt the reply sent for the tunnel creation crypto.SessionKey
TunnelCreatorConfig. getChaChaReplyKey(int hop)
Get ECIES reply keySessionKey
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?Methods in net.i2p.router.tunnel with parameters of type SessionKey Modifier and Type Method Description void
TunnelCreatorConfig. setAESReplyKeys(int hop, SessionKey key, byte[] iv)
Key and IV to encrypt the reply sent for the tunnel creation crypto.void
TunnelCreatorConfig. setChaChaReplyKeys(int hop, SessionKey key, byte[] ad)
Set ECIES reply key and IVvoid
HopConfig. setIVKey(SessionKey key)
void
HopConfig. setLayerKey(SessionKey key)
-
Uses of SessionKey in net.i2p.router.tunnel.pool
Methods in net.i2p.router.tunnel.pool with parameters of type SessionKey Modifier and Type Method Description protected void
TunnelPeerSelector. orderPeers(List<Hash> rv, SessionKey key)
see HashComparator
-