summaryrefslogtreecommitdiff
path: root/src/seckey2sshagent
diff options
context:
space:
mode:
Diffstat (limited to 'src/seckey2sshagent')
-rwxr-xr-xsrc/seckey2sshagent52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/seckey2sshagent b/src/seckey2sshagent
new file mode 100755
index 0000000..1266db5
--- /dev/null
+++ b/src/seckey2sshagent
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# seckey2sshagent: this is a hack of a script to cope with the fact
+# that openpgp2ssh currently cannot support encrypted secret keys.
+
+# the basic operating principal is:
+
+# export the secret key in encrypted format to a new keyring
+
+# remove the passphrase in that keyring
+
+# use that keyring with openpgp2ssh
+
+# Authors: Daniel Kahn Gillmor <dkg@fifthhorseman.net>,
+# Jameson Rollins <jrollins@fifthhorseman.net>
+
+
+cleanup() {
+ echo -n "removing temp gpg home... " 1>&2
+ rm -rf $FOO
+ echo "done." 1>&2
+}
+
+trap cleanup EXIT
+
+#GPGID="$1"
+GPGID=$(echo "$1" | cut -c 25-)
+
+FOO=$(mktemp -d)
+
+gpg --export-secret-key $GPGID | GNUPGHOME="$FOO" gpg --import
+
+# idea to script the password stuff. not working.
+# read -s -p "enter gpg password: " PASSWD; echo
+# cmd=$(cat <<EOF
+# passwd
+# $PASSWD
+# \n
+# \n
+# \n
+# yes
+# save
+# EOF
+# )
+# echo -e "$cmd" | GNUPGHOME="$FOO" gpg --command-fd 0 --edit-key $GPGID
+
+GNUPGHOME="$FOO" gpg --edit-key $GPGID
+
+ln -s /dev/stdin "$FOO"/openpgp
+
+GNUPGHOME="$FOO" gpg --export-secret-key $GPGID | \
+ openpgp2ssh $GPGID | ssh-add -c "$FOO"/openpgp