diff --git a/Android.mk b/Android.mk
index eea55bd46..d7bcfac11 100644
--- a/Android.mk
+++ b/Android.mk
@@ -193,6 +193,7 @@ LOCAL_SRC_FILES := \
third_party/mbedtls/repo/library/md_wrap.c \
third_party/mbedtls/repo/library/memory_buffer_alloc.c \
third_party/mbedtls/repo/library/platform.c \
+ third_party/mbedtls/repo/library/platform_util.c \
third_party/mbedtls/repo/library/sha256.c \
third_party/mbedtls/repo/library/bignum.c \
third_party/mbedtls/repo/library/ccm.c \
diff --git a/etc/visual-studio/mbedtls.vcxproj b/etc/visual-studio/mbedtls.vcxproj
index 76e9c6bb8..8b077cfd2 100644
--- a/etc/visual-studio/mbedtls.vcxproj
+++ b/etc/visual-studio/mbedtls.vcxproj
@@ -71,6 +71,7 @@
+
diff --git a/etc/visual-studio/mbedtls.vcxproj.filters b/etc/visual-studio/mbedtls.vcxproj.filters
index 4c41a0c12..c03e1ab5d 100644
--- a/etc/visual-studio/mbedtls.vcxproj.filters
+++ b/etc/visual-studio/mbedtls.vcxproj.filters
@@ -64,6 +64,9 @@
Source Files\repo\library
+
+ Source Files\repo\library
+
Source Files\repo\library
diff --git a/etc/visual-studio/mbedtls_k.vcxproj b/etc/visual-studio/mbedtls_k.vcxproj
index 38503a9ac..a0cc2801e 100644
--- a/etc/visual-studio/mbedtls_k.vcxproj
+++ b/etc/visual-studio/mbedtls_k.vcxproj
@@ -74,6 +74,7 @@
+
diff --git a/etc/visual-studio/mbedtls_k.vcxproj.filters b/etc/visual-studio/mbedtls_k.vcxproj.filters
index 342f99839..2ca617131 100644
--- a/etc/visual-studio/mbedtls_k.vcxproj.filters
+++ b/etc/visual-studio/mbedtls_k.vcxproj.filters
@@ -64,6 +64,9 @@
Source Files\repo\library
+
+ Source Files\repo\library
+
Source Files\repo\library
diff --git a/third_party/mbedtls/Makefile.am b/third_party/mbedtls/Makefile.am
index 4c4dc5753..4b4158749 100644
--- a/third_party/mbedtls/Makefile.am
+++ b/third_party/mbedtls/Makefile.am
@@ -67,6 +67,7 @@ libmbedcrypto_a_SOURCES = \
repo/library/pk_wrap.c \
repo/library/pkparse.c \
repo/library/platform.c \
+ repo/library/platform_util.c \
repo/library/sha256.c \
repo/library/ssl_cookie.c \
repo/library/ssl_ciphersuites.c \
diff --git a/third_party/mbedtls/mbedtls-config.h b/third_party/mbedtls/mbedtls-config.h
index 306338519..ff0cf0ddd 100644
--- a/third_party/mbedtls/mbedtls-config.h
+++ b/third_party/mbedtls/mbedtls-config.h
@@ -54,7 +54,21 @@ __inline int windows_kernel_snprintf(char * s, size_t n, const char * format, ..
va_end( argp );
return ret;
}
-#define MBEDTLS_PLATFORM_STD_SNPRINTF windows_kernel_snprintf
+#define MBEDTLS_PLATFORM_STD_SNPRINTF windows_kernel_snprintf
+
+#define MBEDTLS_PLATFORM_ZEROIZE_ALT
+__inline void mbedtls_platform_zeroize( void *buf, size_t len)
+{
+ uint8_t *p = (uint8_t *)buf;
+ while ( len-- )
+ {
+ *p++ = 0;
+ }
+}
+#endif
+
+#ifndef _WIN32
+#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf
#endif
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) && !defined(_KERNEL_MODE)