diff options
author | Matt Goins <mjgoins@openflows.com> | 2009-01-31 21:31:30 -0500 |
---|---|---|
committer | Matt Goins <mjgoins@openflows.com> | 2009-01-31 21:31:30 -0500 |
commit | af6f93d261025cd859996fce65e7edfc68fb1f34 (patch) | |
tree | ab92c8bc0b04c06a9ee38edfd46270fc40498140 /src/subcommands/m/import_subkey | |
parent | 487fffd53cd109fb7f6291735c1f5cb5a0df8eeb (diff) | |
parent | 5d9e91f20216702ad675244465157ad54cde75a4 (diff) |
Merge commit 'jrollins/master'
Diffstat (limited to 'src/subcommands/m/import_subkey')
-rw-r--r-- | src/subcommands/m/import_subkey | 54 |
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." +} |