## net.i2p.router.tunnel
Class HopConfig

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

public class HopConfig
extends java.lang.Object

Defines the general configuration for a hop in a tunnel.

Field Summary
`static int` `REPLY_IV_LENGTH` IV length for `getReplyIV()`

Constructor Summary
`HopConfig()`

Method Summary
`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?
`java.util.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?
`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?
`void` `incrementProcessedMessages()` take note of a message being pumped through this tunnel
`void` `setExpiration(long when)`
`void` `setIVKey(SessionKey key)`
`void` `setLayerKey(SessionKey key)`
`void` `setOptions(java.util.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)`
`java.lang.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)

### getOptions

    public java.util.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(java.util.Map options)

### incrementProcessedMessages

    public void incrementProcessedMessages()

  take note of a message being pumped through this tunnel

### getProcessedMessagesCount

    public long getProcessedMessagesCount()

### toString

    public java.lang.String toString()