aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstate/engine/amd64_eng
diff options
context:
space:
mode:
authorlloyd <[email protected]>2008-11-11 04:55:51 +0000
committerlloyd <[email protected]>2008-11-11 04:55:51 +0000
commit1a3ab9bf2aba7910e0cfff760635b68589089888 (patch)
tree66ce9d822fe5f8163d60b86ffe252be639503645 /src/libstate/engine/amd64_eng
parent54f82a91844808eb1612080427fb64d44c486aad (diff)
Split asm_engine into three engines (ia32, amd64, sse2). This allows
them to be individually requested as providers on lookup.
Diffstat (limited to 'src/libstate/engine/amd64_eng')
-rw-r--r--src/libstate/engine/amd64_eng/eng_amd64.cpp25
-rw-r--r--src/libstate/engine/amd64_eng/eng_amd64.h24
-rw-r--r--src/libstate/engine/amd64_eng/info.txt14
3 files changed, 63 insertions, 0 deletions
diff --git a/src/libstate/engine/amd64_eng/eng_amd64.cpp b/src/libstate/engine/amd64_eng/eng_amd64.cpp
new file mode 100644
index 000000000..bdc73fdd6
--- /dev/null
+++ b/src/libstate/engine/amd64_eng/eng_amd64.cpp
@@ -0,0 +1,25 @@
+/**
+* AMD64 Assembly Implementation Engine
+* (C) 1999-2008 Jack Lloyd
+*/
+
+#include <botan/eng_amd64.h>
+
+#if defined(BOTAN_HAS_SHA1_AMD64)
+ #include <botan/sha1_amd64.h>
+#endif
+
+namespace Botan {
+
+HashFunction* AMD64_Assembler_Engine::find_hash(const SCAN_Name& request,
+ Algorithm_Factory&) const
+ {
+#if defined(BOTAN_HAS_SHA1_AMD64)
+ if(request.algo_name() == "SHA-160")
+ return new SHA_160_AMD64;
+#endif
+
+ return 0;
+ }
+
+}
diff --git a/src/libstate/engine/amd64_eng/eng_amd64.h b/src/libstate/engine/amd64_eng/eng_amd64.h
new file mode 100644
index 000000000..efd8c2b76
--- /dev/null
+++ b/src/libstate/engine/amd64_eng/eng_amd64.h
@@ -0,0 +1,24 @@
+/**
+* x86-64 Assembly Implementation Engines
+* (C) 1999-2008 Jack Lloyd
+*/
+
+#ifndef BOTAN_AMD64_ASM_ENGINE_H__
+#define BOTAN_AMD64_ASM_ENGINE_H__
+
+#include <botan/engine.h>
+
+namespace Botan {
+
+class BOTAN_DLL AMD64_Assembler_Engine : public Engine
+ {
+ public:
+ std::string provider_name() const { return "amd64"; }
+ private:
+ HashFunction* find_hash(const SCAN_Name& reqeust,
+ Algorithm_Factory&) const;
+ };
+
+}
+
+#endif
diff --git a/src/libstate/engine/amd64_eng/info.txt b/src/libstate/engine/amd64_eng/info.txt
new file mode 100644
index 000000000..1d0283ad6
--- /dev/null
+++ b/src/libstate/engine/amd64_eng/info.txt
@@ -0,0 +1,14 @@
+realname "AMD64 Assembler Engine"
+
+define ENGINE_AMD64_ASSEMBLER
+
+load_on auto
+
+<add>
+eng_amd64.cpp
+eng_amd64.h
+</add>
+
+<arch>
+amd64
+</arch>