From 02938f4536fd27dab4a24ae000fcacab49b1d315 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Mon, 7 Dec 2020 22:56:34 -0600 Subject: Promote pwgen. --- toys/pending/pwgen.c | 75 ---------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 toys/pending/pwgen.c (limited to 'toys/pending') diff --git a/toys/pending/pwgen.c b/toys/pending/pwgen.c deleted file mode 100644 index d3e17e58..00000000 --- a/toys/pending/pwgen.c +++ /dev/null @@ -1,75 +0,0 @@ -/* pwgen.c - A password generator. - * - * Copyright 2020 Moritz Röhrich - -USE_PWGEN(NEWTOY(pwgen, ">2r(remove):c(capitalize)n(numerals)y(symbols)s(secure)B(ambiguous)h(help)C1vA(no-capitalize)0(no-numerals)[-cA][-n0][-C1]", TOYFLAG_USR|TOYFLAG_BIN)) - -config PWGEN - bool "pwgen" - default n - help - usage: pwgen [-cAn0yrsBhC1v] [LENGTH] [COUNT] - - Generate human-readable random passwords. When output is to tty produces - a screenfull to defeat shoulder surfing (pick one and clear the screen). - - -c --capitalize Permit capital letters. - -A --no-capitalize Don't include capital letters. - -n --numerals Permit numbers. - -0 --no-numerals Don't include numbers. - -y --symbols Permit special characters ($#%...). - -r --remove= Don't include the given characters. - -s --secure Generate more random passwords. - -B --ambiguous Avoid ambiguous characters (e.g. 0, O). - -h --help Print this help message. - -C Print the output in columns. - -1 Print the output one line each. - -v Don't include vowels. -*/ - -#define FOR_pwgen -#include "toys.h" - -GLOBALS( - char *r; -) - -void pwgen_main(void) -{ - int length = 8, count, ii, jj, c, rand = 0, x = 0; - unsigned xx = 80, yy = 24; - char janice[16]; - - if (isatty(1)) terminal_size(&xx, &yy); - else toys.optflags |= FLAG_1; - - if (toys.optc && (length = atolx(*toys.optargs))>sizeof(toybuf)) - error_exit("bad length"); - if (toys.optc>1) count = atolx(toys.optargs[1]); - else count = FLAG(1) ? 1 : (xx/(length+1))*(yy-1); - - for (jj = 0; jj102 less likely - - if (c>='A' && c<='Z') { - if (FLAG(A)) continue; - // take out half the capital letters to be more human readable - else c |= (0x80&janice[rand])>>2; - } - if (FLAG(0) && c>='0' && c<='9') continue; - if (FLAG(B) && strchr("0O1lI'`.,", c)) continue; - if (FLAG(v) && strchr("aeiou", tolower(c))) continue; - if (!FLAG(y) || (0x80&janice[rand])) - if (c<'0' || (c>'9' && c<'A') || (c>'Z' && c<'a') || c>'z') continue; - if (TT.r && strchr(TT.r, c)) continue; - - toybuf[ii++] = c; - } - if (FLAG(1) || (x += length+1)+length>=xx) x = 0; - xprintf("%.*s%c", length, toybuf, x ? ' ' : '\n'); - } - if (x) xputc('\n'); -} -- cgit v1.2.3