2 # passman -- simple password manager
3 # Copyright (C) 2013-2025 Sergey Matveev <stargrave@stargrave.org>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 3 of the License.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 DB=${PASSMANDB:-$HOME/.passmandb}
21 # age -d $DB | zstd -d
22 cmenctool -p -d <$DB | zstd -d
27 %mandatory: name passwd
35 zstd | cmenctool -p -embed
39 dd if=/dev/random bs=16 count=1 status=none | base64 | tr "+/" "-_" | tr -d =
43 xclip -in -selection $1
47 trap "rm -f $tmp ${DB}.tmp" HUP PIPE INT QUIT TERM EXIT
50 dec | recsel -e "name ~ '$1'" >$tmp
51 [ $(recsel -c $tmp) -eq 1 ] || {
52 recsel -C -P name $tmp
74 [ -n "$passwd" ] || passwd=$(generator)
76 dec | recins --verbose -t credential -f name -v "$dst" -f passwd -v "$passwd" >$tmp
86 name=$(recsel -P name $tmp)
88 data=$(recsel -P data $tmp)
89 [ -z "$data" ] || echo "Associated data: $data"
90 echo -n $(recsel -P passwd $tmp) | cliper clipboard
91 echo -n ${name##*/} | cliper primary
93 echo -n | cliper clipboard