From 36ed043ff4c5315e21f7808521193a037af8c0fb Mon Sep 17 00:00:00 2001 From: Libor Peltan <libor.peltan@nic.cz> Date: Fri, 7 Jan 2022 12:11:02 +0100 Subject: [PATCH] knsec3hash: alternative params synopsis... ...better matching NSEC3 presentation format --- doc/man/knsec3hash.1in | 4 +++- doc/man_knsec3hash.rst | 4 +++- src/utils/knsec3hash/knsec3hash.c | 22 +++++++++++++++++----- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/man/knsec3hash.1in b/doc/man/knsec3hash.1in index 6af3fd9a19..8579f3ed1e 100644 --- a/doc/man/knsec3hash.1in +++ b/doc/man/knsec3hash.1in @@ -33,6 +33,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .SH SYNOPSIS .sp \fBknsec3hash\fP \fIsalt\fP \fIalgorithm\fP \fIiterations\fP \fIname\fP +.sp +\fBknsec3hash\fP \fIalgorithm\fP \fIflags\fP \fIiterations\fP \fIsalt\fP \fIname\fP .SH DESCRIPTION .sp This utility generates a NSEC3 hash for a given domain name and parameters of NSEC3 hash. @@ -61,7 +63,7 @@ an error. .sp .nf .ft C -$ knsec3hash c01dcafe 1 10 knot\-dns.cz +$ knsec3hash 1 0 10 c01dcafe knot\-dns.cz 7PTVGE7QV67EM61ROS9238P5RAKR2DM7 (salt=c01dcafe, hash=1, iterations=10) .ft P .fi diff --git a/doc/man_knsec3hash.rst b/doc/man_knsec3hash.rst index 3b4be45fca..f5deadde59 100644 --- a/doc/man_knsec3hash.rst +++ b/doc/man_knsec3hash.rst @@ -8,6 +8,8 @@ Synopsis :program:`knsec3hash` *salt* *algorithm* *iterations* *name* +:program:`knsec3hash` *algorithm* *flags* *iterations* *salt* *name* + Description ----------- @@ -39,7 +41,7 @@ Examples :: - $ knsec3hash c01dcafe 1 10 knot-dns.cz + $ knsec3hash 1 0 10 c01dcafe knot-dns.cz 7PTVGE7QV67EM61ROS9238P5RAKR2DM7 (salt=c01dcafe, hash=1, iterations=10) :: diff --git a/src/utils/knsec3hash/knsec3hash.c b/src/utils/knsec3hash/knsec3hash.c index 6a0244079b..b468d8b147 100644 --- a/src/utils/knsec3hash/knsec3hash.c +++ b/src/utils/knsec3hash/knsec3hash.c @@ -39,6 +39,8 @@ static void print_help(void) { printf("Usage: " PROGRAM_NAME " <salt> <algorithm> <iterations> <domain-name>\n"); printf("Example: " PROGRAM_NAME " c01dcafe 1 10 knot-dns.cz\n"); + printf("Alternative usage: "PROGRAM_NAME " <algorithm> <flags> <iterations> <salt> <domain-name>\n"); + printf("Example: " PROGRAM_NAME " 1 0 10 c01dcafe knot-dns.cz\n"); } /*! @@ -122,8 +124,12 @@ int main(int argc, char *argv[]) } } - // knsec3hash <salt> <algorithm> <iterations> <domain> - if (argc != 5) { + bool new_params = false; + if (argc == 6) { + // knsec3hash <algorithm> <flags> <iterations> <salt> <domain> + new_params = true; + } else if (argc != 5) { + // knsec3hash <salt> <algorithm> <iterations> <domain> print_help(); return EXIT_FAILURE; } @@ -135,11 +141,17 @@ int main(int argc, char *argv[]) dnssec_binary_t digest = { 0 }; dnssec_binary_t digest_print = { 0 }; - if (!parse_nsec3_params(&nsec3_params, argv[1], argv[2], argv[3])) { - goto fail; + if (new_params) { + if (!parse_nsec3_params(&nsec3_params, argv[4], argv[1], argv[3])) { + goto fail; + } + } else { + if (!parse_nsec3_params(&nsec3_params, argv[1], argv[2], argv[3])) { + goto fail; + } } - dname.data = knot_dname_from_str_alloc(argv[4]); + dname.data = knot_dname_from_str_alloc(argv[new_params ? 5 : 4]); if (dname.data == NULL) { error("Cannot parse domain name."); goto fail; -- GitLab