summaryrefslogtreecommitdiff
path: root/sha1_armv4.h
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2019-05-18 23:07:17 -0400
committerGitHub <noreply@github.com>2019-05-18 23:07:17 -0400
commit1a63112faf5af60e0ebcc60654eef806e7f6f11a (patch)
tree5144dbd6968ef0643f5e7d03086e916c2e27ab99 /sha1_armv4.h
parent4a21619bff1b1690a97789b76fd70cbb226f7b87 (diff)
downloadcryptopp-git-1a63112faf5af60e0ebcc60654eef806e7f6f11a.tar.gz
Add ARM SHA1 asm implementation from Cryptogams (GH #837, PR #838)
Add ARM SHA1 asm implementation from Cryptogams. Cryptogams is Andy Polyakov's project used to create high speed crypto algorithms and share them with other developers. Cryptogams has a dual license. First is the OpenSSL license because Andy contributes to OpenSSL. Second is a BSD license for those who want a more permissive license. Andy's implementation runs about 30% faster than C/C++ code. Testing on a 1 GHz Cortex-A7 shows Cryptograms at 16 cpb, and C++ at 23 cpb. The integration instructions are documented at [Cryptogams SHA](https://wiki.openssl.org/index.php/Cryptogams_SHA) on the OpenSSL wiki.
Diffstat (limited to 'sha1_armv4.h')
-rw-r--r--sha1_armv4.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/sha1_armv4.h b/sha1_armv4.h
new file mode 100644
index 00000000..14e3e051
--- /dev/null
+++ b/sha1_armv4.h
@@ -0,0 +1,21 @@
+/* Header file for use with Cryptogam's ARMv4 SHA1. */
+/* Also see http://www.openssl.org/~appro/cryptogams/ */
+/* https://wiki.openssl.org/index.php/Cryptogams_SHA. */
+
+#ifndef CRYPTOGAMS_SHA1_ARMV4_H
+#define CRYPTOGAMS_SHA1_ARMV4_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void sha1_block_data_order(void *state, const void *data, size_t blocks);
+
+/* Cryptogams arm caps */
+#define ARMV7_NEON (1<<0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CRYPTOGAMS_SHA1_ARMV4_H */