From 1a45d91cf2973be8083e0405caff7fb196cbbea7 Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Wed, 14 Aug 2013 12:04:26 +0200
Subject: [PATCH] Restructured cipher_set_padding_mode() to use switch
statement
---
include/polarssl/cipher.h | 6 ++++--
library/cipher.c | 34 +++++++++++++++-------------------
2 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index 7ee17ab84..13d714be9 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -417,8 +417,10 @@ int cipher_setkey( cipher_context_t *ctx, const unsigned char *key, int key_leng
* \param ctx generic cipher context
* \param mode padding mode
*
- * \returns 0 on success, POLARSSL_ERR_CIPHER_BAD_INPUT_DATA
- * if parameters verification fails.
+ * \returns 0 on success, POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE
+ * if selected padding mode is not supported, or
+ * POLARSSL_ERR_CIPHER_BAD_INPUT_DATA if the cipher mode
+ * does not support padding.
*/
int cipher_set_padding_mode( cipher_context_t *ctx, cipher_padding_t mode );
diff --git a/library/cipher.c b/library/cipher.c
index 70eef694c..f023364d5 100644
--- a/library/cipher.c
+++ b/library/cipher.c
@@ -747,42 +747,38 @@ int cipher_set_padding_mode( cipher_context_t *ctx, cipher_padding_t mode )
return POLARSSL_ERR_CIPHER_BAD_INPUT_DATA;
}
- if( POLARSSL_PADDING_PKCS7 == mode )
+ switch( mode )
{
+ case POLARSSL_PADDING_PKCS7:
ctx->add_padding = add_pkcs_padding;
ctx->get_padding = get_pkcs_padding;
- return 0;
- }
+ break;
- if( POLARSSL_PADDING_ONE_AND_ZEROS == mode )
- {
+ case POLARSSL_PADDING_ONE_AND_ZEROS:
ctx->add_padding = add_one_and_zeros_padding;
ctx->get_padding = get_one_and_zeros_padding;
- return 0;
- }
+ break;
- if( POLARSSL_PADDING_ZEROS_AND_LEN == mode )
- {
+ case POLARSSL_PADDING_ZEROS_AND_LEN:
ctx->add_padding = add_zeros_and_len_padding;
ctx->get_padding = get_zeros_and_len_padding;
- return 0;
- }
+ break;
- if( POLARSSL_PADDING_ZEROS == mode )
- {
+ case POLARSSL_PADDING_ZEROS:
ctx->add_padding = add_zeros_padding;
ctx->get_padding = get_zeros_padding;
- return 0;
- }
+ break;
- if( POLARSSL_PADDING_NONE == mode )
- {
+ case POLARSSL_PADDING_NONE:
ctx->add_padding = NULL;
ctx->get_padding = get_no_padding;
- return 0;
+ break;
+
+ default:
+ return POLARSSL_ERR_CIPHER_BAD_INPUT_DATA;
}
- return POLARSSL_ERR_CIPHER_BAD_INPUT_DATA;
+ return 0;
}
#if defined(POLARSSL_SELF_TEST)