Make CBC an option, step 2: cipher layer
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index e5bde35..5789f77 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -36,6 +36,10 @@
 #define POLARSSL_CIPHER_MODE_AEAD
 #endif
 
+#if defined(POLARSSL_CIPHER_MODE_CBC)
+#define POLARSSL_CIPHER_MODE_WITH_PADDING
+#endif
+
 #include <string.h>
 
 #if defined(_MSC_VER) && !defined(inline)
@@ -462,6 +466,7 @@
 int cipher_setkey( cipher_context_t *ctx, const unsigned char *key, int key_length,
         const operation_t operation );
 
+#if defined(POLARSSL_CIPHER_MODE_WITH_PADDING)
 /**
  * \brief               Set padding mode, for cipher modes that use padding.
  *                      (Default: PKCS7 padding.)
@@ -475,6 +480,7 @@
  *                      does not support padding.
  */
 int cipher_set_padding_mode( cipher_context_t *ctx, cipher_padding_t mode );
+#endif /* POLARSSL_CIPHER_MODE_WITH_PADDING */
 
 /**
  * \brief               Set the initialization vector (IV) or nonce
diff --git a/include/polarssl/cipher_wrap.h b/include/polarssl/cipher_wrap.h
index 9c26a10..fcd226f 100644
--- a/include/polarssl/cipher_wrap.h
+++ b/include/polarssl/cipher_wrap.h
@@ -42,9 +42,11 @@
 extern const cipher_info_t aes_192_ecb_info;
 extern const cipher_info_t aes_256_ecb_info;
 
+#if defined(POLARSSL_CIPHER_MODE_CBC)
 extern const cipher_info_t aes_128_cbc_info;
 extern const cipher_info_t aes_192_cbc_info;
 extern const cipher_info_t aes_256_cbc_info;
+#endif /* POLARSSL_CIPHER_MODE_CBC */
 
 #if defined(POLARSSL_CIPHER_MODE_CFB)
 extern const cipher_info_t aes_128_cfb128_info;
@@ -72,9 +74,11 @@
 extern const cipher_info_t camellia_192_ecb_info;
 extern const cipher_info_t camellia_256_ecb_info;
 
+#if defined(POLARSSL_CIPHER_MODE_CBC)
 extern const cipher_info_t camellia_128_cbc_info;
 extern const cipher_info_t camellia_192_cbc_info;
 extern const cipher_info_t camellia_256_cbc_info;
+#endif /* POLARSSL_CIPHER_MODE_CBC */
 
 #if defined(POLARSSL_CIPHER_MODE_CFB)
 extern const cipher_info_t camellia_128_cfb128_info;
@@ -96,15 +100,19 @@
 extern const cipher_info_t des_ede_ecb_info;
 extern const cipher_info_t des_ede3_ecb_info;
 
+#if defined(POLARSSL_CIPHER_MODE_CBC)
 extern const cipher_info_t des_cbc_info;
 extern const cipher_info_t des_ede_cbc_info;
 extern const cipher_info_t des_ede3_cbc_info;
+#endif /* POLARSSL_CIPHER_MODE_CBC */
 
 #endif /* defined(POLARSSL_DES_C) */
 
 #if defined(POLARSSL_BLOWFISH_C)
 extern const cipher_info_t blowfish_ecb_info;
+#if defined(POLARSSL_CIPHER_MODE_CBC)
 extern const cipher_info_t blowfish_cbc_info;
+#endif /* POLARSSL_CIPHER_MODE_CBC */
 
 #if defined(POLARSSL_CIPHER_MODE_CFB)
 extern const cipher_info_t blowfish_cfb64_info;