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;