aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/block/threefish_avx2
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/block/threefish_avx2')
-rw-r--r--src/lib/block/threefish_avx2/threefish_avx2.cpp6
-rw-r--r--src/lib/block/threefish_avx2/threefish_avx2.h6
2 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/block/threefish_avx2/threefish_avx2.cpp b/src/lib/block/threefish_avx2/threefish_avx2.cpp
index ee0ecde85..432059585 100644
--- a/src/lib/block/threefish_avx2/threefish_avx2.cpp
+++ b/src/lib/block/threefish_avx2/threefish_avx2.cpp
@@ -1,15 +1,19 @@
/*
-* Threefish-512
+* Threefish-512 using AVX2
* (C) 2013 Jack Lloyd
*
* Botan is released under the Simplified BSD License (see license.txt)
*/
+#include <botan/internal/block_utils.h>
#include <botan/threefish_avx2.h>
+#include <botan/cpuid.h>
#include <immintrin.h>
namespace Botan {
+BOTAN_REGISTER_BLOCK_CIPHER_NOARGS_IF(CPUID::has_avx2(), Threefish_512_AVX2, "Threefish-512", "avx2");
+
namespace {
inline void interleave_epi64(__m256i& X0, __m256i& X1)
diff --git a/src/lib/block/threefish_avx2/threefish_avx2.h b/src/lib/block/threefish_avx2/threefish_avx2.h
index ba24f114f..d851ff0dc 100644
--- a/src/lib/block/threefish_avx2/threefish_avx2.h
+++ b/src/lib/block/threefish_avx2/threefish_avx2.h
@@ -20,6 +20,12 @@ class BOTAN_DLL Threefish_512_AVX2 : public Threefish_512
private:
void encrypt_n(const byte in[], byte out[], size_t blocks) const override;
void decrypt_n(const byte in[], byte out[], size_t blocks) const override;
+
+ /* TODO:
+ void skein_feedfwd(const secure_vector<u64bit>& M,
+ const secure_vector<u64bit>& T) override;
+ */
+
BlockCipher* clone() const override { return new Threefish_512_AVX2; }
};