Add _init() and _free() for cipher modules
diff --git a/include/polarssl/aes.h b/include/polarssl/aes.h
index 58b348e..2e9092f 100644
--- a/include/polarssl/aes.h
+++ b/include/polarssl/aes.h
@@ -74,6 +74,20 @@
 aes_context;
 
 /**
+ * \brief          Initialize AES context
+ *
+ * \param ctx      AES context to be initialized
+ */
+void aes_init( aes_context *ctx );
+
+/**
+ * \brief          Clear AES context
+ *
+ * \param ctx      AES context to be cleared
+ */
+void aes_free( aes_context *ctx );
+
+/**
  * \brief          AES key schedule (encryption)
  *
  * \param ctx      AES context to be initialized
diff --git a/include/polarssl/arc4.h b/include/polarssl/arc4.h
index c6c676b..555f54f 100644
--- a/include/polarssl/arc4.h
+++ b/include/polarssl/arc4.h
@@ -55,9 +55,23 @@
 arc4_context;
 
 /**
- * \brief          ARC4 key schedule
+ * \brief          Initialize ARC4 context
  *
  * \param ctx      ARC4 context to be initialized
+ */
+void arc4_init( arc4_context *ctx );
+
+/**
+ * \brief          Clear ARC4 context
+ *
+ * \param ctx      ARC4 context to be cleared
+ */
+void arc4_free( arc4_context *ctx );
+
+/**
+ * \brief          ARC4 key schedule
+ *
+ * \param ctx      ARC4 context to be setup
  * \param key      the secret key
  * \param keylen   length of the key, in bytes
  */
diff --git a/include/polarssl/blowfish.h b/include/polarssl/blowfish.h
index c9c8672..c652b46 100644
--- a/include/polarssl/blowfish.h
+++ b/include/polarssl/blowfish.h
@@ -71,6 +71,20 @@
 blowfish_context;
 
 /**
+ * \brief          Initialize Blowfish context
+ *
+ * \param ctx      Blowfish context to be initialized
+ */
+void blowfish_init( blowfish_context *ctx );
+
+/**
+ * \brief          Clear Blowfish context
+ *
+ * \param ctx      Blowfish context to be cleared
+ */
+void blowfish_free( blowfish_context *ctx );
+
+/**
  * \brief          Blowfish key schedule
  *
  * \param ctx      Blowfish context to be initialized
diff --git a/include/polarssl/camellia.h b/include/polarssl/camellia.h
index 34c1990..8488d1d 100644
--- a/include/polarssl/camellia.h
+++ b/include/polarssl/camellia.h
@@ -67,6 +67,20 @@
 camellia_context;
 
 /**
+ * \brief          Initialize CAMELLIA context
+ *
+ * \param ctx      CAMELLIA context to be initialized
+ */
+void camellia_init( camellia_context *ctx );
+
+/**
+ * \brief          Clear CAMELLIA context
+ *
+ * \param ctx      CAMELLIA context to be cleared
+ */
+void camellia_free( camellia_context *ctx );
+
+/**
  * \brief          CAMELLIA key schedule (encryption)
  *
  * \param ctx      CAMELLIA context to be initialized
diff --git a/include/polarssl/des.h b/include/polarssl/des.h
index 7872975..89bb394 100644
--- a/include/polarssl/des.h
+++ b/include/polarssl/des.h
@@ -78,6 +78,34 @@
 des3_context;
 
 /**
+ * \brief          Initialize DES context
+ *
+ * \param ctx      DES context to be initialized
+ */
+void des_init( des_context *ctx );
+
+/**
+ * \brief          Clear DES context
+ *
+ * \param ctx      DES context to be cleared
+ */
+void des_free( des_context *ctx );
+
+/**
+ * \brief          Initialize Triple-DES context
+ *
+ * \param ctx      DES3 context to be initialized
+ */
+void des3_init( des3_context *ctx );
+
+/**
+ * \brief          Clear Triple-DES context
+ *
+ * \param ctx      DES3 context to be cleared
+ */
+void des3_free( des3_context *ctx );
+
+/**
  * \brief          Set key parity on the given key to odd.
  *
  *                 DES keys are 56 bits long, but each byte is padded with
diff --git a/include/polarssl/xtea.h b/include/polarssl/xtea.h
index 07118d9..794c5ef 100644
--- a/include/polarssl/xtea.h
+++ b/include/polarssl/xtea.h
@@ -65,6 +65,20 @@
 xtea_context;
 
 /**
+ * \brief          Initialize XTEA context
+ *
+ * \param ctx      XTEA context to be initialized
+ */
+void xtea_init( xtea_context *ctx );
+
+/**
+ * \brief          Clear XTEA context
+ *
+ * \param ctx      XTEA context to be cleared
+ */
+void xtea_free( xtea_context *ctx );
+
+/**
  * \brief          XTEA key schedule
  *
  * \param ctx      XTEA context to be initialized