Package org.bouncycastle.crypto

## Interface SkippingCipher

- All Known Subinterfaces:
    `SkippingStreamCipher`
  All Known Implementing Classes:
    `ChaCha7539Engine`, `ChaChaEngine`, `Salsa20Engine`, `SICBlockCipher`, `XSalsa20Engine`

      public interface SkippingCipher

  Ciphers producing a key stream which can be reset to particular points in the stream implement this.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getPosition()` | Return the current "position" of the cipher
    `long` | `seekTo​(long position)` | Reset the cipher and then skip forward to a given position.
    `long` | `skip​(long numberOfBytes)` | Skip numberOfBytes forwards, or backwards.

- - ### Method Detail

    - #### skip

          long skip​(long numberOfBytes)

      Skip numberOfBytes forwards, or backwards.
      Parameters:
        `numberOfBytes` - the number of bytes to skip (positive forward, negative backwards).
      Returns:
        the number of bytes actually skipped.
      Throws:
        `java.lang.IllegalArgumentException` - if numberOfBytes is an invalid value.

    - #### seekTo

          long seekTo​(long position)

      Reset the cipher and then skip forward to a given position.
      Parameters:
        `position` - the number of bytes in to set the cipher state to.
      Returns:
        the byte position moved to.

    - #### getPosition

          long getPosition()

      Return the current "position" of the cipher
      Returns:
        the current byte position.