blob: 873ed0298d24ae1e7a02e34359878eae73ee5967 (
plain)
- # -*-shell-script-*-
- # This should be sourced by bash (though we welcome changes to make it POSIX sh compliant)
- # Monkeysphere host gen-key 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.
- gen_key() {
- local hostName=$(hostname -f)
- local keyType="RSA"
- local keyLength="2048"
- local keyUsage="auth"
- local keyExpire="0"
- local userID
- # get options
- while true ; do
- case "$1" in
- -l|--length)
- keyLength="$2"
- shift 2
- ;;
- *)
- if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then
- failure "Unknown option '$1'.
- Type '$PGRM help' for usage."
- fi
- break
- ;;
- esac
- done
- hostName="$1"
- userID="ssh://${hostName}"
- # create host home
- mkdir -p "$GNUPGHOME_HOST"
- chmod 700 "$GNUPGHOME_HOST"
- log debug "generating host key..."
- gpg_host --batch --gen-key <<EOF
- Key-Type: $keyType
- Key-Length: $keyLength
- Key-Usage: $keyUsage
- Name-Real: $userID
- Expire-Date: $keyExpire
- %commit
- %echo done
- EOF
- # load the new host fpr into the fpr variable
- load_fingerprint_secret
- # export to ssh secret key file
- create_ssh_sec_file
- # export to ssh public key file
- create_ssh_pub_file
- # export to gpg public key to file
- create_gpg_pub_file
- # show info about new key
- show_key
- }
|