net.i2p.router.tunnel

## Class HopConfig

- java.lang.Object
- - net.i2p.router.tunnel.HopConfig

-     public class HopConfig
      extends Object

  Defines the general configuration for a hop in a tunnel.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `REPLY_IV_LENGTH` IV length for `getReplyIV()`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HopConfig()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `getCreation()` when was this tunnel created (in ms since the epoch)?
    `long` | `getExpiration()` when does this tunnel expire (in ms since the epoch)?
    `SessionKey` | `getIVKey()` what key should we use to encrypt the preIV before passing it on?
    `SessionKey` | `getLayerKey()` what key should we use to encrypt the layer before passing it on?
    `Map` | `getOptions()` what are the configuration options for this tunnel (if any).
    `long` | `getProcessedMessagesCount()`
    `Hash` | `getReceiveFrom()` what is the previous peer in the tunnel (if any)?
    `TunnelId` | `getReceiveTunnel()`
    `byte[]` | `getReceiveTunnelId()` what tunnel ID are we receiving on?
    `long` | `getRecentMessagesCount()`
    `long` | `getRecentSentMessagesCount()`
    `ByteArray` | `getReplyIV()` iv used to encrypt the reply sent for the new tunnel creation crypto
    `SessionKey` | `getReplyKey()` key to encrypt the reply sent for the new tunnel creation crypto
    `Hash` | `getSendTo()` what is the next peer in the tunnel (if any)?
    `TunnelId` | `getSendTunnel()`
    `byte[]` | `getSendTunnelId()` what is the next tunnel ID we are sending to?
    `long` | `getSentMessagesCount()`
    `void` | `incrementProcessedMessages()` "processed" is for incoming and "sent" is for outgoing (could be dropped in between)
    `void` | `incrementSentMessages()`
    `void` | `setCreation(long when)`
    `void` | `setExpiration(long when)`
    `void` | `setIVKey(SessionKey key)`
    `void` | `setLayerKey(SessionKey key)`
    `void` | `setOptions(Map options)`
    `void` | `setReceiveFrom(Hash from)`
    `void` | `setReceiveTunnelId(byte[] id)`
    `void` | `setReceiveTunnelId(TunnelId id)`
    `void` | `setReplyIV(ByteArray iv)`
    `void` | `setReplyKey(SessionKey key)`
    `void` | `setSendTo(Hash to)`
    `void` | `setSendTunnelId(byte[] id)`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### REPLY_IV_LENGTH

          public static final int REPLY_IV_LENGTH

      IV length for `getReplyIV()`
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### HopConfig

          public HopConfig()

  - ### Method Detail

    - #### getReceiveTunnelId

          public byte[] getReceiveTunnelId()

      what tunnel ID are we receiving on?

    - #### getReceiveTunnel

          public TunnelId getReceiveTunnel()

    - #### setReceiveTunnelId

          public void setReceiveTunnelId(byte[] id)

    - #### setReceiveTunnelId

          public void setReceiveTunnelId(TunnelId id)

    - #### getReceiveFrom

          public Hash getReceiveFrom()

      what is the previous peer in the tunnel (if any)?

    - #### setReceiveFrom

          public void setReceiveFrom(Hash from)

    - #### getSendTunnelId

          public byte[] getSendTunnelId()

      what is the next tunnel ID we are sending to?

    - #### getSendTunnel

          public TunnelId getSendTunnel()

    - #### setSendTunnelId

          public void setSendTunnelId(byte[] id)

    - #### getSendTo

          public Hash getSendTo()

      what is the next peer in the tunnel (if any)?

    - #### setSendTo

          public void setSendTo(Hash to)

    - #### getLayerKey

          public SessionKey getLayerKey()

      what key should we use to encrypt the layer before passing it on?

    - #### setLayerKey

          public void setLayerKey(SessionKey key)

    - #### getIVKey

          public SessionKey getIVKey()

      what key should we use to encrypt the preIV before passing it on?

    - #### setIVKey

          public void setIVKey(SessionKey key)

    - #### getReplyKey

          public SessionKey getReplyKey()

      key to encrypt the reply sent for the new tunnel creation crypto

    - #### setReplyKey

          public void setReplyKey(SessionKey key)

    - #### getReplyIV

          public ByteArray getReplyIV()

      iv used to encrypt the reply sent for the new tunnel creation crypto

    - #### setReplyIV

          public void setReplyIV(ByteArray iv)

    - #### getExpiration

          public long getExpiration()

      when does this tunnel expire (in ms since the epoch)?

    - #### setExpiration

          public void setExpiration(long when)

    - #### getCreation

          public long getCreation()

      when was this tunnel created (in ms since the epoch)?

    - #### setCreation

          public void setCreation(long when)

    - #### getOptions

          public Map getOptions()

      what are the configuration options for this tunnel (if any). keys to this map should be strings and values should be Objects of an option-specific type (e.g. "maxMessages" would be an Integer, "shouldPad" would be a Boolean, etc).

    - #### setOptions

          public void setOptions(Map options)

    - #### incrementProcessedMessages

          public void incrementProcessedMessages()

      "processed" is for incoming and "sent" is for outgoing (could be dropped in between)

    - #### getProcessedMessagesCount

          public long getProcessedMessagesCount()

    - #### getRecentMessagesCount

          public long getRecentMessagesCount()

    - #### incrementSentMessages

          public void incrementSentMessages()

    - #### getSentMessagesCount

          public long getSentMessagesCount()

    - #### getRecentSentMessagesCount

          public long getRecentSentMessagesCount()

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`