diff options
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/SkippingCipher.java')
-rw-r--r-- | core/src/main/java/org/spongycastle/crypto/SkippingCipher.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/core/src/main/java/org/spongycastle/crypto/SkippingCipher.java b/core/src/main/java/org/spongycastle/crypto/SkippingCipher.java new file mode 100644 index 00000000..653182cd --- /dev/null +++ b/core/src/main/java/org/spongycastle/crypto/SkippingCipher.java @@ -0,0 +1,31 @@ +package org.spongycastle.crypto; + +/** + * Ciphers producing a key stream which can be reset to particular points in the stream implement this. + */ +public interface SkippingCipher +{ + /** + * Skip numberOfBytes forwards, or backwards. + * + * @param numberOfBytes the number of bytes to skip (positive forward, negative backwards). + * @return the number of bytes actually skipped. + * @throws java.lang.IllegalArgumentException if numberOfBytes is an invalid value. + */ + long skip(long numberOfBytes); + + /** + * Reset the cipher and then skip forward to a given position. + * + * @param position the number of bytes in to set the cipher state to. + * @return the byte position moved to. + */ + long seekTo(long position); + + /** + * Return the current "position" of the cipher + * + * @return the current byte position. + */ + long getPosition(); +} |