diff --git a/tools/nettle-hash.c b/tools/nettle-hash.c index 2874bb970d114adc40bcc75a6a2e8802f3ace0c8..061eb78d48d7231d63b23b5d92ded3f471d55e18 100644 --- a/tools/nettle-hash.c +++ b/tools/nettle-hash.c @@ -54,31 +54,14 @@ list_algorithms (void) static const struct nettle_hash * find_algorithm (const char *name) { - size_t length = strlen (name); const struct nettle_hash *alg; - const struct nettle_hash *found = NULL; unsigned i; for (i = 0; (alg = nettle_hashes[i]); i++) - { - if (!strncmp(name, alg->name, length)) - { - /* Luckily, no valid algorithm name is a prefix of any - other, so we don't need to handle exact matches - specially. */ - - if (found) - die("Hash algorithm `%s' is ambiguous (%s or %s or ...?).\n" - "Use nettle-hash --list to list all available algorithms.\n", - name, alg->name, found->name); - found = alg; - } - } - if (!found) - die("Hash algorithm `%s' is not supported.\n" - "Use nettle-hash --list to list all available algorithms.\n", - name); - return found; + if (!strcmp(name, alg->name)) + return alg; + + return NULL; } /* Also in examples/io.c */ @@ -143,6 +126,9 @@ digest_file(const struct nettle_hash *alg, return 1; } +/* FIXME: Be more compatible with md5sum and sha1sum. Options -c + (check), -b (binary), -t (text), and output format with hex hash + sum, optional star (meaning binary mode), and file name. */ int main (int argc, char **argv) {