+/**
+ * Generate the crypted stream block in CTR mode for the current
+ * counter, and then bump it.
+ *
+ * This function is basically the core CTR operation, without the final
+ * XOR pass with the plaintext or ciphertext. For normal CTR usage,
+ * you never need to call it.
+ */
+void cipher_ctr_step(BlockCipher *c, void *block);
+
+
+/*********************************************************************************/
+/* OFB mode */
+/*********************************************************************************/
+
+/**
+ * Initialize OFB by setting the IV.
+ *
+ * \note the memory pointed by \a iv will be used and modified by the OFB
+ * functions. It is caller's responsibility to keep it available until there is
+ * no more OFB work to do.
+ */
+INLINE void cipher_ofb_begin(BlockCipher *c, void *iv)
+{
+ c->buf = iv;
+}
+
+/**
+ * Encrypt a block (in-place) using the current key in OFB mode.
+ */
+void cipher_ofb_encrypt(BlockCipher *c, void *block);
+
+/**
+ * Decrypt a block (in-place) using the current key in OFB mode.
+ */
+void cipher_ofb_decrypt(BlockCipher *c, void *block);
+
+