diff --git a/.gitmodules b/.gitmodules
index df2855a2ba2a61524e2da190e208fb8574d5ec1c..aff7ae50746869dc6123fcb2673b1290b535e095 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,5 +5,8 @@
 	path = lib/micropython/micropython-lib
 	url = https://github.com/micropython/micropython-lib.git
 [submodule "lib/tiny-AES-c/tiny-AES-c"]
-	path = lib/tiny-AES-c/tiny-AES-c
+	path = lib/crypto/tiny-AES-c
 	url = https://github.com/kokke/tiny-AES-c
+[submodule "lib/crypto/SHA256"]
+	path = lib/crypto/SHA256
+	url = https://github.com/ilvn/SHA256
diff --git a/epicardium/meson.build b/epicardium/meson.build
index f82d56bcdebccbb90918b6945af89c85b83ce604..1966750b038090dfd7a5ca7b35405256efbc9e18 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -91,7 +91,7 @@ elf = executable(
   l0der_sources,
   ble_sources,
   version_hdr,
-  dependencies: [libcard10, max32665_startup_core0, maxusb, libff13, ble, bhy1, libtinyAESc],
+  dependencies: [libcard10, max32665_startup_core0, maxusb, libff13, ble, bhy1, libcrypto],
   link_with: [api_dispatcher_lib, freertos],
   link_whole: [max32665_startup_core0_lib, board_card10_lib, newlib_heap_lib],
   include_directories: [freertos_includes],
diff --git a/lib/crypto/SHA256 b/lib/crypto/SHA256
new file mode 160000
index 0000000000000000000000000000000000000000..1c9e3886f69f9ca83c1af49968d8e4389035ff44
--- /dev/null
+++ b/lib/crypto/SHA256
@@ -0,0 +1 @@
+Subproject commit 1c9e3886f69f9ca83c1af49968d8e4389035ff44
diff --git a/lib/tiny-AES-c/meson.build b/lib/crypto/meson.build
similarity index 63%
rename from lib/tiny-AES-c/meson.build
rename to lib/crypto/meson.build
index 159f0ddb12cbec690ac4fa1500159735b3f26fd3..d5eea1f34f6d95423306a4931ff01fbf709b331a 100644
--- a/lib/tiny-AES-c/meson.build
+++ b/lib/crypto/meson.build
@@ -4,18 +4,17 @@ includes = include_directories(
 
 sources = files(
   './tiny-AES-c/aes.c',
+  './SHA256/mark2/sha256.c',
 )
 
 lib = static_library(
-  'tinyAESc',
+  'crypto',
   sources,
   include_directories: includes,
-  #dependencies: [periphdriver, mx25lba],
   c_args: '-w',
 )
 
-libtinyAESc = declare_dependency(
+libcrypto = declare_dependency(
   include_directories: includes,
   link_with: lib,
-  #dependencies: [periphdriver, mx25lba],
 )
diff --git a/lib/tiny-AES-c/tiny-AES-c b/lib/crypto/tiny-AES-c
similarity index 100%
rename from lib/tiny-AES-c/tiny-AES-c
rename to lib/crypto/tiny-AES-c
diff --git a/lib/meson.build b/lib/meson.build
index 3138f5407013dbbf5f87dc10dfe181d96733de79..a51f0c69fca1d1dbe75ad842ef8ce71491e4a81d 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -10,7 +10,7 @@ subdir('./gfx/')
 subdir('./FreeRTOS/')
 subdir('./FreeRTOS-Plus/')
 subdir('./micropython/')
-subdir('./tiny-AES-c/')
+subdir('./crypto/')
 
 subdir('./card10/')
 subdir('./mx25lba/')