net.i2p.router.tunnel

## Class DummyValidator

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

- All Implemented Interfaces:
    IVValidator

      class DummyValidator
      extends Object
      implements IVValidator

  IV validator that accepts all initialization vectors without validation. Used for testing or scenarios where IV validation is not required. Implements IVValidator interface with permissive validation behavior.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static DummyValidator` | `getInstance()`
    `boolean` | `receiveIV(byte[] ivData, int ivOffset, byte[] payload, int payloadOffset)` receive the IV for the tunnel message, returning true if it is valid, or false if it has already been used (or is otherwise invalid).

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

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

- - ### Method Detail

    - #### getInstance

          public static DummyValidator getInstance()

    - #### receiveIV

          public boolean receiveIV(byte[] ivData,
                                   int ivOffset,
                                   byte[] payload,
                                   int payloadOffset)

      Description copied from interface: `IVValidator`
      receive the IV for the tunnel message, returning true if it is valid, or false if it has already been used (or is otherwise invalid). To prevent colluding attackers from successfully tagging the tunnel by switching the IV and the first block of the message, the validator should treat the XOR of the IV and the first block as the unique identifier, not the IV alone (since the tunnel is encrypted via AES/CBC). Thanks to dvorak for pointing out that tagging!
      Specified by:
        `receiveIV` in interface `IVValidator`
      Parameters:
        `ivData` - data will not be modified
        `payload` - will not be modified