diff --git a/IDE/Android/Android.bp b/IDE/Android/Android.bp
index 3be3b13c6..2a13dfdcb 100644
--- a/IDE/Android/Android.bp
+++ b/IDE/Android/Android.bp
@@ -67,6 +67,7 @@ cc_library_shared {
"./wolfcrypt/src/ge_low_mem.c",
"./wolfcrypt/src/ge_operations.c",
"./wolfcrypt/src/hash.c",
+ "./wolfcrypt/src/kdf.c",
"./wolfcrypt/src/hc128.c",
"./wolfcrypt/src/hmac.c",
"./wolfcrypt/src/idea.c",
diff --git a/IDE/ECLIPSE/DEOS/deos_wolfssl/.project b/IDE/ECLIPSE/DEOS/deos_wolfssl/.project
index 769c9630e..05b86a93a 100644
--- a/IDE/ECLIPSE/DEOS/deos_wolfssl/.project
+++ b/IDE/ECLIPSE/DEOS/deos_wolfssl/.project
@@ -414,6 +414,11 @@
1
WOLFSSL_ROOT/wolfcrypt/src/ge_operations.c
+
+ wolfcrypt/src/kdf.c
+ 1
+ WOLFSSL_ROOT/wolfcrypt/src/kdf.c
+
wolfcrypt/src/hash.c
1
diff --git a/IDE/GCC-ARM/Makefile.common b/IDE/GCC-ARM/Makefile.common
index a98fd55b0..2687a4b3c 100644
--- a/IDE/GCC-ARM/Makefile.common
+++ b/IDE/GCC-ARM/Makefile.common
@@ -138,6 +138,7 @@ SRC_C += ../../wolfcrypt/src/ge_448.c
SRC_C += ../../wolfcrypt/src/ge_low_mem.c
SRC_C += ../../wolfcrypt/src/ge_operations.c
SRC_C += ../../wolfcrypt/src/hash.c
+SRC_C += ../../wolfcrypt/src/kdf.c
SRC_C += ../../wolfcrypt/src/integer.c
SRC_C += ../../wolfcrypt/src/logging.c
SRC_C += ../../wolfcrypt/src/md5.c
diff --git a/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
index db1c3e4e3..f8320e199 100644
--- a/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
+++ b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
@@ -1975,6 +1975,9 @@
$PROJ_DIR$\..\..\..\..\wolfcrypt\src\hash.c
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\kdf.c
+
$PROJ_DIR$\..\..\..\..\wolfcrypt\src\hc128.c
diff --git a/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewp b/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewp
index 3dd4eac93..58ee9e08c 100644
--- a/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewp
+++ b/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewp
@@ -1956,6 +1956,9 @@
$PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\hash.c
+
+ $PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\kdf.c
+
$PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\hmac.c
diff --git a/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewt b/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewt
index 8dfc682f0..62d87fb24 100644
--- a/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewt
+++ b/IDE/IAR-EWARM/embOS/SAMV71_XULT/embOS_wolfcrypt_lib_SAMV71_XULT/wolfcrypt_lib.ewt
@@ -2346,6 +2346,9 @@
$PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\hash.c
+
+ $PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\kdf.c
+
$PROJ_DIR$\..\..\..\..\..\wolfcrypt\src\hmac.c
diff --git a/IDE/IAR-EWARM/embOS/custom_port/README_custom_port b/IDE/IAR-EWARM/embOS/custom_port/README_custom_port
index 3d13bc56d..643bc6177 100644
--- a/IDE/IAR-EWARM/embOS/custom_port/README_custom_port
+++ b/IDE/IAR-EWARM/embOS/custom_port/README_custom_port
@@ -45,6 +45,7 @@ wolfssl (latest version)
# hmac.c tfm.c #
# md4.c wc_encrypt.c #
# md5.c wc_port.c #
+ # kdf.c #
#---------------------------------------------#
5. Once those are all added go to
diff --git a/IDE/INTIME-RTOS/libwolfssl.vcxproj b/IDE/INTIME-RTOS/libwolfssl.vcxproj
index 85bb1d783..ca7360756 100755
--- a/IDE/INTIME-RTOS/libwolfssl.vcxproj
+++ b/IDE/INTIME-RTOS/libwolfssl.vcxproj
@@ -46,6 +46,7 @@
+
diff --git a/IDE/KDS/.project b/IDE/KDS/.project
index d83ae5ca4..90424c9c7 100644
--- a/IDE/KDS/.project
+++ b/IDE/KDS/.project
@@ -165,6 +165,11 @@
1
PARENT-2-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ src/wolfcrypt-src/kdf.c
+ 1
+ PARENT-2-PROJECT_LOC/wolfcrypt/src/kdf.c
+
src/wolfcrypt-src/hc128.c
1
diff --git a/IDE/LINUX-SGX/sgx_t_static.mk b/IDE/LINUX-SGX/sgx_t_static.mk
index 41ff666f2..891350a78 100644
--- a/IDE/LINUX-SGX/sgx_t_static.mk
+++ b/IDE/LINUX-SGX/sgx_t_static.mk
@@ -61,6 +61,7 @@ Wolfssl_C_Files :=$(WOLFSSL_ROOT)/wolfcrypt/src/aes.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/ecc.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/error.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/hash.c\
+ $(WOLFSSL_ROOT)/wolfcrypt/src/kdf.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/hc128.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/hmac.c\
$(WOLFSSL_ROOT)/wolfcrypt/src/integer.c\
diff --git a/IDE/M68K/Makefile b/IDE/M68K/Makefile
index 5f4da0c22..ee507dc92 100644
--- a/IDE/M68K/Makefile
+++ b/IDE/M68K/Makefile
@@ -20,6 +20,7 @@ CSRCS := ../../wolfcrypt/src/rsa.c \
../../wolfcrypt/src/memory.c \
../../wolfcrypt/src/coding.c \
../../wolfcrypt/src/hash.c \
+ ../../wolfcrypt/src/kdf.c \
../../wolfcrypt/src/hmac.c \
../../wolfcrypt/src/md5.c \
../../wolfcrypt/src/wc_port.c \
diff --git a/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvopt b/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvopt
index 2cecde47e..250dbb517 100644
--- a/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvopt
+++ b/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvopt
@@ -1181,6 +1181,19 @@
0
0
+
+ 1
+ 48
+ 1
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\wolfcrypt\src\kdf.c
+ kdf.c
+ 0
+ 0
+
diff --git a/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvproj b/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvproj
index 1cac8782a..a97cea8c2 100644
--- a/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvproj
+++ b/IDE/MDK-ARM/Projects/MDK-ARM-wolfSSL-Lib.uvproj
@@ -626,6 +626,11 @@
1
..\..\..\wolfcrypt\src\hash.c
+
+ kdf.c
+ 1
+ ..\..\..\wolfcrypt\src\kdf.c
+
misc.c
1
@@ -1335,6 +1340,11 @@
1
..\..\..\wolfcrypt\src\hash.c
+
+ kdf.c
+ 1
+ ..\..\..\wolfcrypt\src\kdf.c
+
misc.c
1
@@ -2044,6 +2054,11 @@
1
..\..\..\wolfcrypt\src\hash.c
+
+ kdf.c
+ 1
+ ..\..\..\wolfcrypt\src\kdf.c
+
misc.c
1
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp
index 74388ddac..2706be5f8 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl.hzp
@@ -71,6 +71,7 @@
+
diff --git a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl_ltc.hzp b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl_ltc.hzp
index 2cd93b21f..81ecc568a 100644
--- a/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl_ltc.hzp
+++ b/IDE/ROWLEY-CROSSWORKS-ARM/wolfssl_ltc.hzp
@@ -73,6 +73,7 @@
+
diff --git a/IDE/Renesas/e2studio/GR-ROSE/wolfssl/.project b/IDE/Renesas/e2studio/GR-ROSE/wolfssl/.project
index 46ee10091..a2f1351e7 100644
--- a/IDE/Renesas/e2studio/GR-ROSE/wolfssl/.project
+++ b/IDE/Renesas/e2studio/GR-ROSE/wolfssl/.project
@@ -214,6 +214,11 @@
1
PARENT-5-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ wolfcrypt/src/kdf.c
+ 1
+ PARENT-5-PROJECT_LOC/wolfcrypt/src/kdf.c
+
wolfcrypt/src/hc128.c
1
diff --git a/IDE/Renesas/e2studio/Projects/wolfssl/.project b/IDE/Renesas/e2studio/Projects/wolfssl/.project
index 46ee10091..a2f1351e7 100644
--- a/IDE/Renesas/e2studio/Projects/wolfssl/.project
+++ b/IDE/Renesas/e2studio/Projects/wolfssl/.project
@@ -214,6 +214,11 @@
1
PARENT-5-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ wolfcrypt/src/kdf.c
+ 1
+ PARENT-5-PROJECT_LOC/wolfcrypt/src/kdf.c
+
wolfcrypt/src/hc128.c
1
diff --git a/IDE/Renesas/e2studio/RA6M3/wolfssl/.project b/IDE/Renesas/e2studio/RA6M3/wolfssl/.project
index 33ff60268..05649a287 100644
--- a/IDE/Renesas/e2studio/RA6M3/wolfssl/.project
+++ b/IDE/Renesas/e2studio/RA6M3/wolfssl/.project
@@ -215,6 +215,11 @@
1
PARENT-5-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ wolfcrypt/kdf.c
+ 1
+ PARENT-5-PROJECT_LOC/wolfcrypt/src/kdf.c
+
wolfcrypt/hc128.c
1
diff --git a/IDE/Renesas/e2studio/RX72NEnvisionKit/wolfssl/.project b/IDE/Renesas/e2studio/RX72NEnvisionKit/wolfssl/.project
index 46ee10091..a2f1351e7 100644
--- a/IDE/Renesas/e2studio/RX72NEnvisionKit/wolfssl/.project
+++ b/IDE/Renesas/e2studio/RX72NEnvisionKit/wolfssl/.project
@@ -214,6 +214,11 @@
1
PARENT-5-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ wolfcrypt/src/kdf.c
+ 1
+ PARENT-5-PROJECT_LOC/wolfcrypt/src/kdf.c
+
wolfcrypt/src/hc128.c
1
diff --git a/IDE/VS-ARM/wolfssl.vcxproj b/IDE/VS-ARM/wolfssl.vcxproj
index 6769f429b..561aa76c2 100644
--- a/IDE/VS-ARM/wolfssl.vcxproj
+++ b/IDE/VS-ARM/wolfssl.vcxproj
@@ -63,6 +63,7 @@
+
diff --git a/IDE/VS-AZURE-SPHERE/wolfssl.vcxproj b/IDE/VS-AZURE-SPHERE/wolfssl.vcxproj
index fbd3dbb30..752a96ce9 100644
--- a/IDE/VS-AZURE-SPHERE/wolfssl.vcxproj
+++ b/IDE/VS-AZURE-SPHERE/wolfssl.vcxproj
@@ -45,6 +45,7 @@
+
@@ -132,4 +133,4 @@
-
\ No newline at end of file
+
diff --git a/IDE/XilinxSDK/2019_2/wolfCrypt_example/.project b/IDE/XilinxSDK/2019_2/wolfCrypt_example/.project
index c814955a7..f85a59460 100644
--- a/IDE/XilinxSDK/2019_2/wolfCrypt_example/.project
+++ b/IDE/XilinxSDK/2019_2/wolfCrypt_example/.project
@@ -505,6 +505,11 @@
1
PARENT-4-PROJECT_LOC/wolfcrypt/src/hash.c
+
+ src/wolfcrypt/src/kdf.c
+ 1
+ PARENT-4-PROJECT_LOC/wolfcrypt/src/kdf.c
+
src/wolfcrypt/src/hc128.c
1