#!/bin/sh -e
# passman -- simple password manager
-# Copyright (C) 2013-2023 Sergey Matveev (stargrave@stargrave.org)
+# Copyright (C) 2013-2025 Sergey Matveev <stargrave@stargrave.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
dec() {
if [ -s $DB ] ; then
- age -d $DB | zstd -d
+ # age -d $DB | zstd -d
+ cmenctool -p -d <$DB | zstd -d
else
cat <<EOF
-%rec: Credential
-%key: Name
-%mandatory: Name Passwd
-%allowed: Data
+%rec: credential
+%key: name
+%mandatory: name passwd
+%allowed: data
EOF
fi
}
enc() {
- zstd | age -p
+ # zstd | age -p
+ zstd | cmenctool -p -embed
}
generator() {
}
tmp=`mktemp`.rec
-trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
+trap "rm -f $tmp ${DB}.tmp" HUP PIPE INT QUIT TERM EXIT
finder() {
- dec | recsel -e "Name ~ '$1'" > $tmp
+ dec | recsel -e "name ~ '$1'" >$tmp
[ $(recsel -c $tmp) -eq 1 ] || {
- recsel -C -P Name $tmp
+ recsel -C -P name $tmp
exit 1
}
}
commit() {
- enc < $tmp > ${DB}.tmp
+ enc <$tmp >${DB}.tmp
fsync ${DB}.tmp
mv ${DB}.tmp $DB
}
[ -n "$dst" ]
[ -n "$passwd" ] || passwd=$(generator)
echo ${dst}...
- dec | recins -t Credential -f Name -v "$dst" -f Passwd -v "$passwd" > $tmp
+ dec | recins --verbose -t credential -f name -v "$dst" -f passwd -v "$passwd" >$tmp
commit
;;
mod)
- dec > $tmp
+ dec >$tmp
$EDITOR $tmp
commit
;;
*)
finder "$1"
- name=$(recsel -P Name $tmp)
+ name=$(recsel -P name $tmp)
echo $name >&2
- data=$(recsel -P Data $tmp)
+ data=$(recsel -P data $tmp)
[ -z "$data" ] || echo "Associated data: $data"
- echo -n $(recsel -P Passwd $tmp) | cliper clipboard
+ echo -n $(recsel -P passwd $tmp) | cliper clipboard
echo -n ${name##*/} | cliper primary
sleep 10
echo -n | cliper clipboard