ECDH alternative implementation support
Add alternative implementation support for ECDH at the higher layer
diff --git a/ChangeLog b/ChangeLog
index 243bd6b..a2a2a36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -36,6 +36,10 @@
* Clarify ECDSA documentation and improve the sample code to avoid
misunderstandings and potentially dangerous use of the API. Pointed out
by Jean-Philippe Aumasson.
+ * Add support for alternative implementation for ECDH, controlled by new
+ configuration flag MBEDTLS_ECDH_ALT in config.h.
+ Alternative Ecdh is supported for implementation of `mbedtls_ecdh_gen_public`
+ and `mbedtls_ecdh_compute_shared`.
= mbed TLS 2.5.0 branch released 2017-05-17
diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h
index c4b8995..a29312a 100644
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -238,6 +238,7 @@
//#define MBEDTLS_BLOWFISH_ALT
//#define MBEDTLS_CAMELLIA_ALT
//#define MBEDTLS_DES_ALT
+//#define MBEDTLS_ECDH_ALT
//#define MBEDTLS_XTEA_ALT
//#define MBEDTLS_MD2_ALT
//#define MBEDTLS_MD4_ALT
diff --git a/library/ecdh.c b/library/ecdh.c
index c0a8147..b66cb58 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -38,6 +38,7 @@
#include <string.h>
+#if !defined(MBEDTLS_ECDH_ALT)
/*
* Generate public key: simple wrapper around mbedtls_ecp_gen_keypair
*/
@@ -81,7 +82,7 @@
return( ret );
}
-
+#endif /* MBEDTLS_ECDH_ALT */
/*
* Initialize context
*/
diff --git a/library/version_features.c b/library/version_features.c
index 9f97c7b..7b08f04 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -93,6 +93,9 @@
#if defined(MBEDTLS_DES_ALT)
"MBEDTLS_DES_ALT",
#endif /* MBEDTLS_DES_ALT */
+#if defined(MBEDTLS_ECDH_ALT)
+ "MBEDTLS_ECDH_ALT",
+#endif /* MBEDTLS_ECDH_ALT */
#if defined(MBEDTLS_XTEA_ALT)
"MBEDTLS_XTEA_ALT",
#endif /* MBEDTLS_XTEA_ALT */