diff --git a/externals/cryptopp/CMakeLists.txt b/externals/cryptopp/CMakeLists.txt
index a724eb524..add5fb444 100644
--- a/externals/cryptopp/CMakeLists.txt
+++ b/externals/cryptopp/CMakeLists.txt
@@ -157,11 +157,18 @@ set(cryptopp_SOURCES
         cryptopp/queue.cpp
         cryptopp/randpool.cpp
         cryptopp/rdtables.cpp
+        cryptopp/rijndael-simd.cpp
         cryptopp/rijndael.cpp
         cryptopp/rng.cpp
+        cryptopp/sha-simd.cpp
         cryptopp/sha.cpp
+        cryptopp/sse-simd.cpp
         )
 
+if (MINGW OR WIN32)
+    list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/winpipes.cpp)
+endif ()
+
 if(MSVC AND NOT CRYPTOPP_DISABLE_ASM)
     if(${CMAKE_GENERATOR} MATCHES ".*ARM")
         message(STATUS "Disabling ASM because ARM is specified as target platform.")
@@ -181,6 +188,16 @@ if(MSVC AND NOT CRYPTOPP_DISABLE_ASM)
     endif()
 endif()
 
+if ((CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT CRYPTOPP_DISABLE_ASM)
+    if(${CMAKE_GENERATOR} MATCHES ".*ARM")
+        message(STATUS "Disabling ASM because ARM is specified as target platform.")
+    else()
+        set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rijndael-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1 -maes")
+        set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sha-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
+        set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sse-simd.cpp PROPERTIES COMPILE_FLAGS "-msse2")
+    endif()
+endif()
+
 #============================================================================
 # Compile targets
 #============================================================================
diff --git a/externals/cryptopp/cryptopp b/externals/cryptopp/cryptopp
index 24bc2b856..b6c668445 160000
--- a/externals/cryptopp/cryptopp
+++ b/externals/cryptopp/cryptopp
@@ -1 +1 @@
-Subproject commit 24bc2b85674254fb294e717eb5b47d9f53e786b8
+Subproject commit b6c6684451f925ab2e0b99acbaf66fd487ebfbd5