summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-01-31 18:30:59 -0500
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-01-31 18:30:59 -0500
commitc700e9b0dcede303ed1f160ba51f564fd314d2e3 (patch)
tree579690c1cb9e9112aa2fe4924a1c570fee357dcf /src
parent7d4b4815db8ba2f6f984a18a90b50032cf9158ba (diff)
parent0d36aebed69b154903e158a4c0f5cc8707cf5168 (diff)
merging from jrollins
Diffstat (limited to 'src')
-rwxr-xr-xsrc/monkeysphere-host39
-rwxr-xr-xsrc/subcommands/mh/add-hostname6
-rwxr-xr-xsrc/subcommands/mh/add-revoker4
-rwxr-xr-xsrc/subcommands/mh/diagnostics7
-rwxr-xr-xsrc/subcommands/mh/extend-key4
-rwxr-xr-xsrc/subcommands/mh/gen-key16
-rwxr-xr-xsrc/subcommands/mh/import-key2
-rwxr-xr-xsrc/subcommands/mh/publish-key4
-rwxr-xr-xsrc/subcommands/mh/revoke-hostname6
-rwxr-xr-xsrc/subcommands/mh/revoke-key4
-rwxr-xr-xsrc/subcommands/mh/show-key37
11 files changed, 65 insertions, 64 deletions
diff --git a/src/monkeysphere-host b/src/monkeysphere-host
index 19ab5fc..1f68256 100755
--- a/src/monkeysphere-host
+++ b/src/monkeysphere-host
@@ -20,11 +20,6 @@ export SYSSHAREDIR
SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere/host"}
export SYSDATADIR
-# monkeysphere temp directory, in sysdatadir to enable atomic moves of
-# authorized_keys files
-MSTMPDIR="${SYSDATADIR}/tmp"
-export MSTMPDIR
-
# UTC date in ISO 8601 format if needed
DATE=$(date -u '+%FT%T')
@@ -53,13 +48,12 @@ subcommands:
publish-key (p) publish server host key to keyserver
expert
- import-key (i) NAME[:PORT] import existing ssh key to gpg
+ import-key (i) [NAME[:PORT]] import existing ssh key to gpg
--keyfile (-f) FILE key file to import
--expire (-e) EXPIRE date to expire
- gen-key (g) NAME[:PORT] generate gpg key for the host
+ gen-key (g) [NAME[:PORT]] generate gpg key for the host
--length (-l) BITS key length in bits (2048)
--expire (-e) EXPIRE date to expire
- --revoker (-r) FINGERPRINT add a revoker
diagnostics (d) monkeysphere host status
version (v) show version number
@@ -119,6 +113,35 @@ check_host_keyring() {
|| failure "You don't appear to have a Monkeysphere host key on this server. Please run 'monkeysphere-server gen-key' first."
}
+# show info about the host key
+show_key() {
+ local fingerprintPGP
+ local fingerprintSSH
+ local ret=0
+
+ # FIXME: you shouldn't have to be root to see the host key fingerprint
+ if is_root ; then
+ check_host_keyring
+ fingerprintPGP=$(fingerprint_server_key)
+ gpg_authentication "--fingerprint --list-key --list-options show-unusable-uids $fingerprintPGP" 2>/dev/null
+ echo "OpenPGP fingerprint: $fingerprintPGP"
+ else
+ log info "You must be root to see host OpenPGP fingerprint."
+ ret='1'
+ fi
+
+ if [ -f "${SYSDATADIR}/ssh_host_rsa_key.pub" ] ; then
+ fingerprintSSH=$(ssh-keygen -l -f "${SYSDATADIR}/ssh_host_rsa_key.pub" | \
+ awk '{ print $1, $2, $4 }')
+ echo "ssh fingerprint: $fingerprintSSH"
+ else
+ log info "SSH host key not found."
+ ret='1'
+ fi
+
+return $ret
+}
+
########################################################################
# MAIN
########################################################################
diff --git a/src/subcommands/mh/add-hostname b/src/subcommands/mh/add-hostname
index fc1ae96..7726a29 100755
--- a/src/subcommands/mh/add-hostname
+++ b/src/subcommands/mh/add-hostname
@@ -12,6 +12,8 @@
# add hostname user ID to server key
+add_hostname() {
+
local userID
local fingerprint
local tmpuidMatch
@@ -61,7 +63,7 @@ if echo "$adduidCommand" | \
# update the trustdb for the authentication keyring
gpg_authentication "--check-trustdb"
- show_server_key
+ show_key
echo
echo "NOTE: User ID added to key, but key not published."
@@ -69,3 +71,5 @@ if echo "$adduidCommand" | \
else
failure "Problem adding user ID."
fi
+
+}
diff --git a/src/subcommands/mh/add-revoker b/src/subcommands/mh/add-revoker
index 8783cd1..8c4651e 100755
--- a/src/subcommands/mh/add-revoker
+++ b/src/subcommands/mh/add-revoker
@@ -12,5 +12,9 @@
# add a revoker to the host key
+add_revoker() {
+
# FIXME: implement!
failure "not implemented yet!"
+
+}
diff --git a/src/subcommands/mh/diagnostics b/src/subcommands/mh/diagnostics
index f411e06..5b04b14 100755
--- a/src/subcommands/mh/diagnostics
+++ b/src/subcommands/mh/diagnostics
@@ -10,7 +10,10 @@
# They are Copyright 2008, and are all released under the GPL, version 3
# or later.
-# * check on the status and validity of the key and public certificates
+# check on the status and validity of the key and public certificates
+
+diagnostics() {
+
local seckey
local keysfound
local curdate
@@ -177,3 +180,5 @@ if [ "$problemsfound" -gt 0 ]; then
else
echo "Everything seems to be in order!"
fi
+
+}
diff --git a/src/subcommands/mh/extend-key b/src/subcommands/mh/extend-key
index 755fe13..8f1ecc2 100755
--- a/src/subcommands/mh/extend-key
+++ b/src/subcommands/mh/extend-key
@@ -12,6 +12,8 @@
# extend the lifetime of a host key:
+extend_key() {
+
local fpr=$(fingerprint_server_key)
local extendTo="$1"
@@ -27,3 +29,5 @@ EOF
echo
echo "NOTE: Host key expiration date adjusted, but not yet published."
echo "Run '$PGRM publish-key' to publish the new expiration date."
+
+}
diff --git a/src/subcommands/mh/gen-key b/src/subcommands/mh/gen-key
index 554c04c..8558441 100755
--- a/src/subcommands/mh/gen-key
+++ b/src/subcommands/mh/gen-key
@@ -14,7 +14,6 @@ local keyType="RSA"
local keyLength="2048"
local keyUsage="auth"
local keyExpire
-local revoker
local hostName=$(hostname -f)
local userID
local keyParameters
@@ -36,10 +35,6 @@ while true ; do
keyExpire="$2"
shift 2
;;
- -r|--revoker)
- revoker="$2"
- shift 2
- ;;
*)
if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then
failure "Unknown option '$1'.
@@ -65,15 +60,6 @@ Key-Usage: $keyUsage
Name-Real: $userID
Expire-Date: $keyExpire"
-# add the revoker field if specified
-# FIXME: the "1:" below assumes that $REVOKER's key is an RSA key.
-# FIXME: key is marked "sensitive"? is this appropriate?
-if [ "$revoker" ] ; then
- keyParameters=\
-"${keyParameters}
-Revoker: 1:${revoker} sensitive"
-fi
-
echo "The following key parameters will be used for the host private key:"
echo "$keyParameters"
@@ -113,4 +99,4 @@ gpg_authentication "--export-options export-minimal --armor --export 0x${fingerp
log info "SSH host public key in OpenPGP form: ${SYSDATADIR}/ssh_host_rsa_key.pub.gpg"
# show info about new key
-show_server_key
+show_key
diff --git a/src/subcommands/mh/import-key b/src/subcommands/mh/import-key
index bbeb37f..ac67711 100755
--- a/src/subcommands/mh/import-key
+++ b/src/subcommands/mh/import-key
@@ -81,4 +81,4 @@ gpg_authentication "--export-options export-minimal --armor --export 0x${fingerp
log info "SSH host public key in OpenPGP form: ${SYSDATADIR}/ssh_host_rsa_key.pub.gpg"
# show info about new key
-show_server_key
+show_key
diff --git a/src/subcommands/mh/publish-key b/src/subcommands/mh/publish-key
index 792d858..8b36a18 100755
--- a/src/subcommands/mh/publish-key
+++ b/src/subcommands/mh/publish-key
@@ -12,6 +12,8 @@
# publish server key to keyserver
+publish_key() {
+
read -p "Really publish host key to $KEYSERVER? (y/N) " OK; OK=${OK:=N}
if [ ${OK/y/Y} != 'Y' ] ; then
failure "key not published."
@@ -22,3 +24,5 @@ fingerprint=$(fingerprint_server_key)
# publish host key
gpg_authentication "--keyserver $KEYSERVER --send-keys '0x${fingerprint}!'"
+
+}
diff --git a/src/subcommands/mh/revoke-hostname b/src/subcommands/mh/revoke-hostname
index decac86..0a773a3 100755
--- a/src/subcommands/mh/revoke-hostname
+++ b/src/subcommands/mh/revoke-hostname
@@ -12,6 +12,8 @@
# revoke hostname user ID from host key
+revoke_hostname() {
+
local userID
local fingerprint
local tmpuidMatch
@@ -79,7 +81,7 @@ if echo "$revuidCommand" | \
# update the trustdb for the authentication keyring
gpg_authentication "--check-trustdb"
- show_server_key
+ show_key
echo
echo "NOTE: User ID revoked, but revocation not published."
@@ -87,3 +89,5 @@ if echo "$revuidCommand" | \
else
failure "Problem revoking user ID."
fi
+
+}
diff --git a/src/subcommands/mh/revoke-key b/src/subcommands/mh/revoke-key
index b4ce401..3810a0b 100755
--- a/src/subcommands/mh/revoke-key
+++ b/src/subcommands/mh/revoke-key
@@ -12,5 +12,9 @@
# revoke host key
+revoke_key() {
+
# FIXME: implement!
failure "not implemented yet!"
+
+}
diff --git a/src/subcommands/mh/show-key b/src/subcommands/mh/show-key
deleted file mode 100755
index c62ec16..0000000
--- a/src/subcommands/mh/show-key
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-# Monkeysphere host show-key subcommand
-#
-# The monkeysphere scripts are written by:
-# Jameson Rollins <jrollins@fifthhorseman.net>
-# Jamie McClelland <jm@mayfirst.org>
-# Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-#
-# They are Copyright 2008, and are all released under the GPL, version 3
-# or later.
-
-local fingerprintPGP
-local fingerprintSSH
-local ret=0
-
-# FIXME: you shouldn't have to be root to see the host key fingerprint
-if is_root ; then
- check_host_keyring
- fingerprintPGP=$(fingerprint_server_key)
- gpg_authentication "--fingerprint --list-key --list-options show-unusable-uids $fingerprintPGP" 2>/dev/null
- echo "OpenPGP fingerprint: $fingerprintPGP"
-else
- log info "You must be root to see host OpenPGP fingerprint."
- ret='1'
-fi
-
-if [ -f "${SYSDATADIR}/ssh_host_rsa_key.pub" ] ; then
- fingerprintSSH=$(ssh-keygen -l -f "${SYSDATADIR}/ssh_host_rsa_key.pub" | \
- awk '{ print $1, $2, $4 }')
- echo "ssh fingerprint: $fingerprintSSH"
-else
- log info "SSH host key not found."
- ret='1'
-fi
-
-return $ret