summaryrefslogtreecommitdiff
path: root/src/subcommands/m/import-subkey
diff options
context:
space:
mode:
authorJameson Graef Rollins <jrollins@finestructure.net>2009-01-31 20:35:43 -0500
committerJameson Graef Rollins <jrollins@finestructure.net>2009-01-31 20:39:24 -0500
commit54b8a4cdbedafdde87cfa35dc61a48d6a2d46bc6 (patch)
tree3f9a1c4123c073a99126b532ec4bbe0962eebd47 /src/subcommands/m/import-subkey
parent2b5cd0f910f28a601bcecfe68cdfc1ffd9b1362c (diff)
break out subfunctions from monkeysphere command
Diffstat (limited to 'src/subcommands/m/import-subkey')
-rw-r--r--src/subcommands/m/import-subkey54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/subcommands/m/import-subkey b/src/subcommands/m/import-subkey
new file mode 100644
index 0000000..aa89958
--- /dev/null
+++ b/src/subcommands/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."
+}