From b5ab19c63623c1fc5cd05cc0f81f53a92e39134c Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Mon, 14 Sep 2020 01:10:20 +0200
Subject: [PATCH] feat(crypto): Add SHA256 implementation

---
 .gitmodules                            | 7 +++++--
 bootstrap.sh                           | 2 +-
 epicardium/meson.build                 | 2 +-
 lib/crypto/SHA256                      | 1 +
 lib/{tiny-AES-c => crypto}/meson.build | 7 +++----
 lib/{tiny-AES-c => crypto}/tiny-AES-c  | 0
 lib/meson.build                        | 2 +-
 7 files changed, 12 insertions(+), 9 deletions(-)
 create mode 160000 lib/crypto/SHA256
 rename lib/{tiny-AES-c => crypto}/meson.build (63%)
 rename lib/{tiny-AES-c => crypto}/tiny-AES-c (100%)

diff --git a/.gitmodules b/.gitmodules
index df2855a2..a21dc049 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,6 +4,9 @@
 [submodule "lib/micropython/micropython-lib"]
 	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
+[submodule "lib/crypto/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/bootstrap.sh b/bootstrap.sh
index 0b8fa173..f8fb29bf 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -4,7 +4,7 @@ set -xe
 cd "$(dirname "$0")"
 test -d build/ && rm -r build/
 
-# Get external libs (MicroPython, tiny-AES-c)
+# Get external libs (MicroPython, tiny-AES-c, SHA256)
 git submodule update --init ./lib
 meson --cross-file card10-cross.ini build/ "$@"
 
diff --git a/epicardium/meson.build b/epicardium/meson.build
index f82d56bc..1966750b 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 00000000..1c9e3886
--- /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 159f0ddb..d5eea1f3 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 3138f540..a51f0c69 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/')
-- 
GitLab