Add OFB block mode to AES-128/192/256

Adds a new configuration of MBEDTLS_CIPHER_MODE_OFB and OFB mode to AES.
diff --git a/library/aes.c b/library/aes.c
index da94b19..529f7f4 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -1065,7 +1065,36 @@
 
     return( 0 );
 }
-#endif /*MBEDTLS_CIPHER_MODE_CFB */
+#endif /* MBEDTLS_CIPHER_MODE_CFB */
+
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+/*
+ * AES-OFB (Output Feedback Mode) buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_ofb( mbedtls_aes_context *ctx,
+                            size_t length,
+                            size_t *iv_off,
+                            unsigned char iv[16],
+                            const unsigned char *input,
+                            unsigned char *output )
+{
+    size_t n = *iv_off;
+
+    while( length-- )
+    {
+        if( n == 0 )
+            mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, iv, iv );
+
+        *output++ =  *input++ ^ iv[n];
+
+        n = ( n + 1 ) & 0x0F;
+    }
+
+    *iv_off = n;
+
+    return( 0 );
+}
+#endif /* MBEDTLS_CIPHER_MODE_OFB */
 
 #if defined(MBEDTLS_CIPHER_MODE_CTR)
 /*
diff --git a/library/version_features.c b/library/version_features.c
index a452caf..218a892 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -246,6 +246,9 @@
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
     "MBEDTLS_CIPHER_MODE_CBC",
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+    "MBEDTLS_CIPHER_MODE_OFB",
+#endif /* MBEDTLS_CIPHER_MODE_OFB */
 #if defined(MBEDTLS_CIPHER_MODE_CFB)
     "MBEDTLS_CIPHER_MODE_CFB",
 #endif /* MBEDTLS_CIPHER_MODE_CFB */