summaryrefslogtreecommitdiff
path: root/src/share/m/import_subkey
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-02-01 00:00:54 -0500
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-02-01 00:00:54 -0500
commitbd249afe1f74e2dfc451f73a261d0dfb4a8b58ca (patch)
tree6b579205e538dd7033ec78dbd373582f328c9311 /src/share/m/import_subkey
parent3ed4b369c782b96cfa5b067375585e0e757059f5 (diff)
parentbbbc5bb8accf1db41d6a95e227f028376823cddf (diff)
Merge commit 'jrollins/master'
Diffstat (limited to 'src/share/m/import_subkey')
-rw-r--r--src/share/m/import_subkey54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/share/m/import_subkey b/src/share/m/import_subkey
new file mode 100644
index 0000000..aa89958
--- /dev/null
+++ b/src/share/m/import_subkey
@@ -0,0 +1,54 @@
+# -*-shell-script-*-
+# This should be sourced by bash (though we welcome changes to make it POSIX sh compliant)
+
+# Monkeysphere import-subkey subcommand
+#
+# The monkeysphere scripts are written by:
+# Jameson Rollins <jrollins@finestructure.net>
+# Jamie McClelland <jm@mayfirst.org>
+# Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+#
+# They are Copyright 2008-2009, and are all released under the GPL,
+# version 3 or later.
+
+# import an existing ssh key as a gpg subkey
+
+import_subkey() {
+ local keyFile="~/.ssh/id_rsa"
+ local keyExpire
+ local keyID
+ local gpgOut
+ local userID
+
+ # get options
+ while true ; do
+ case "$1" in
+ -f|--keyfile)
+ keyFile="$2"
+ shift 2
+ ;;
+ -e|--expire)
+ keyExpire="$2"
+ shift 2
+ ;;
+ *)
+ if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then
+ failure "Unknown option '$1'.
+Type '$PGRM help' for usage."
+ fi
+ break
+ ;;
+ esac
+ done
+
+ log verbose "importing ssh key..."
+ fifoDir=$(mktemp -d ${TMPDIR:-/tmp}/tmp.XXXXXXXXXX)
+ (umask 077 && mkfifo "$fifoDir/pass")
+ ssh2openpgp | gpg --passphrase-fd 3 3< "$fifoDir/pass" --expert --command-fd 0 --import &
+
+ passphrase_prompt "Please enter your passphrase for $keyID: " "$fifoDir/pass"
+
+ rm -rf "$fifoDir"
+ wait
+ log verbose "done."
+}