Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/spongycastle/crypto/SkippingCipher.java')
-rw-r--r--core/src/main/java/org/spongycastle/crypto/SkippingCipher.java31
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();
+}