## Uses of Class
net.i2p.router.message.GarlicConfig

- Packages that use GarlicConfig
  Package | Description
  --- | ---
  net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications.

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

    Subclasses of GarlicConfig in net.i2p.router.message
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PayloadGarlicConfig` Garlic config for a single clove, containing an I2NP message and no sub-cloves.

    Methods in net.i2p.router.message that return GarlicConfig
    Modifier and Type | Method and Description
    --- | ---
    `GarlicConfig` | PayloadGarlicConfig.`getClove(int index)`
    `GarlicConfig` | GarlicConfig.`getClove(int index)`

    Methods in net.i2p.router.message with parameters of type GarlicConfig
    Modifier and Type | Method and Description
    --- | ---
    `void` | PayloadGarlicConfig.`addClove(GarlicConfig config)`
    `void` | GarlicConfig.`addClove(GarlicConfig config)` Add a clove to the current message - if any cloves are added, an I2NP message cannot be specified via setPayload.
    `static GarlicMessage` | GarlicMessageBuilder.`buildECIESMessage(RouterContext ctx, GarlicConfig config)` Encrypt from an anonymous source.
    `(package private) static GarlicMessage` | GarlicMessageBuilder.`buildECIESMessage(RouterContext ctx, GarlicConfig config, Hash from, Destination to, SessionKeyManager skm, ReplyCallback callback)` ECIES_X25519 and PQ only.
    `static GarlicMessage` | GarlicMessageBuilder.`buildMessage(RouterContext ctx, GarlicConfig config, SessionKey encryptKey, RatchetSessionTag encryptTag)` Ratchet 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 Called by OCMJH
    `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, Set<SessionTag> wrappedTags, PublicKey target, SessionKey encryptKey, SessionTag encryptTag)` ELGAMAL_2048 only.

    Constructor parameters in net.i2p.router.message with type arguments of type GarlicConfig
    Constructor and Description
    `GarlicConfig(List<GarlicConfig> cloveConfigs, Certificate cert, long id, long expiration, DeliveryInstructions di)`