Fix compilation issue weh self test defined

1. Surround the generate keys with
`#if ! defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST)`
to resolve build issue when `MBEDTLS_SELF_TEST` is defined for
alternative CMAC as well
2. Update ChangeLog
diff --git a/ChangeLog b/ChangeLog
index 13de867..5d43296 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 mbed TLS ChangeLog (Sorted per branch, date)
 
+= mbed TLS x.x.x branch released xxxx-xx-xx
+
+Changes
+   * Add hardware acceleration support for cmac, with the configuration definition
+     of `MBEDTLS_CMAC_ALT`. Submitted by stevew817
+
 = mbed TLS 2.4.2 branch released 2017-03-08
 
 Security
diff --git a/library/cmac.c b/library/cmac.c
index 5575d5c..d3581d5 100644
--- a/library/cmac.c
+++ b/library/cmac.c
@@ -65,7 +65,7 @@
 #endif /* MBEDTLS_SELF_TEST */
 #endif /* MBEDTLS_PLATFORM_C */
 
-#if !defined(MBEDTLS_CMAC_ALT)
+#if !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST)
 
 /* Implementation that should never be optimized out by the compiler */
 static void mbedtls_zeroize( void *v, size_t n ) {
@@ -166,7 +166,9 @@
 
     return( ret );
 }
+#endif /* !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST) */
 
+#if !defined(MBEDTLS_CMAC_ALT)
 static void cmac_xor_block( unsigned char *output, const unsigned char *input1,
                             const unsigned char *input2,
                             const size_t block_size )