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

- Packages that use CloveSet
  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 CloveSet in net.i2p.router.crypto.ratchet

    Methods in net.i2p.router.crypto.ratchet that return CloveSet
    Modifier and Type | Method and Description
    --- | ---
    `CloveSet` | ECIESAEADEngine.`decrypt(byte[] data, PrivateKey ecKey, PrivateKey pqKey, MuxedPQSKM keyManager)` Try to decrypt the message with one or both of the given private keys
    `CloveSet` | MuxedPQEngine.`decrypt(byte[] data, PrivateKey ecKey, PrivateKey pqKey, MuxedPQSKM keyManager)` Decrypt the message with the given private keys
    `CloveSet` | MuxedEngine.`decrypt(byte[] data, PrivateKey elgKey, PrivateKey ecKey, MuxedSKM keyManager)` Decrypt the message with the given private keys
    `CloveSet` | ECIESAEADEngine.`decrypt(byte[] data, PrivateKey elgKey, PrivateKey ecKey, MuxedSKM keyManager)` Try to decrypt the message with one or both of the given private keys
    `CloveSet` | ECIESAEADEngine.`decrypt(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager)` Decrypt the message using the given private key and using tags from the specified key manager.
    `(package private) CloveSet` | ECIESAEADEngine.`decryptFast(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager)` NSR/ES only.
    `(package private) CloveSet` | ECIESAEADEngine.`decryptSlow(byte[] data, PrivateKey targetPrivateKey, RatchetSKM keyManager)` NS only.

    Methods in net.i2p.router.crypto.ratchet with parameters of type CloveSet
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | ECIESAEADEngine.`encrypt(CloveSet cloves, PublicKey target)` Encrypt the data to the target using the given key from an anonymous source, for netdb lookups.
    `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.
    `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.

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

    Methods in net.i2p.router.message that return CloveSet
    Modifier and Type | Method and Description
    --- | ---
    `(package private) CloveSet` | GarlicMessageParser.`getGarlicCloves(GarlicMessage message, PrivateKey elgKey, PrivateKey ecKey, SessionKeyManager skm)` Supports both ELGAMAL_2048 and ECIES_X25519.
    `(package private) CloveSet` | GarlicMessageParser.`getGarlicCloves(GarlicMessage message, PrivateKey encryptionKey, SessionKeyManager skm)` Supports ELGAMAL_2048, ECIES_X25519, and PQ
    `CloveSet` | GarlicMessageParser.`readCloveSet(byte[] data, int offset)` ElGamal only