Move `MBEDTLS_ERR_ADD` macro and functions to `error.*`
`error.c` and error.h are the more logical place to keep this code and it
prevents issues with building `common.c` and conflicts with other projects
that use mbedtls (such as mbedOS).
`error.c` has been automatically generated by first adding the code to
`error.fmt` and then running `./scripts/generate_errors.pl`.
Also add parenthesis to the addition in `MBEDTLS_ERR_ADD`.
Signed-off-by: Chris Jones <christopher.jones@arm.com>
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index e25fe57..220fbf9 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -27,7 +27,6 @@
cipher.c
cipher_wrap.c
cmac.c
- common.c
ctr_drbg.c
des.c
dhm.c
diff --git a/library/Makefile b/library/Makefile
index 6611016..13b0b29 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -84,7 +84,6 @@
cipher.o \
cipher_wrap.o \
cmac.o \
- common.o \
ctr_drbg.o \
des.o \
dhm.o \
diff --git a/library/common.c b/library/common.c
deleted file mode 100644
index 4273600..0000000
--- a/library/common.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Internal invasive testing helper functions
- *
- * Copyright The Mbed TLS Contributors
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "common.h"
-
-#include <stddef.h>
-
-#if defined(MBEDTLS_TEST_HOOKS)
-static void (*err_add_hook)( int, int, const char *, int );
-void mbedtls_set_err_add_hook(void *hook)
-{
- err_add_hook = hook;
-}
-int mbedtls_err_add( int high, int low, const char *file, int line )
-{
- if( err_add_hook != NULL )
- (*err_add_hook)( high, low, file, line );
- return ( high + low );
-}
-#endif
diff --git a/library/common.h b/library/common.h
index a9b6187..5845766 100644
--- a/library/common.h
+++ b/library/common.h
@@ -29,7 +29,6 @@
#include "mbedtls/config.h"
#endif
-#if defined(MBEDTLS_TEST_HOOKS)
/** Helper to define a function as static except when building invasive tests.
*
* If a function is only used inside its own source file and should be
@@ -45,31 +44,10 @@
* #endif
* ```
*/
+#if defined(MBEDTLS_TEST_HOOKS)
#define MBEDTLS_STATIC_TESTABLE
-
-/** Helper macro and function to combine a high and low level error code.
- *
- * This function uses a hook (`mbedtls_test_err_add_hook`) to allow invasive
- * testing of its inputs. This is used in the test infrastructure to report
- * on errors when combining two error codes of the same level (e.g: two high
- * or two low level errors).
- *
- * To set a hook use
- * ```
- * mbedtls_set_err_add_hook(&mbedtls_check_foo);
- * ```
- */
-void mbedtls_set_err_add_hook( void *hook );
-int mbedtls_err_add( int high, int low, const char *file, int line );
-#define MBEDTLS_ERR_ADD( high, low ) \
- ( mbedtls_err_add( high, low, __FILE__, __LINE__ ) )
-
#else
#define MBEDTLS_STATIC_TESTABLE static
-
-#define MBEDTLS_ERR_ADD( high, low ) \
- ( high + low )
-
-#endif /* MBEDTLS_TEST_HOOKS */
+#endif
#endif /* MBEDTLS_LIBRARY_COMMON_H */
diff --git a/library/error.c b/library/error.c
index 901a369..4e279b0 100644
--- a/library/error.c
+++ b/library/error.c
@@ -893,6 +893,22 @@
return( NULL );
}
+#if defined(MBEDTLS_TEST_HOOKS)
+static void (*err_add_hook)( int, int, const char *, int );
+
+void mbedtls_set_err_add_hook(void *hook)
+{
+ err_add_hook = hook;
+}
+
+int mbedtls_err_add( int high, int low, const char *file, int line )
+{
+ if( err_add_hook != NULL )
+ (*err_add_hook)( high, low, file, line );
+ return ( high + low );
+}
+#endif /* MBEDTLS_TEST_HOOKS */
+
void mbedtls_strerror( int ret, char *buf, size_t buflen )
{
size_t len;