From f728df69bbb04ed21a437832c486590cc5a83684 Mon Sep 17 00:00:00 2001
From: Jameson Graef Rollins <jrollins@finestructure.net>
Date: Mon, 9 Feb 2009 00:21:40 -0500
Subject: [PATCH] Break out host export commands into gpg_host_export and
 gpg_host_export_to_ssh_file functions, and update the {gen,import}_key
 functions accordingly.

---
 src/monkeysphere-host   | 13 +++++++++++++
 src/share/mh/gen_key    | 12 ++++++------
 src/share/mh/import_key | 10 +++++-----
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/src/monkeysphere-host b/src/monkeysphere-host
index aa764db..bcb570b 100755
--- a/src/monkeysphere-host
+++ b/src/monkeysphere-host
@@ -97,6 +97,19 @@ gpg_host_edit() {
 	"0x${HOST_FINGERPRINT}!" "$@"
 }
 
+# export the host key to stdout
+gpg_host_export() {
+    gpg_host --export --armor --export-options export-minimal \
+	"0x${HOST_FINGERPRINT}!"
+}
+
+# export the host key to the monkeysphere host file key
+gpg_host_export_to_ssh_file() {
+    log debug "exporting openpgp public key..."
+    gpg_host_export > "${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
+    log info "SSH host public key in OpenPGP form: ${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
+}
+
 # output just key fingerprint
 fingerprint_host_key() {
     # set the pipefail option so functions fails if can't read sec key
diff --git a/src/share/mh/gen_key b/src/share/mh/gen_key
index eb951cf..c75ad65 100644
--- a/src/share/mh/gen_key
+++ b/src/share/mh/gen_key
@@ -79,15 +79,16 @@ chmod 700 "$GNUPGHOME_HOST"
 log verbose "generating host key..."
 echo "$keyParameters" | gpg_host --batch --gen-key
 
-# find the key fingerprint of the newly generated key
-fingerprint=$(fingerprint_host_key)
+# find the key fingerprint of the newly converted key
+HOST_FINGERPRINT=$(fingerprint_host_key)
+export HOST_FINGERPRINT
 
 # translate the private key to ssh format, and export to a file
 # for sshs usage.
 # NOTE: assumes that the primary key is the proper key to use
 log debug "exporting new secret key to ssh format..."
 (umask 077 && \
-	gpg_host --export-secret-key "$fingerprint" | \
+	gpg_host --export-secret-key "$HOST_FINGERPRINT" | \
 	openpgp2ssh "$fingerprint" > "${MHDATADIR}/ssh_host_rsa_key")
 log info "SSH host private key output to file: ${MHDATADIR}/ssh_host_rsa_key"
 
@@ -95,9 +96,8 @@ log debug "creating ssh public key..."
 ssh-keygen -y -f "${MHDATADIR}/ssh_host_rsa_key" > "${MHDATADIR}/ssh_host_rsa_key.pub"
 log info "SSH host public key output to file: ${MHDATADIR}/ssh_host_rsa_key.pub"
 
-log debug "exporting openpgp public key..."
-gpg_host --export-options export-minimal --armor --export "0x${fingerprint}!" > "${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
-log info "SSH host public key in OpenPGP form: ${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
+# export public key to file
+gpg_host_export_to_ssh_file
 
 # show info about new key
 show_key
diff --git a/src/share/mh/import_key b/src/share/mh/import_key
index 93afb0a..6a897b6 100644
--- a/src/share/mh/import_key
+++ b/src/share/mh/import_key
@@ -32,15 +32,15 @@ chmod 700 "$GNUPGHOME_HOST"
 
 log verbose "importing ssh key..."
 # translate ssh key to a private key
-PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" | gpg_host --import
+PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" | \
+    gpg_host --import
 
 # find the key fingerprint of the newly converted key
-fingerprint=$(fingerprint_host_key)
+HOST_FINGERPRINT=$(fingerprint_host_key)
+export HOST_FINGERPRINT
 
 # export public key to file
-log debug "exporting openpgp public key..."
-gpg_host --export-options export-minimal --armor --export "0x${fingerprint}!" > "${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
-log info "SSH host public key in OpenPGP form: ${MHDATADIR}/ssh_host_rsa_key.pub.gpg"
+gpg_host_export_to_ssh_file
 
 # show info about new key
 show_key
-- 
2.34.1