summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/ouroboros/config.h.in4
-rw-r--r--include/ouroboros/hash.h27
-rw-r--r--include/ouroboros/ipcp.h17
3 files changed, 34 insertions, 14 deletions
diff --git a/include/ouroboros/config.h.in b/include/ouroboros/config.h.in
index 0957ee4d..881410eb 100644
--- a/include/ouroboros/config.h.in
+++ b/include/ouroboros/config.h.in
@@ -37,6 +37,10 @@
#define IPCP_NORMAL_EXEC "@IPCP_NORMAL_TARGET@"
#define IPCP_LOCAL_EXEC "@IPCP_LOCAL_TARGET@"
#cmakedefine HAVE_ROBUST_MUTEX
+#cmakedefine HAVE_SYS_RANDOM
+#cmakedefine HAVE_LIBGCRYPT
+#cmakedefine HAVE_OPENSSL
+#cmakedefine HAVE_NETMAP
#define AP_MAX_FLOWS 2048
#define AP_RES_FDS 64
#define AP_MAX_FQUEUES 64
diff --git a/include/ouroboros/hash.h b/include/ouroboros/hash.h
index 456a93f3..6d3f98a3 100644
--- a/include/ouroboros/hash.h
+++ b/include/ouroboros/hash.h
@@ -25,11 +25,30 @@
#define OUROBOROS_LIB_HASH_H
#include <ouroboros/endian.h>
-#include <ouroboros/ipcp.h>
-#include <ouroboros/crc32.h>
-#include <ouroboros/md5.h>
-#include <ouroboros/sha3.h>
+#ifdef HAVE_LIBGCRYPT
+#include <gcrypt.h>
+#endif
+#include <stdint.h>
+
+/* Hash algorithms */
+enum hash_algo {
+#ifdef HAVE_LIBGCRYPT
+ HASH_CRC32 = GCRY_MD_CRC32,
+ HASH_MD5 = GCRY_MD_MD5,
+ HASH_SHA3_224 = GCRY_MD_SHA3_224,
+ HASH_SHA3_256 = GCRY_MD_SHA3_256,
+ HASH_SHA3_384 = GCRY_MD_SHA3_384,
+ HASH_SHA3_512 = GCRY_MD_SHA3_512
+#else
+ HASH_CRC32 = 0,
+ HASH_MD5,
+ HASH_SHA3_224,
+ HASH_SHA3_256,
+ HASH_SHA3_384,
+ HASH_SHA3_512
+#endif
+};
#define HASH_FMT "%02x%02x%02x%02x"
#define HASH_VAL(hash) \
diff --git a/include/ouroboros/ipcp.h b/include/ouroboros/ipcp.h
index 1b775a63..7c34cc7d 100644
--- a/include/ouroboros/ipcp.h
+++ b/include/ouroboros/ipcp.h
@@ -52,22 +52,19 @@ enum pol_routing {
LINK_STATE = 0
};
-/* Hash algorithms */
-enum hash_algo {
- HASH_CRC32 = 0,
- HASH_MD5,
- HASH_SHA3_224,
- HASH_SHA3_256,
- HASH_SHA3_384,
- HASH_SHA3_512
+enum pol_dir_hash {
+ DIR_HASH_SHA3_224 = 0,
+ DIR_HASH_SHA3_256,
+ DIR_HASH_SHA3_384,
+ DIR_HASH_SHA3_512
};
#define DIF_NAME_SIZE 256
/* Info reported back to the IRMd about the DIF on enrollment */
struct dif_info {
- char dif_name[DIF_NAME_SIZE];
- enum hash_algo dir_hash_algo;
+ char dif_name[DIF_NAME_SIZE];
+ enum pol_dir_hash dir_hash_algo;
};
/* Structure to configure the first IPCP */