Subject: [sup-devel] couple more gpg related patches

From: Hamish D <[email-masked]>
Date: Thu, 3 Feb 2011 23:27:18 +0000

I've uploaded a couple more patches to the gpgme branch and merged
them into next:

* one fixes the fingerprint of untrusted keys
* the other adds "untrusted" to the signature summary line when the
key is untrusted - ie when there is no web of trust from you to that
key.

Patches below for your reading pleasure. Someone tell me if you'd
rather have less detail from me.

Hamish Downer

commit 6f1b9d7e94496543eacc63807b99fa29059ed300
Author: Hamish Downer <[email-masked]>
Date:   Wed Feb 2 21:06:22 2011 +0000

    show the FULL key fingerprint, not just the first half

diff --git a/lib/sup/crypto.rb b/lib/sup/crypto.rb
index 967c09e..978e145 100644
--- a/lib/sup/crypto.rb
+++ b/lib/sup/crypto.rb
@@ -313,7 +313,7 @@ private
       if signature.validity != GPGME::GPGME_VALIDITY_FULL &&
signature.validity != GPGME::GPGME_VALIDITY_MARGINAL
         output_lines << "WARNING: This key is not certified with a
trusted signature!"
         output_lines << "There is no indication that the signature
belongs to the owner"
-        output_lines << "Full fingerprint is: " + (0..9).map {|i|
signature.fpr[(i*2),2]}.join(":")
+        output_lines << "Full fingerprint is: " + (0..9).map {|i|
signature.fpr[(i*4),4]}.join(":")
       else
         trusted = true
       end

commit 0e1f5e56dc7063104c52f1b2d03a3fd85573bc47
Author: Hamish Downer <[email-masked]>
Date:   Wed Feb 2 21:02:05 2011 +0000

    signature summary now states "untrusted" if the signing key is not trusted

diff --git a/lib/sup/crypto.rb b/lib/sup/crypto.rb
index 5a38f27..967c09e 100644
--- a/lib/sup/crypto.rb
+++ b/lib/sup/crypto.rb
@@ -153,16 +153,18 @@ EOS
       end
     end

+    summary_line =
simplify_sig_line(verify_result.signatures[0].to_s, all_trusted)
+
     if all_output_lines.length == 0
       Chunk::CryptoNotice.new :valid, "Encrypted message wasn't
signed", all_output_lines
     elsif valid
       if all_trusted
-        Chunk::CryptoNotice.new(:valid,
simplify_sig_line(verify_result.signatures[0].to_s), all_output_lines)
+        Chunk::CryptoNotice.new(:valid, summary_line, all_output_lines)
       else
-        Chunk::CryptoNotice.new(:valid_untrusted,
simplify_sig_line(verify_result.signatures[0].to_s), all_output_lines)
+        Chunk::CryptoNotice.new(:valid_untrusted, summary_line,
all_output_lines)
       end
     elsif !unknown
-      Chunk::CryptoNotice.new(:invalid,
simplify_sig_line(verify_result.signatures[0].to_s), all_output_lines)
+      Chunk::CryptoNotice.new(:invalid, summary_line, all_output_lines)
     else
       unknown_status all_output_lines
     end
@@ -274,8 +276,12 @@ private
   end

   # remove the hex key_id and info in ()
-  def simplify_sig_line sig_line
-    sig_line.sub(/from [0-9A-F]{16} /, "from ")
+  def simplify_sig_line sig_line, trusted
+    sig_line.sub!(/from [0-9A-F]{16} /, "from ")
+    if !trusted
+      sig_line.sub!(/Good signature/, "Good (untrusted) signature")
+    end
+    sig_line
   end

   def sig_output_lines signature
_______________________________________________
Sup-devel mailing list
[email-masked]
http://rubyforge.org/mailman/listinfo/sup-devel