## Uses of Class
net.i2p.data.i2np.GarlicMessage

- Packages that use GarlicMessage
  Package | Description
  --- | ---
  net.i2p.router.message |
  net.i2p.router.networkdb.kademlia |

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

    Methods in net.i2p.router.message that return GarlicMessage
    Modifier and Type | Method and Description
    --- | ---
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, int numTagsToDeliver, int lowTagsThreshold, boolean forceElGamal, SessionKeyManager skm)` called by netdb
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)` used by TestJob and directly above
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey wrappedKey, Set<SessionTag> wrappedTags, SessionKeyManager skm)` called by OCMJH
    `(package private) static GarlicMessage` | OutboundClientMessageJobHelper.`createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, SessionKey wrappedKey, Set<SessionTag> 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) This is called from OCMOSJ
    `(package private) static GarlicMessage` | OutboundClientMessageJobHelper.`createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, Payload data, Hash from, Destination dest, TunnelInfo replyTunnel, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)` Build a garlic message that will be delivered to the router on which the target is located.

    Methods in net.i2p.router.message with parameters of type GarlicMessage
    Modifier and Type | Method and Description
    --- | ---
    `CloveSet` | GarlicMessageParser.`getGarlicCloves(GarlicMessage message, PrivateKey encryptionKey, SessionKeyManager skm)`
    `void` | GarlicMessageReceiver.`receive(GarlicMessage message)`

    Constructors in net.i2p.router.message with parameters of type GarlicMessage
    Constructor and Description
    `HandleGarlicMessageJob(RouterContext context, GarlicMessage msg, RouterIdentity from, Hash fromHash)`

  - ### Uses of GarlicMessage in net.i2p.router.networkdb.kademlia

    Methods in net.i2p.router.networkdb.kademlia that return GarlicMessage
    Modifier and Type | Method and Description
    --- | ---
    `(package private) GarlicMessage` | MessageWrapper.WrappedMessage.`getMessage()`

    Constructors in net.i2p.router.networkdb.kademlia with parameters of type GarlicMessage
    Constructor and Description
    `MessageWrapper.WrappedMessage(GarlicMessage msg, SessionKeyManager skm, PublicKey sentTo, SessionKey sentKey, TagSetHandle tsh)`