Uses of Class
net.i2p.data.SessionKey
Packages that use SessionKey
Package
Description
Interfaces and factories for
the base I2P SDK used to develop applications that communicate
through I2P.
Implements the base I2P SDK for developing applications that communicate
through I2P.
Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for
communicating over the IP-like (unreliable, unauthenticated, unordered) I2P
messages.
These classes provide a number of low-level cryptographic routines.
DH for X25519.
These classes define the common data structures used by the various
I2P protocols.
This package defines the low-level messages sent between routers,
called the Invisible Internet Network Protocol (I2NP).
The I2P router application handles the I2P network communication.
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
Creates and parses garlic messages.
The network database, including implementation of floodfills.
The peer manager logs information about the history and quality of network peers.
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
All the work of managing locally created and participating tunnels,
creating and handling tunnel messages, and their encryption.
Tunnel creation, tunnel build message handling.
-
Uses of SessionKey in net.i2p.client
Methods in net.i2p.client with parameters of type SessionKeyModifier and TypeMethodDescriptionbooleanI2PSession.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.booleanI2PSession.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.booleanI2PSession.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.booleanI2PSession.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.booleanI2PSession.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.booleanI2PSession.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 SessionKeyModifier and TypeMethodDescriptionprotected booleanI2PSessionImpl2.sendBestEffort(Destination dest, byte[] payload, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires) voidI2CPMessageProducer.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 deliverybooleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent) booleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, int proto, int fromport, int toport) booleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires) Unused? see MuxedImpl overridebooleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expire, int proto, int fromport, int toport) booleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expire, int proto, int fromport, int toport, int flags) booleanI2PSessionImpl2.sendMessage(Destination dest, byte[] payload, SessionKey keyUsed, Set<SessionTag> tagsSent) booleanI2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, int proto, int fromport, int toport) booleanI2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires) booleanI2PSessionMuxedImpl.sendMessage(Destination dest, byte[] payload, int offset, int size, SessionKey keyUsed, Set<SessionTag> tagsSent, long expires, int proto, int fromPort, int toPort) booleanI2PSessionMuxedImpl.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 SessionKeyMethods in net.i2p.client.streaming.impl with parameters of type SessionKeyModifier and TypeMethodDescriptionvoidPacketLocal.setKeyUsed(SessionKey key) Deprecated.I2PSession throws out the tags -
Uses of SessionKey in net.i2p.crypto
Methods in net.i2p.crypto that return SessionKeyModifier and TypeMethodDescriptionSessionKeyManager.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(...)).SessionKeyManager.createSession(PublicKey target) Generate a new session key and associate it with the specified target.KeyGenerator.generateSessionKey()Generate a private 256 bit session keyKeyGenerator.generateSessionKey(byte[] salt, byte[] passphrase) PBE the passphrase with the salt.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.SessionKeyManager.getCurrentOrNewKey(PublicKey target) Retrieve the session key currently associated with encryption to the target.Methods in net.i2p.crypto with parameters of type SessionKeyModifier and TypeMethodDescriptionvoidHMAC256Generator.calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset) Calculate the HMAC of the data with the given key.abstract voidHMACGenerator.calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset) Calculate the HMAC of the data with the given keySessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key) Retrieve the next available session tag for identifying the use of the given key when communicating with the target.voidSessionKeyManager.createSession(PublicKey target, SessionKey key) Associate a new session key with the specified target.voidAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length) Decrypt the data with the session keyvoidAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length) Decrypt the data with the session key.voidCryptixAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length) voidCryptixAESEngine.decrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length) voidAESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex) This just copies payload to rv, see extension for the real thing.final voidCryptixAESEngine.decryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] rv, int outIndex) decrypt exactly 16 bytes of data with the session key providedvoidAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length) Encrypt the payload with the session keyvoidAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length) Encrypt the payload with the session key.voidCryptixAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int length) voidCryptixAESEngine.encrypt(byte[] payload, int payloadIndex, byte[] out, int outIndex, SessionKey sessionKey, byte[] iv, int ivOffset, int length) voidAESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex) This just copies payload to out, see extension for the real thing.final voidCryptixAESEngine.encryptBlock(byte[] payload, int inIndex, SessionKey sessionKey, byte[] out, int outIndex) encrypt exactly 16 bytes using the session keyvoidSessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts) intSessionKeyManager.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are availablelongSessionKeyManager.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.unusedbooleanSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key) booleanSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) voidSessionKeyManager.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) 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)voidSessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags) Accept the given tags and associate them with the given key for decryption, with the default expiration.voidSessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire) Accept the given tags and associate them with the given key for decryption, with specified expiration.booleanHMAC256Generator.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 booleanHMACGenerator.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 SessionKeyModifier and TypeMethodDescriptionstatic SessionKeyX25519DH.dh(PrivateKey priv, PublicKey pub) DH -
Uses of SessionKey in net.i2p.data
Fields in net.i2p.data declared as SessionKeyModifier and TypeFieldDescriptionstatic final SessionKeySessionKey.INVALID_KEYA key with all zeroes in the dataMethods in net.i2p.data with parameters of type SessionKeyModifier and TypeMethodDescriptionvoidEncryptedLeaseSet.encrypt(SessionKey skey) Throws IllegalStateException if not initialized.voidLeaseSet.encrypt(SessionKey key) Encrypt the gateway and tunnel ID of each lease, leaving the expire dates unchanged.voidLeaseSet2.encrypt(SessionKey key) -
Uses of SessionKey in net.i2p.data.i2np
Methods in net.i2p.data.i2np that return SessionKeyModifier and TypeMethodDescriptionBuildRequestRecord.getChaChaReplyKey()Valid after calling encryptECIESRecord() or after the decrypting constructor with an ECIES private key.DeliveryInstructions.getEncryptionKey()Deprecated.unusedDatabaseLookupMessage.getReplyKey()The included session key or null if unset.BuildRequestRecord.readIVKey()Tunnel IV encryption key that the current hop should useBuildRequestRecord.readLayerKey()Tunnel layer encryption key that the current hop should useBuildRequestRecord.readReplyKey()AES Session key that should be used to encrypt the reply.Methods in net.i2p.data.i2np with parameters of type SessionKeyModifier and TypeMethodDescriptionstatic EncryptedBuildRecordBuildResponseRecord.create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyIV, long responseMessageId) Create a new encrypted response.static EncryptedBuildRecordBuildResponseRecord.create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options) Create a new encrypted response (long record).static ShortEncryptedBuildRecordBuildResponseRecord.createShort(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyAD, Properties options, int slot) Create a new encrypted response (short record).static booleanBuildResponseRecord.decrypt(EncryptedBuildRecord rec, SessionKey key, byte[] ad) static booleanBuildResponseRecord.decrypt(EncryptedBuildRecord rec, SessionKey key, byte[] ad, int nonce) voidDeliveryInstructions.setEncryptionKey(SessionKey key) Deprecated.unusedvoidDatabaseLookupMessage.setReplySession(SessionKey encryptKey, SessionTag encryptTag) Only worthwhile if sending reply via tunnelvoidDatabaseLookupMessage.setReplySession(SessionKey encryptKey, RatchetSessionTag encryptTag) RatchetConstructors in net.i2p.data.i2np with parameters of type SessionKeyModifierConstructorDescriptionBuildRequestRecord(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 SessionKeyModifier and TypeMethodDescriptionTunnelPoolSettings.getRandomKey()random key used for peer orderingPersistentKeyRing.put(Hash h, SessionKey sk) Methods in net.i2p.router with parameters of type SessionKey -
Uses of SessionKey in net.i2p.router.crypto
Methods in net.i2p.router.crypto that return SessionKeyModifier and TypeMethodDescriptionTransientSessionKeyManager.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(...)).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.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 SessionKeyModifier and TypeMethodDescriptionTransientSessionKeyManager.consumeNextAvailableTag(PublicKey target, SessionKey key) Retrieve the next available session tag for identifying the use of the given key when communicating with the target.voidTransientSessionKeyManager.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) final 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.voidTransientSessionKeyManager.failTags(PublicKey target, SessionKey key, TagSetHandle ts) Mark these tags as invalid, since the peer has failed to ack them in time.intTransientSessionKeyManager.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are availablelongTransientSessionKeyManager.getAvailableTimeLeft(PublicKey target, SessionKey key) Determine how long the available tags will be available for before expiring, in millisecondsbooleanTransientSessionKeyManager.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) voidTransientSessionKeyManager.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.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.voidTransientSessionKeyManager.tagsReceived(SessionKey key, Set<SessionTag> sessionTags) Accept the given tags and associate them with the given key for decryptionvoidTransientSessionKeyManager.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.ratchetModifier and TypeClassDescription(package private) classA session key is 32 bytes of data.Fields in net.i2p.router.crypto.ratchet declared as SessionKeyModifier and TypeFieldDescriptionprotected final SessionKeyRatchetTagSet._keyfinal SessionKeySplitKeys.ckfinal SessionKeySplitKeys.k_abfinal SessionKeySplitKeys.k_baMethods in net.i2p.router.crypto.ratchet that return SessionKeyModifier and TypeMethodDescriptionMuxedSKM.consumeTag(SessionTag tag) RatchetSKM.consumeTag(SessionTag tag) MuxedSKM.createSession(PublicKey target) ElG onlyRatchetTagSet.getAssociatedKey()The root key for the tag set.MuxedSKM.getCurrentKey(PublicKey target) ElG onlyRatchetSKM.getCurrentKey(PublicKey target) MuxedSKM.getCurrentOrNewKey(PublicKey target) ElG onlyRatchetSKM.getCurrentOrNewKey(PublicKey target) RatchetTagSet.getNextRootKey()Root key for the next DH ratchet.Methods in net.i2p.router.crypto.ratchet with parameters of type SessionKeyModifier and TypeMethodDescriptionMuxedSKM.consumeNextAvailableTag(PublicKey target, SessionKey key) ElG onlyRatchetSKM.consumeNextAvailableTag(PublicKey target, SessionKey key) voidMuxedSKM.createSession(PublicKey target, SessionKey key) ElG onlyvoidRatchetSKM.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.voidMuxedSKM.failTags(PublicKey target, SessionKey key, TagSetHandle ts) ElG onlyvoidRatchetSKM.failTags(PublicKey target, SessionKey key, TagSetHandle ts) intMuxedSKM.getAvailableTags(PublicKey target, SessionKey key) intRatchetSKM.getAvailableTags(PublicKey target, SessionKey key) Determine (approximately) how many available session tags for the current target have been confirmed and are availablelongMuxedSKM.getAvailableTimeLeft(PublicKey target, SessionKey key) longRatchetSKM.getAvailableTimeLeft(PublicKey target, SessionKey key) Determine how long the available tags will be available for before expiring, in millisecondsbooleanMuxedSKM.shouldSendTags(PublicKey target, SessionKey key) ElG onlybooleanMuxedSKM.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) ElG onlybooleanRatchetSKM.shouldSendTags(PublicKey target, SessionKey key, int lowThreshold) voidMuxedSKM.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) ElG onlyvoidRatchetSKM.tagsAcked(PublicKey target, SessionKey key, TagSetHandle ts) MuxedSKM.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) ElG onlyRatchetSKM.tagsDelivered(PublicKey target, SessionKey key, Set<SessionTag> sessionTags) voidMuxedSKM.tagsReceived(SessionKey key, Set<SessionTag> sessionTags) ElG onlyvoidMuxedSKM.tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire) ElG onlyvoidMuxedSKM.tagsReceived(SessionKey key, RatchetSessionTag tag, long expire) EC only One time sessionvoidRatchetSKM.tagsReceived(SessionKey key, Set<SessionTag> sessionTags) voidRatchetSKM.tagsReceived(SessionKey key, Set<SessionTag> sessionTags, long expire) voidRatchetSKM.tagsReceived(SessionKey key, RatchetSessionTag tag, long expire) One time sessionConstructors in net.i2p.router.crypto.ratchet with parameters of type SessionKeyModifierConstructorDescriptionRatchetTagSet(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 TagsetprotectedRatchetTagSet(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 SessionKeyModifier and TypeMethodDescriptionstatic GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag) ELGAMAL_2048 only.static GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, SessionKeyManager skm) ELGAMAL_2048 only.static GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, SessionKeyManager skm) ELGAMAL_2048 only.static GarlicMessageGarlicMessageBuilder.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 GarlicMessageGarlicMessageBuilder.buildMessage(RouterContext ctx, GarlicConfig config, SessionKey encryptKey, RatchetSessionTag encryptTag) Ratchet only.(package private) static GarlicMessageOutboundClientMessageJobHelper.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 SessionKeyModifier and TypeFieldDescriptionfinal SessionKeyMessageWrapper.OneTimeSession.keyElG or ratchetMethods in net.i2p.router.networkdb.kademlia with parameters of type SessionKeyModifier and TypeMethodDescriptionstatic GarlicMessageMessageWrapper.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 GarlicMessageMessageWrapper.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 SessionKeyModifierConstructorDescriptionOneTimeSession(SessionKey key, SessionTag tag) OneTimeSession(SessionKey key, RatchetSessionTag tag) (package private)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 SessionKeyModifier and TypeMethodDescriptionvoidProfileOrganizer.selectFastPeers(int howMany, Set<Hash> exclude, Set<Hash> matches, SessionKey randomKey, ProfileOrganizer.Slice subTierMode, int mask, MaskedIPSet ipSet) Return a set of Hashes for peers that are both fast and reliable. -
Uses of SessionKey in net.i2p.router.transport.udp
Methods in net.i2p.router.transport.udp that return SessionKeyModifier and TypeMethodDescriptionPeerTestState.getAliceCipherKey()PeerTestState.getAliceIntroKey()PeerTestState.getAliceMACKey()PeerTestState.getCharlieIntroKey()OutboundEstablishState.getIntroKey()Bob's introduction key, as published in the netdb(package private) static SessionKeyPeerTestManager.getIntroKey(RouterAddress ra) Get an intro key out of an address.(package private) SessionKeyUDPTransport.getIntroKey()Introduction key that people should use to contact us, or null if SSU1 disabled.Methods in net.i2p.router.transport.udp with parameters of type SessionKeyModifier and TypeMethodDescriptionPacketBuilder2.buildHolePunch(InetAddress to, int port, SessionKey introKey, long sendID, long rcvID, byte[] signedData) Out-of-session, containing a RelayResponse block.PacketBuilder2.buildPeerTestFromAlice(InetAddress toIP, int toPort, SessionKey introKey, long sendID, long rcvID, byte[] signedData) Build a packet as Alice to Charlie.PacketBuilder2.buildPeerTestToAlice(InetAddress aliceIP, int alicePort, SessionKey introKey, boolean firstSend, long sendID, long rcvID, byte[] signedData) Build a packet as Charlie to Alice.voidPeerTestState.setAliceIntroKey(SessionKey key) voidPeerTestState.setAliceKeys(SessionKey ck, SessionKey mk) voidPeerTestState.setCharlieIntroKey(SessionKey key) Constructors in net.i2p.router.transport.udp with parameters of type SessionKeyModifierConstructorDescriptionprotectedOutboundEstablishState(RouterContext ctx, RemoteHostId claimedAddress, RemoteHostId remoteHostId, RouterIdentity remotePeer, boolean needIntroduction, SessionKey introKey, UDPAddress addr) For SSU2OutboundEstablishState2(RouterContext ctx, UDPTransport transport, RemoteHostId claimedAddress, RemoteHostId remoteHostId, RouterIdentity remotePeer, boolean needIntroduction, SessionKey introKey, RouterAddress ra, UDPAddress addr) Prepare to start a new handshake with the given peer. -
Uses of SessionKey in net.i2p.router.tunnel
Methods in net.i2p.router.tunnel that return SessionKeyModifier and TypeMethodDescriptionTunnelCreatorConfig.getAESReplyKey(int hop) Key to encrypt the reply sent for the tunnel creation crypto.TunnelCreatorConfig.getChaChaReplyKey(int hop) Get ECIES reply keyHopConfig.getIVKey()what key should we use to encrypt the preIV before passing it on?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 SessionKeyModifier and TypeMethodDescriptionvoidTunnelCreatorConfig.setAESReplyKeys(int hop, SessionKey key, byte[] iv) Key and IV to encrypt the reply sent for the tunnel creation crypto.voidTunnelCreatorConfig.setChaChaReplyKeys(int hop, SessionKey key, byte[] ad) Set ECIES reply key and IVvoidHopConfig.setIVKey(SessionKey key) voidHopConfig.setLayerKey(SessionKey key) -
Uses of SessionKey in net.i2p.router.tunnel.pool
Methods in net.i2p.router.tunnel.pool with parameters of type SessionKeyModifier and TypeMethodDescriptionprotected voidTunnelPeerSelector.orderPeers(List<Hash> rv, SessionKey key) see HashComparator