From 84a4c677412054dff4b8dd4ffc6e20641f86a287 Mon Sep 17 00:00:00 2001 From: Robert Cragie Date: Mon, 14 Dec 2015 17:13:29 +0000 Subject: [PATCH] Added CMAC as proper low-level module and changed error returns --- include/mbedtls/cmac.h | 4 ++-- include/mbedtls/error.h | 1 + library/error.c | 11 +++++++++++ scripts/generate_errors.pl | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/cmac.h b/include/mbedtls/cmac.h index 08483f685..65017ef5c 100644 --- a/include/mbedtls/cmac.h +++ b/include/mbedtls/cmac.h @@ -25,8 +25,8 @@ #include "cipher.h" -#define MBEDTLS_ERR_CMAC_BAD_INPUT -0x000D /**< Bad input parameters to function. */ -#define MBEDTLS_ERR_CMAC_VERIFY_FAILED -0x000F /**< Verification failed. */ +#define MBEDTLS_ERR_CMAC_BAD_INPUT -0x0011 /**< Bad input parameters to function. */ +#define MBEDTLS_ERR_CMAC_VERIFY_FAILED -0x0013 /**< Verification failed. */ #ifdef __cplusplus extern "C" { diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 5e549f6b6..703233ae9 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -66,6 +66,7 @@ * PBKDF2 1 0x007C-0x007C * HMAC_DRBG 4 0x0003-0x0009 * CCM 2 0x000D-0x000F + * CMAC 2 0x0011-0x0013 * * High-level module nr (3 bits - 0x0...-0x7...) * Name ID Nr of Errors diff --git a/library/error.c b/library/error.c index 71d4faa70..8c38cf294 100644 --- a/library/error.c +++ b/library/error.c @@ -69,6 +69,10 @@ #include "mbedtls/cipher.h" #endif +#if defined(MBEDTLS_CMAC_C) +#include "mbedtls/cmac.h" +#endif + #if defined(MBEDTLS_CTR_DRBG_C) #include "mbedtls/ctr_drbg.h" #endif @@ -578,6 +582,13 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen ) mbedtls_snprintf( buf, buflen, "CCM - Authenticated decryption failed" ); #endif /* MBEDTLS_CCM_C */ +#if defined(MBEDTLS_CMAC_C) + if( use_ret == -(MBEDTLS_ERR_CMAC_BAD_INPUT) ) + mbedtls_snprintf( buf, buflen, "CMAC - Bad input parameters to function" ); + if( use_ret == -(MBEDTLS_ERR_CMAC_VERIFY_FAILED) ) + mbedtls_snprintf( buf, buflen, "CMAC - Verification failed" ); +#endif /* MBEDTLS_CMAC_C */ + #if defined(MBEDTLS_CTR_DRBG_C) if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED) ) mbedtls_snprintf( buf, buflen, "CTR_DRBG - The entropy source failed" ); diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index cfcf07c8f..dd91151d6 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -33,7 +33,7 @@ my @low_level_modules = ( "AES", "ASN1", "BLOWFISH", "CAMELLIA", "BIGNUM", "BASE64", "XTEA", "PBKDF2", "OID", "PADLOCK", "DES", "NET", "CTR_DRBG", "ENTROPY", "HMAC_DRBG", "MD2", "MD4", "MD5", "RIPEMD160", - "SHA1", "SHA256", "SHA512", "GCM", "THREADING", "CCM" ); + "SHA1", "SHA256", "SHA512", "GCM", "THREADING", "CCM", "CMAC" ); my @high_level_modules = ( "PEM", "X509", "DHM", "RSA", "ECP", "MD", "CIPHER", "SSL", "PK", "PKCS12", "PKCS5" );