summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2014-05-06 18:14:07 -0400
committerAndrew Cady <d@jerkface.net>2014-05-06 18:15:02 -0400
commitc3e54b0c9a274ed411294848d98c72fe3c204888 (patch)
treee1c0177e6ce357291b499eae0e07e121cce1e0fd /examples
parentdc1ea78355139f0cd8a67e64c5e2a3795339a625 (diff)
example showing how to export keys from chrome/firefox
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/browser-export.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/browser-export.sh b/examples/browser-export.sh
new file mode 100755
index 0000000..efb51de
--- /dev/null
+++ b/examples/browser-export.sh
@@ -0,0 +1,31 @@
1#!/bin/sh
2
3extract_certificate_and_private_key()
4{
5 passphrase_file=$(mktemp) || exit
6 echo asdf > $passphrase_file
7 local nssdb="$1" name="$2"
8 pk12util -d sql:"$nssdb" -n "$name" -w "$passphrase_file" -o /dev/stdout |
9 openssl pkcs12 -passin file:"$passphrase_file" -nodes
10 rm "$passphrase_file"
11}
12
13extract_public_key()
14{
15 local nssdb="$1" name="$2"
16 certutil -d sql:"$nssdb" -L -n "$name" -a | openssl x509 -pubkey -noout
17}
18
19for nssdb in "$HOME/.pki/nssdb" "$HOME"/.mozilla/firefox/*; do
20 [ -d "$nssdb" ] || continue
21 [ -e "$nssdb"/cert8.db -o -e "$nssdb"/cert9.db ] || continue
22 echo "nssdb=$nssdb" >&2
23 certutil -d sql:"$nssdb" -L | sed -ne 's/ *.,.,.$//p' |
24 while read name; do
25
26# certutil -d sql:"$nssdb" -K -n "$name"
27# extract_public_key "$nssdb" "$name"
28 extract_certificate_and_private_key "$nssdb" "$name"
29
30 done
31done