Packages that use RatchetSKM
Package
Description
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
Uses of RatchetSKM in net.i2p.router.crypto.ratchet
Fields in net.i2p.router.crypto.ratchet declared as RatchetSKMModifier and TypeFieldDescriptionprivate final RatchetSKMMuxedPQSKM._ecThe ratcheted ECIES session keys.private final RatchetSKMMuxedSKM._ecThe ratcheted ECIES session keys.private final RatchetSKMMuxedPQSKM._pqThe ratcheted post-quantum session keys.private final RatchetSKMECIESAEADEngine.PLCallback.skmThe session key manager for the sender.Methods in net.i2p.router.crypto.ratchet that return RatchetSKMModifier and TypeMethodDescriptionMuxedPQSKM.getECSKM()The ECIES ratchet key manager combined into this hybrid.MuxedSKM.getECSKM()Return the ratchet key manager that handles ECIES-X25519 sessions.MuxedPQSKM.getPQSKM()The post-quantum ratchet key manager combined into this hybrid.Methods in net.i2p.router.crypto.ratchet with parameters of type RatchetSKMModifier and TypeMethodDescriptionECIESAEADEngine.decrypt(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) Decrypt the message using the given private key and using tags from the specified key manager.private CloveSetECIESAEADEngine.decryptExistingSession(byte[] tag, byte[] data, SessionKeyAndNonce key, PrivateKey _targetPrivateKey, RatchetSKM keyManager) Scenario 3: Existing Session Message.(package private) CloveSetECIESAEADEngine.decryptFast(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) NSR/ES only.private CloveSetECIESAEADEngine.decryptNewSession(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) Scenario 1: New Session Messageprivate CloveSetECIESAEADEngine.decryptNewSession_N(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) Scenario 1A: New Session Message Anonymous.private CloveSetECIESAEADEngine.decryptNewSessionReply(byte[] tag, byte[] data, HandshakeState oldState, RatchetSKM keyManager) Scenario 2: New Session Reply Message(package private) CloveSetECIESAEADEngine.decryptSlow(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) NS only.byte[]ECIESAEADEngine.encrypt(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) 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.private byte[]ECIESAEADEngine.encryptExistingSession(CloveSet cloves, PublicKey target, RatchetEntry re, ReplyCallback callback, RatchetSKM keyManager) Scenario 3: Existing Session Message.private byte[]ECIESAEADEngine.encryptNewSession(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) Scenario 1: New Session Messageprivate byte[]ECIESAEADEngine.encryptNewSessionReply(CloveSet cloves, PublicKey target, HandshakeState state, RatchetSessionTag currentTag, RatchetSKM keyManager, ReplyCallback callback) Scenario 2: New Session Reply Messageprivate voidECIESAEADEngine.setResponseTimer(PublicKey from, List<GarlicClove> cloveSet, RatchetSKM skm) Schedules the delayed reply to an NSR message.private voidECIESAEADEngine.setResponseTimerNS(PublicKey from, List<GarlicClove> cloveSet, RatchetSKM skm) Schedules the delayed reply to an NS message.private CloveSetECIESAEADEngine.x_decrypt(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) Decrypts a received message into cloves.private CloveSetECIESAEADEngine.x_decryptFast(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) NSR/ES only.private CloveSetECIESAEADEngine.x_decryptSlow(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) NS only.private byte[]ECIESAEADEngine.x_encrypt(CloveSet cloves, PublicKey target, Destination to, PrivateKey priv, RatchetSKM keyManager, ReplyCallback callback) Encrypt the cloves to the target, selecting New Session, New Session Reply, or Existing Session encryption as appropriate.private CloveSetECIESAEADEngine.xx_decryptFast(byte[] tag, RatchetSessionTag st, SessionKeyAndNonce key, byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager) NSR/ES only.Constructors in net.i2p.router.crypto.ratchet with parameters of type RatchetSKMModifierConstructorDescriptionMuxedPQSKM(RatchetSKM ec, RatchetSKM pq) Combines ECIES and PQ SKMs with adaptive decrypt ordering.MuxedSKM(TransientSessionKeyManager elg, RatchetSKM ec) Combines ElGamal and ECIES SKMs with adaptive decrypt ordering.PLCallback(RatchetSKM keyManager, PublicKey remoteKey) Callback for an ES payload, which unlike NS/NSR may carry an ACK to hand back to the ratchet session key manager.Uses of RatchetSKM in net.i2p.router.tunnel.pool
Methods in net.i2p.router.tunnel.pool that return RatchetSKMModifier and TypeMethodDescriptionprivate RatchetSKMTestJob.getRatchetKeyManager()Returns the ratchet session key manager for test tags.Uses of RatchetSKM in net.i2p.router.web.helpers
Methods in net.i2p.router.web.helpers with parameters of type RatchetSKMModifier and TypeMethodDescriptionprivate static voidClientSKMDebugHelper.appendRatchet(RouterContext ctx, StringBuilder sections, String title, RatchetSKM rskm) Appends one ratchet's debug rows under a title.