SEC: add OFB mode to symmetric ciphers.
[bertos.git] / bertos / sec / cipher.c
index 7977cc4632b83460dbc1cb59da77e5c22dc50773..ba4ae981d6da8298447671086022d77927fac872 100644 (file)
@@ -85,3 +85,19 @@ void cipher_ctr_decrypt(BlockCipher *c, void *block)
 {
        cipher_ctr_encrypt(c, block);
 }
+
+static void ofb_step(BlockCipher *c)
+{
+       c->enc_block(c, c->buf);
+}
+
+void cipher_ofb_encrypt(BlockCipher *c, void *block)
+{
+       ofb_step(c);
+       xor_block(block, block, c->buf, c->block_len);
+}
+
+void cipher_ofb_decrypt(BlockCipher *c, void *block)
+{
+       cipher_ofb_encrypt(c, block);
+}