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)