Class GarlicConfig

  • Direct Known Subclasses:
    PayloadGarlicConfig

    class GarlicConfig
    extends Object
    Define the contents of a garlic chunk that contains 1 or more sub garlics. This is the top-level config for a Garlic Message that contains cloves. For cloves themselves, see PayloadGarlicConfig. Note that this is somewhat misnamed as it contains the actual cloves, not just the config.
    • Method Detail

      • setRecipient

        public void setRecipient​(RouterInfo info)
        Router to receive and process this clove - the router that will open the delivery instructions and decide what to do process it locally as an I2NPMessage, forward it as an I2NPMessage to a router, forward it as an I2NPMessage to a Destination, or forward it as an I2NPMessage to a tunnel. Used only if recipient public key is not set.
      • setRecipientPublicKey

        public void setRecipientPublicKey​(PublicKey recipientPublicKey)
        Public key of the router to receive and process this clove. This is useful for garlic routed messages encrypted to the router at the end of a tunnel, as their RouterIdentity is not known, but a PublicKey they handle is exposed via the LeaseSet
      • getRecipientPublicKey

        public PublicKey getRecipientPublicKey()
      • getCertificate

        public Certificate getCertificate()
        Certificate for the getRecipient() to pay for their processing
      • getId

        public long getId()
        Unique ID of the clove
      • getExpiration

        public long getExpiration()
        Expiration of the clove, after which it should be dropped
      • getDeliveryInstructions

        public DeliveryInstructions getDeliveryInstructions()
        Specify how the I2NPMessage in the clove should be handled.
      • addClove

        public void addClove​(GarlicConfig config)
        Add a clove to the current message - if any cloves are added, an I2NP message cannot be specified via setPayload. This means that the resulting GarlicClove represented by this GarlicConfig must be a GarlicMessage itself
      • getCloveCount

        public int getCloveCount()
      • clearCloves

        public void clearCloves()
      • getSubData

        protected String getSubData()