76 lines
1.6 KiB
Bash
76 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
rootdb="/etc/pki/nssdb"
|
|
userdb="$HOME/.pki/nssdb"
|
|
dbentry="Belgium eID"
|
|
libfile="/run/current-system/sw/libbeidpkcs11.so"
|
|
|
|
dbdir="$userdb"
|
|
|
|
case "$1" in
|
|
--help) cat << EOF
|
|
(Un)register $dbentry with NSS-compatible browsers.
|
|
|
|
Usage: `basename "$0"` [OPTION] ACTION [LIBRARY]
|
|
|
|
Options:
|
|
--db PATH use custom NSS database directory PATH
|
|
--user use user NSS database $userdb (default)
|
|
--system use global NSS database $rootdb
|
|
--help show this message
|
|
|
|
Actions:
|
|
add add $dbentry to NSS database
|
|
remove remove $dbentry from NSS database
|
|
show show $dbentry NSS database entry
|
|
|
|
Default arguments if unspecified:
|
|
LIBRARY $libfile
|
|
EOF
|
|
exit ;;
|
|
--db) dbdir="$2"
|
|
shift 2 ;;
|
|
--user) shift ;;
|
|
--system)
|
|
dbdir="$rootdb"
|
|
shift ;;
|
|
esac
|
|
|
|
if [ "$2" ]; then
|
|
libfile="$2"
|
|
if ! [ -f "$libfile" ]; then
|
|
echo "$0: error: '$libfile' not found" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
mkdir -p "$dbdir"
|
|
if ! [ -d "$dbdir" ]; then
|
|
echo "$0: error: '$dbdir' must be a writable directory" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "NSS database: $dbdir"
|
|
echo "BEID library: $libfile"
|
|
|
|
dbdir="sql:$dbdir"
|
|
|
|
case "$1" in
|
|
add) echo "Adding $dbentry to database:"
|
|
modutil -dbdir "$dbdir" -add "$dbentry" -libfile "$libfile" ||
|
|
echo "Tip: try removing the module before adding it again." ;;
|
|
remove) echo "Removing $dbentry from database:"
|
|
modutil -dbdir "$dbdir" -delete "$dbentry" ;;
|
|
show) echo "Displaying $dbentry database entry, if any:"
|
|
echo "Note: this may fail if you don't have the correct permissions." ;;
|
|
*) echo "$0: unknown action: '$1'" >&2
|
|
echo "Try --help for usage information."
|
|
exit 1 ;;
|
|
esac
|
|
|
|
ret=$?
|
|
|
|
modutil -dbdir "$dbdir" -list "$dbentry" 2>/dev/null
|
|
|
|
exit $ret
|