commit c992a1e9b1b3f12475053356a5e9e2f0381211f3 from: Omar Polo date: Sat Dec 03 16:50:36 2022 UTC plass: remove the `gen' sub-command; now there is pwg(1) commit - ee89c9f13862af202295b29031eb7cb52a102e88 commit + c992a1e9b1b3f12475053356a5e9e2f0381211f3 blob - eb099a81d3d91d86457e11ad8d302f809ac5f4f7 blob + 3f3457fa3dc0ba04d7c75cc02170f341bbacd996 --- plass +++ plass @@ -31,16 +31,9 @@ my $got = $ENV{'PLASS_GOT'} // 'got'; my $gpg = $ENV{'PLASS_GPG'} // 'gpg'; my @gpg_flags = qw(--quiet --compress-algo=none --no-encrypt-to --use-agent); -my $default_chars = $ENV{'PLASS_CHARS'} // '!-~'; -my $default_length = $ENV{'PLASS_LENGTH'}; -if (!defined($default_length) || $default_length <= 0) { - $default_length = 32; -} - my %subcmd = ( cat => [\&cmd_cat, "entries..."], find => [\&cmd_find, "[pattern]"], - gen => [\&cmd_gen, "[-nq] [-c chars] [-l length] entry"], mv => [\&cmd_mv, "from to"], rm => [\&cmd_rm, "entries..."], tee => [\&cmd_tee, "[-q] entry"], @@ -79,26 +72,6 @@ sub name2file { return $f; } -# tr -cd -- $chars < /dev/urandom | dd bs=$len count=1 status=none -sub gen { - my ($chars, $length) = @_; - my $pass = ""; - - open(my $fh, '<:raw', '/dev/urandom') - or die "can't open /dev/urandom: $!"; - my $l = $length; - while ($l >= 0) { - read($fh, my $t, $length * 4) - or die "failed to read /dev/urandom: $!"; - $t =~ s/[^$chars]//g; - $l -= length($t); - $pass .= $t; - } - close($fh); - - return substr($pass, 0, $length); -} - sub mkdirs { my $dir = shift; my $parent = dirname $dir; @@ -214,38 +187,6 @@ sub cmd_find { map { say $_ } passfind(shift @ARGV); } -sub cmd_gen { - my $chars = $default_chars; - my $length = $default_length; - my $nop; - my $q; - - GetOptions( - 'c=s' => sub { $chars = $_[1] }, - 'h|?' => \&usage, - 'l=i' => sub { $length = $_[1] }, - 'n' => \$nop, - 'q' => \$q, - ) or usage; - - my $pass = gen($chars, $length) . "\n"; - if ($nop) { - say $pass; - return; - } - - usage if @ARGV != 1; - - my $name = shift @ARGV; - my $file = name2file $name; - my $renamed = -f $file; - - writepass($file, $pass); - got_add $file; - got_ci($renamed ? "update $name" : "+$name"); - say $pass unless $q; -} - # TODO: handle moving directories? sub cmd_mv { GetOptions('h|?' => \&usage) or usage; blob - a03ee671274d85976574254d923ccb99acb465b6 blob + 7d082e280d93dd2cc7c3288bcada4baa9b8a8e87 --- plass.1 +++ plass.1 @@ -33,7 +33,6 @@ A password store is a .Xr got 1 repository with a worktree checked out at .Pa ~/.password-store -.Pq or Ev PLASS_STORE . The only restriction is that a special file called .Pa .gpg-id containing the GPG recipient must exist in the root of the directory tree @@ -64,27 +63,6 @@ in the given order. .It Cm find Op Ar pattern Print the entries of the store one per line, optionally filtered by .Ar pattern . -.It Cm gen Oo Fl nq Oc Oo Fl c Ar chars Oc Oo Fl l Ar length Oc Ar entry -Generate and persist a password for the given -.Ar entry -in the store. -.Fl c -can be used to control the characters allowed in the password -(by default -.Dq !-~ -i.e. all the printable ASCII characters) -and -.Fl l -the length -.Pq 32 by default . -Unless the -.Fl q -flag is provided, print the generated password. -If the -.Fl n -flag is given the password won't be persisted and the -.Ar entry -argument is optional. .It Cm mv Ar from Ar to Rename a password entry, doesn't work with directories. .Ar from @@ -104,8 +82,6 @@ option is given. .El .Sh ENVIRONMENT .Bl -tag -width Ds -.It Ev PLASS_CHARS -default range of characters to use to generate passwords. .It Ev PLASS_GOT Path to the .Xr got 1 @@ -114,10 +90,8 @@ executable. Path to the .Xr gpg 1 executable. -.It Ev PLASS_LENGTH -Default length for the generated passwords. .It Ev PLASS_STORE -Path to the password store directory tree. +Alternative path to the password store directory tree. .El .Sh FILES .Bl -tag -width Ds @@ -149,9 +123,9 @@ delete and check out it again using .Xr got 1 . .Pp -To generate a temporary random password use +Generate a random password and save it to the clipboard: .Bd -literal -offset indent -$ plass gen -n +$ pwg | plass tee entry/name | xsel -b .Ed .Pp Display the entries matching @@ -163,7 +137,8 @@ $ plass find key | rs .Sh SEE ALSO .Xr got 1 , .Xr gpg 1 , -.Xr pass 1 +.Xr pass 1 , +.Xr pwg 1 .Sh HISTORY .Nm was heavily influenced by