Added CMAC as proper low-level module and changed error returns
diff --git a/include/mbedtls/cmac.h b/include/mbedtls/cmac.h
index 08483f6..65017ef 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 5e549f6..703233a 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 71d4faa..8c38cf2 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 @@
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 cfcf07c..dd91151 100755
--- a/scripts/generate_errors.pl
+++ b/scripts/generate_errors.pl
@@ -33,7 +33,7 @@
"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" );