summary refs log tree commit diff
path: root/pkgs/tools/security/eid-mw/eid-nssdb.in
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/security/eid-mw/eid-nssdb.in')
-rw-r--r--pkgs/tools/security/eid-mw/eid-nssdb.in75
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/tools/security/eid-mw/eid-nssdb.in b/pkgs/tools/security/eid-mw/eid-nssdb.in
new file mode 100644
index 00000000000..a5f52167b36
--- /dev/null
+++ b/pkgs/tools/security/eid-mw/eid-nssdb.in
@@ -0,0 +1,75 @@
+#!/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