summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Duncan <pabs@pablotron.org>2024-04-29 18:34:32 -0400
committerPaul Duncan <pabs@pablotron.org>2024-04-29 18:34:32 -0400
commit7bb7d04b4561545d3be1c82abfb87bd01b28a0c1 (patch)
tree3e4efb5c096415e1bccafa8b9493dd4f09ffe336
parent5e1d35c63378a8e509287e49aca3566a08fdcf1d (diff)
downloadsha3-7bb7d04b4561545d3be1c82abfb87bd01b28a0c1.tar.bz2
sha3-7bb7d04b4561545d3be1c82abfb87bd01b28a0c1.zip
sha3.[hc]: add sha3_backend()
-rw-r--r--sha3.c10
-rw-r--r--sha3.h17
2 files changed, 26 insertions, 1 deletions
diff --git a/sha3.c b/sha3.c
index 26ac022..6b4c2fd 100644
--- a/sha3.c
+++ b/sha3.c
@@ -751,7 +751,6 @@ static inline size_t absorb12(sha3_state_t * const a, size_t num_bytes, const si
return num_bytes;
}
-
// Get rate (number of bytes that can be absorbed before the internal
// state is permuted).
//
@@ -2094,6 +2093,15 @@ void k12_once(const uint8_t *src, const size_t src_len, uint8_t *dst, const size
k12_custom_once(src, src_len, NULL, 0, dst, dst_len);
}
+// Return backend name.
+const char *sha3_backend(void) {
+#if SHA3_BACKEND == SHA3_BACKEND_AVX512
+ return "avx512";
+#elif SHA3_BACKEND == SHA3_BACKEND_SCALAR
+ return "scalar";
+#endif /* SHA3_BACKEND */
+}
+
#ifdef SHA3_TEST
#include <stdio.h> // printf()
#include <stdlib.h> // malloc() (used in test_kangarootwelve())
diff --git a/sha3.h b/sha3.h
index c9b6f44..1937b26 100644
--- a/sha3.h
+++ b/sha3.h
@@ -2352,6 +2352,23 @@ void k12_init(k12_t *k12, const uint8_t *src, const size_t src_len, const uint8_
*/
void k12_squeeze(k12_t *k12, uint8_t *dst, const size_t len);
+/**
+ * @defgroup misc Miscellaneous
+ * @brief Miscellaneous functions.
+ */
+
+/**
+ * @brief Get name of backend.
+ * @ingroup misc
+ *
+ * @note Returns a read-only string which much not be freed by the
+ * caller.
+ *
+ * Example:
+ * @snippet{trimleft} 06-all/all-fns.c sha3_backend
+ */
+const char *sha3_backend(void);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */