summaryrefslogtreecommitdiffstats
path: root/src/crypto/modes/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/modes/CMakeLists.txt')
-rw-r--r--src/crypto/modes/CMakeLists.txt63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/crypto/modes/CMakeLists.txt b/src/crypto/modes/CMakeLists.txt
new file mode 100644
index 0000000..d50e97b
--- /dev/null
+++ b/src/crypto/modes/CMakeLists.txt
@@ -0,0 +1,63 @@
+include_directories(. .. ../../include)
+
+if (${ARCH} STREQUAL "x86_64")
+ set(
+ MODES_ARCH_SOURCES
+
+ aesni-gcm-x86_64.${ASM_EXT}
+ ghash-x86_64.${ASM_EXT}
+ )
+endif()
+
+if (${ARCH} STREQUAL "x86")
+ set(
+ MODES_ARCH_SOURCES
+
+ ghash-x86.${ASM_EXT}
+ )
+endif()
+
+if (${ARCH} STREQUAL "arm")
+ set(
+ MODES_ARCH_SOURCES
+
+ ghash-armv4.${ASM_EXT}
+ ghashv8-armx.${ASM_EXT}
+ )
+endif()
+
+if (${ARCH} STREQUAL "aarch64")
+ set(
+ MODES_ARCH_SOURCES
+
+ ghashv8-armx.${ASM_EXT}
+ )
+endif()
+
+add_library(
+ modes
+
+ OBJECT
+
+ cbc.c
+ ctr.c
+ ofb.c
+ cfb.c
+ gcm.c
+
+ ${MODES_ARCH_SOURCES}
+)
+
+perlasm(aesni-gcm-x86_64.${ASM_EXT} asm/aesni-gcm-x86_64.pl)
+perlasm(ghash-x86_64.${ASM_EXT} asm/ghash-x86_64.pl)
+perlasm(ghash-x86.${ASM_EXT} asm/ghash-x86.pl)
+perlasm(ghash-armv4.${ASM_EXT} asm/ghash-armv4.pl)
+perlasm(ghashv8-armx.${ASM_EXT} asm/ghashv8-armx.pl)
+
+add_executable(
+ gcm_test
+
+ gcm_test.c
+)
+
+target_link_libraries(gcm_test crypto)