diff options
author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-08-09 18:55:37 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-08-09 20:48:27 +0200 |
commit | 24aa46946349529bf36d3569796a28917d3e756f (patch) | |
tree | 58ef8a40142323771eecbd8ce6c2eaea409bc138 /src/tools/irm/irm_ipcp_bootstrap.c | |
parent | c1d7ff1e1bd44e1a38af8a1b498c68f3378fa342 (diff) | |
download | ouroboros-24aa46946349529bf36d3569796a28917d3e756f.tar.gz ouroboros-24aa46946349529bf36d3569796a28917d3e756f.zip |
build, lib, ipcpd, irmd: Add support for libgcrypt
This adds support for libgcrypt. If at least version 1.7.0 of
libgcrypt is present, it may be used for secure random number
generation and is used for hashing in the irmd/ipcp.
The hash definitions are moved to the internal hash.h header, and
defined independently of the hashes that are defined as part of the
directory policy for the normal IPCP. The translation is moved from
the IRMd to ipcpd/ipcp.h. The bootstrap call from the IRMd expects the
IPCP to return the correct hash algorithm with a dif_info struct,
which is in line with the behavior of the enroll call.
This also improves how some platform checks in the build system are
handled.
Diffstat (limited to 'src/tools/irm/irm_ipcp_bootstrap.c')
-rw-r--r-- | src/tools/irm/irm_ipcp_bootstrap.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/tools/irm/irm_ipcp_bootstrap.c b/src/tools/irm/irm_ipcp_bootstrap.c index 6277dee4..571bff8b 100644 --- a/src/tools/irm/irm_ipcp_bootstrap.c +++ b/src/tools/irm/irm_ipcp_bootstrap.c @@ -39,7 +39,6 @@ #define SHIM_ETH_LLC "shim-eth-llc" #define LOCAL "local" -#define CRC32 "CRC32" #define MD5 "MD5" #define SHA3_224 "SHA3_224" #define SHA3_256 "SHA3_256" @@ -79,8 +78,8 @@ static void usage(void) " (default: %s)]\n" " [routing <routing policy> (default: %s)]\n" " [hash [ALGORITHM] (default: %s)]\n" - "where ALGORITHM = {" CRC32 " " MD5 " " - SHA3_224 " " SHA3_256 " " SHA3_384 " " SHA3_512 "}\n" + "where ALGORITHM = {" SHA3_224 " " SHA3_256 " " + SHA3_384 " " SHA3_512 "}\n" "if TYPE == " SHIM_UDP "\n" " ip <IP address in dotted notation>\n" " [dns <DDNS IP address in dotted notation>" @@ -104,7 +103,7 @@ int do_bootstrap_ipcp(int argc, char ** argv) enum pol_gam dt_gam_type = DEFAULT_DT_GAM; enum pol_gam rm_gam_type = DEFAULT_RM_GAM; enum pol_routing routing_type = DEFAULT_ROUTING; - enum hash_algo hash_algo = DEFAULT_HASH_ALGO; + enum pol_dir_hash hash_algo = DEFAULT_HASH_ALGO; uint32_t ip_addr = 0; uint32_t dns_addr = DEFAULT_DDNS; char * ipcp_type = NULL; @@ -122,11 +121,7 @@ int do_bootstrap_ipcp(int argc, char ** argv) } else if (matches(*argv, "name") == 0) { name = *(argv + 1); } else if (matches(*argv, "hash") == 0) { - if (strcmp(*(argv + 1), CRC32) == 0) - hash_algo = HASH_CRC32; - else if (strcmp(*(argv + 1), MD5) == 0) - hash_algo = HASH_MD5; - else if (strcmp(*(argv + 1), SHA3_224) == 0) + if (strcmp(*(argv + 1), SHA3_224) == 0) hash_algo = HASH_SHA3_224; else if (strcmp(*(argv + 1), SHA3_256) == 0) hash_algo = HASH_SHA3_256; |