summary refs log tree commit diff
path: root/pkgs/tools/security/eid-mw/eid-nssdb.in
blob: a5f52167b36c3d32d19ad9d6b526ff81b4d89754 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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