summaryrefslogtreecommitdiff
path: root/howler/howler
blob: 7e33471af152d4327b261d7ea2895fa276712501 (plain)
  1. #!/bin/sh
  2. # howler: server gpg key generator/publisher
  3. #
  4. # Written by
  5. # Jameson Rollins <jrollins@fifthhorseman.net>
  6. #
  7. # Copyright 2008, released under the GPL, version 3 or later
  8. CMD=$(basename $0)
  9. ########################################################################
  10. # FUNCTIONS
  11. ########################################################################
  12. failure() {
  13. echo "$1" >&2
  14. exit ${2:-'1'}
  15. }
  16. ########################################################################
  17. # MAIN
  18. ########################################################################
  19. MS_HOME=${MS_HOME:-/etc/monkeysphere}
  20. . "$MS_HOME"/monkeysphere.conf
  21. export GNUPGHOME
  22. KEY_TYPE=${KEY_TYPE:-RSA}
  23. KEY_LENGTH=${KEY_LENGTH:-2048}
  24. KEY_USAGE=${KEY_USAGE:-encrypt,auth}
  25. SERVICE=${SERVICE:-ssh}
  26. HOSTNAME=${HOSTNAME:-$(hostname -f)}
  27. USERID=${USERID:-"$SERVICE"://"$HOSTNAME"}
  28. echo "key parameters:"
  29. cat <<EOF
  30. Key-Type: $KEY_TYPE
  31. Key-Length: $KEY_LENGTH
  32. Key-Usage: $KEY_USAGE
  33. Name-Real: $USERID
  34. EOF
  35. read -p "generate key? [Y|n]: " OK; OK=${OK:=Y}
  36. if [ ${OK/y/Y} != 'Y' ] ; then
  37. failure "aborting."
  38. fi
  39. if gpg --list-key ="$USERID" > /dev/null 2>&1 ; then
  40. failure "key for '$USERID' already exists"
  41. fi
  42. echo "generating server key..."
  43. gpg --batch --gen-key <<EOF
  44. Key-Type: $KEY_TYPE
  45. Key-Length: $KEY_LENGTH
  46. Key-Usage: $KEY_USAGE
  47. Name-Real: $USERID
  48. %commit
  49. EOF
  50. read -p "publish key to $KEY_SERVER? [Y|n]: " OK; OK=${OK:=Y}
  51. if [ ${OK/y/Y} != 'Y' ] ; then
  52. failure "aborting."
  53. fi
  54. echo "sending key to keyserver '$KEYSERVER'..."
  55. keyID=$(gpg --list-key --with-colons ="$USERID" 2> /dev/null | grep '^pub:' | cut -d: -f5)
  56. # dummy command so as not to publish fakes keys during testing
  57. # eventually:
  58. #gpg --send-keys --keyserver "$KEYSERVER" "$keyID"
  59. echo "gpg --send-keys --keyserver $KEYSERVER $keyID"
  60. echo "done."