aboutsummaryrefslogtreecommitdiff
path: root/include/crypto/clmul.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/crypto/clmul.h')
-rw-r--r--include/crypto/clmul.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/crypto/clmul.h b/include/crypto/clmul.h
index 80de516464..446931fe05 100644
--- a/include/crypto/clmul.h
+++ b/include/crypto/clmul.h
@@ -8,6 +8,9 @@
#ifndef CRYPTO_CLMUL_H
#define CRYPTO_CLMUL_H
+#include "qemu/int128.h"
+#include "host/crypto/clmul.h"
+
/**
* clmul_8x8_low:
*
@@ -61,4 +64,20 @@ uint64_t clmul_16x2_odd(uint64_t, uint64_t);
*/
uint64_t clmul_32(uint32_t, uint32_t);
+/**
+ * clmul_64:
+ *
+ * Perform a 64x64->128 carry-less multiply.
+ */
+Int128 clmul_64_gen(uint64_t, uint64_t);
+
+static inline Int128 clmul_64(uint64_t a, uint64_t b)
+{
+ if (HAVE_CLMUL_ACCEL) {
+ return clmul_64_accel(a, b);
+ } else {
+ return clmul_64_gen(a, b);
+ }
+}
+
#endif /* CRYPTO_CLMUL_H */