make sure MHTMPDIR is defined and created
[monkeysphere.git] / src / share / mh / import_key
index 99511a86095ef9f806a6aaa8b58052867c0f047a..e5982ca62a2f9bd0f418ae82bacdc918fe777575 100644 (file)
 
 import_key() {
 
+local keyFile
 local hostName
 local userID
 
-# check for presense of a key
-[ "$HOST_FINGERPRINT" ] && \
-    failure "An OpenPGP host key already exists."
-
-hostName=${1:-$(hostname -f)}
+keyFile="$1"
+[ -f "$keyFile" ]
 
+hostName=${2:-$(hostname -f)}
 userID="ssh://${hostName}"
 
 # create host home
-mkdir -p "$GNUPGHOME_HOST"
-chmod 700 "$GNUPGHOME_HOST"
+mkdir -p "${MHDATADIR}"
+mkdir -p "${MHTMPDIR}"
+mkdir -p "${GNUPGHOME_HOST}"
+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" <"$keyFile" \
+    | gpg_host --import
+
+# load the new host fpr into the fpr variable
+load_fingerprint_secret
 
-# find the key fingerprint of the newly converted key
-HOST_FINGERPRINT=$(get_host_fingerprint)
-export HOST_FINGERPRINT
+# export the host public key to the monkeysphere ssh pub key file
+log debug "creating ssh public key file..."
+ssh-keygen -y -f "$keyFile" > "$HOST_KEY_PUB"
+log info "SSH host public key file: $HOST_KEY_PUB"
 
-# export public key to file
-gpg_host_export_to_ssh_file
+# export to gpg public key to file
+create_gpg_pub_file
 
 # show info about new key
 show_key