From: Micah Anderson Date: Sun, 22 Mar 2009 23:57:35 +0000 (-0400) Subject: Merge commit 'jrollins/master' X-Git-Tag: monkeysphere_0.25~32^2~6^2~1 X-Git-Url: https://codewiz.org/gitweb?p=monkeysphere.git;a=commitdiff_plain;h=abd2c7a17b57d7b802353c851c2150b07824a3a5;hp=a6603e05c8067efca6197ec435696c1a45bcc517 Merge commit 'jrollins/master' Conflicts: website/download.mdwn --- diff --git a/packaging/debian/changelog b/packaging/debian/changelog index 70fef9f..16e7f21 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,11 +1,11 @@ monkeysphere (0.25-1~pre) UNRELEASED; urgency=low * New upstream release: - - fix the marginal ui output so that it's not prefixed by the LOG_PREFIX + - update/fix the marginal ui output - use msmktempdir everywhere (avoid unwrapped calls to mktemp for portability) - -- Jameson Graef Rollins Sat, 07 Mar 2009 12:28:13 -0500 + -- Jameson Graef Rollins Wed, 18 Mar 2009 11:46:44 -0400 monkeysphere (0.24-1) unstable; urgency=low diff --git a/packaging/macports/Portfile b/packaging/macports/Portfile new file mode 100644 index 0000000..f9cf7a5 --- /dev/null +++ b/packaging/macports/Portfile @@ -0,0 +1,40 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 +# $Id$ + +PortSystem 1.0 + +name monkeysphere +version 0.24 +categories net +maintainers nomaintainer +platforms darwin +description use the OpenPGP web of trust to verify ssh connections + +long_description SSH key-based authentication is tried-and-true, \ + but it lacks a true Public Key Infrastructure for \ + key certification, revocation and expiration. \ + Monkeysphere is a framework that uses the OpenPGP \ + web of trust for these PKI functions. It can be \ + used in both directions: for users to get \ + validated host keys, and for hosts to authenticate \ + users. + +homepage http://web.monkeysphere.info/ +master_sites ??? +distname ${name}_${version} +worksrcdir ${name}-${version} +checksums md5 8590532f4702fa44027a6a583657c9ef + +depends_run bin:ssh:openssh \ + port:gnupg \ + port:perl5.10 \ + port:p5-crypt-rsa \ + port:p5-digest-sha1 \ + port:procmail + +build.target build +destroot.args PREFIX=${destroot}${prefix} \ + CONFDIR=${destroot}${prefix}/etc/monkeysphere \ + DBDIR=${destroot}${prefix}/var/lib/monkeysphere \ + MANDIR=${destroot}${prefix}/share/man \ + DOCDIR=${destroot}${prefix}/share/doc/monkeysphere diff --git a/src/share/m/gen_subkey b/src/share/m/gen_subkey index dbd9dd6..a0fa3ce 100644 --- a/src/share/m/gen_subkey +++ b/src/share/m/gen_subkey @@ -44,8 +44,7 @@ Type '$PGRM help' for usage." check_gpg_authentication_subkey "$keyID" # generate the list of commands that will be passed to edit-key - editCommands=$(cat </dev/null | awk '{ print $2, $3 }') - # FIXME: should we do any checks for failed keyscans, eg. host not - # found? + # retrieve the ssh key being offered by the host + sshKeyOffered=$(ssh-keyscan -t rsa -p "$PORT" "$HOST" 2>/dev/null \ + | awk '{ print $2, $3 }') # get the gpg info for userid gpgOut=$(gpg_user --list-key --fixed-list-mode --with-colon \ --with-fingerprint --with-fingerprint \ ="$userID" 2>/dev/null) - # find all 'pub' and 'sub' lines in the gpg output, which each - # represent a retrieved key for the user ID - echo "$gpgOut" | cut -d: -f1,2,5,10,12 | \ - while IFS=: read -r type validity keyid uidfpr usage ; do - case $type in - 'pub'|'sub') - # get the ssh key of the gpg key - sshKeyGPG=$(gpg2ssh "$keyid") - - # if one of keys found matches the one offered by the - # host, then output info - if [ "$sshKeyGPG" = "$sshKeyOffered" ] ; then - cat <"$sshKeyGPGFile" - sshFingerprint=$(ssh-keygen -l -f "$sshKeyGPGFile" | \ - awk '{ print $2 }') - rm -f "$sshKeyGPGFile" + sshKeyGPGFile=$(msmktempfile) + printf "%s" "$sshKeyGPG" >"$sshKeyGPGFile" + sshFingerprint=$(ssh-keygen -l -f "$sshKeyGPGFile" | \ + awk '{ print $2 }') + rm -f "$sshKeyGPGFile" - # get the sigs for the matching key - gpgSigOut=$(gpg_user --check-sigs \ - --list-options show-uid-validity \ - "$keyid") + # get the sigs for the matching key + gpgSigOut=$(gpg_user --check-sigs \ + --list-options show-uid-validity \ + "$keyid") - # output the sigs, but only those on the user ID - # we are looking for - echo "$gpgSigOut" | awk ' + # output the sigs, but only those on the user ID + # we are looking for + echo "$gpgSigOut" | awk ' { if (match($0,"^pub")) { print; } if (match($0,"^uid")) { ok=0; } @@ -89,51 +92,59 @@ if (match($0,"^uid.*'$userID'$")) { ok=1; print; } if (ok) { if (match($0,"^sig")) { print; } } } ' | log info - echo | log info + echo | log info - # output the other user IDs for reference - if (echo "$gpgSigOut" | grep "^uid" | grep -v -q "$userID") ; then - cat <