## Uses of Interface
net.i2p.router.crypto.ratchet.ReplyCallback

- Packages that use ReplyCallback
  Package | Description
  --- | ---
  net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol (I2P proposal 144), providing forward secrecy and enhanced security for I2P transport communications.
  net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications.

- - ### Uses of ReplyCallback in net.i2p.router.crypto.ratchet

    Methods in net.i2p.router.crypto.ratchet with parameters of type ReplyCallback
    Modifier and Type | Method and Description
    --- | ---
    `(package private) boolean` | RatchetSKM.`createSession(PublicKey target, Destination d, HandshakeState state, ReplyCallback callback)` Inbound or outbound.
    `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.
    `(package private) void` | RatchetSKM.`registerCallback(PublicKey target, int id, int n, ReplyCallback callback)`
    `(package private) boolean` | RatchetSKM.`updateSession(PublicKey target, HandshakeState oldState, HandshakeState state, ReplyCallback callback, SplitKeys split)` Inbound or outbound.

  - ### Uses of ReplyCallback in net.i2p.router.message

    Methods in net.i2p.router.message with parameters of type ReplyCallback
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static GarlicMessage` | GarlicMessageBuilder.`buildECIESMessage(RouterContext ctx, GarlicConfig config, Hash from, Destination to, SessionKeyManager skm, ReplyCallback callback)` ECIES_X25519 and PQ 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