org.bouncycastle.crypto

## Interface SkippingCipher

- All Known Subinterfaces:
    CTRModeCipher, SkippingStreamCipher
  All Known Implementing Classes:
    ChaCha7539Engine, ChaChaEngine, Salsa20Engine, SICBlockCipher, XChaCha20Engine, 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 and 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.