From 9cedf877b5db8a962726bd5e3b00c046ca9a2be3 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 2 Nov 1996 15:28:34 +0000 Subject: [PATCH] Add option `-e' for printing responses in extended mode (according to draft-ietf-otp-ext-01.txt). git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@922 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/otp/otp.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/appl/otp/otp.c b/appl/otp/otp.c index c966d337a..c8a8af5e7 100644 --- a/appl/otp/otp.c +++ b/appl/otp/otp.c @@ -46,7 +46,7 @@ static void usage (void) { fprintf(stderr, - "Usage: %s [-h] [-r] [-s] [-n count] [-f alg] num seed\n", + "Usage: %s [-e] [-h] [-r] [-s] [-n count] [-f alg] num seed\n", prog); exit (1); } @@ -160,13 +160,19 @@ set (int argc, char **argv, int count, OtpAlgorithm *alg, int hexp) } int -print (int argc, char **argv, int count, OtpAlgorithm *alg, int hexp) +print (int argc, + char **argv, + int count, + OtpAlgorithm *alg, + int hexp, + int extendedp) { char pw[64]; OtpKey key; int n; int i; char *seed; + char *ext; if (argc != 2) usage (); @@ -174,6 +180,13 @@ print (int argc, char **argv, int count, OtpAlgorithm *alg, int hexp) seed = argv[1]; des_read_pw_string (pw, sizeof(pw), "Password: ", 0); alg->init (key, pw, seed); + if (extendedp) + if (hexp) + ext = "hex:"; + else + ext = "word:"; + else + ext = ""; for (i = 0; i < n; ++i) { char s[30]; @@ -183,7 +196,7 @@ print (int argc, char **argv, int count, OtpAlgorithm *alg, int hexp) otp_print_hex (key, s); else otp_print_stddict (key, s); - printf ("%d: %s\n", i + 1, s); + printf ("%d: %s%s\n", i + 1, ext, s); } } return 0; @@ -197,6 +210,7 @@ main (int argc, char **argv) int setp = 0; int hexp = 0; int renewp = 0; + int extendedp = 0; OtpAlgorithm *alg = otp_find_alg ("md4"); prog = argv[0]; @@ -206,6 +220,9 @@ main (int argc, char **argv) case 'r' : renewp = 1; break; + case 'e' : + extendedp = 1; + break; case 'n' : count = atoi (optarg); break; @@ -239,5 +256,5 @@ main (int argc, char **argv) else if (renewp) return renew (argc, argv, count, alg, hexp); else - return print (argc, argv, count, alg, hexp); + return print (argc, argv, count, alg, hexp, extendedp); }