* defs.inc (all_hash_algos): See "all_cipher_algos", below.
authorDavid Shaw <dshaw@jabberwocky.com>
Wed, 18 Jul 2007 17:43:14 +0000 (17:43 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Wed, 18 Jul 2007 17:43:14 +0000 (17:43 +0000)
* sigs.test: Use it here, and also test with >=160 bit hashes for
DSA2.

checks/ChangeLog
checks/defs.inc
checks/sigs.test

index 906fe27..ab3318b 100644 (file)
@@ -1,3 +1,10 @@
+2007-07-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * defs.inc (all_hash_algos): See "all_cipher_algos", below.
+
+       * sigs.test: Use it here, and also test with >=160 bit hashes for
+       DSA2.
+
 2007-05-14  David Shaw  <dshaw@jabberwocky.com>
 
        * defs.inc (all_cipher_algos): New function to return all ciphers
index bf4de82..50fca94 100755 (executable)
@@ -134,6 +134,10 @@ all_cipher_algos () {
   ../g10/gpg --homedir . --version | grep "Cipher" | sed 's/^Cipher: //; s/,//g'
 }
 
+all_hash_algos () {
+  ../g10/gpg --homedir . --version | grep "Hash" | sed 's/^Hash: //; s/,//g'
+}
+
 set -e
 pgmname=`basename $0`
 #trap cleanup SIGHUP SIGINT SIGQUIT
index 2c3be5c..aec0004 100755 (executable)
@@ -2,45 +2,17 @@
 
 . $srcdir/defs.inc || exit 3
 
-#info Checking signatures
 for i in $plain_files $data_files; do
     echo "$usrpass1" | $GPG --passphrase-fd 0 -s -o x --yes $i
     $GPG -o y --yes x
     cmp $i y || error "$i: mismatch"
 done
 
-# Using the DSA sig key - only 160 bit hashes
-for da in ripemd160 sha1 ; do
-    for i in $plain_files; do
-       echo "$usrpass1" | $GPG --passphrase-fd 0 --digest-algo $da \
-                               -s -o x --yes $i
-       $GPG -o y --yes x
-       cmp $i y || error "$i: mismatch"
-       # process only the first one
-       break
-    done
-done
-
-# TODO: add the new SHAs here once we allow them to be used in new
-# documents.
-
-if have_pubkey_algo "RSA"; then
-    # Using the RSA sig key - all hashes
-    hash_algo_list="ripemd160 sha1 md5"
-    if have_hash_algo "SHA224"; then
-       hash_algo_list="$hash_algo_list sha224"
-    fi
-    if have_hash_algo "SHA256"; then
-       hash_algo_list="$hash_algo_list sha256"
-    fi
-    if have_hash_algo "SHA384"; then
-       hash_algo_list="$hash_algo_list sha384"
-    fi
-    if have_hash_algo "SHA512"; then
-       hash_algo_list="$hash_algo_list sha512"
-    fi
+for da in `all_hash_algos` ; do
+    echo_n "$da "
 
-    for da in $hash_algo_list ; do
+    # RSA key, so any hash is okay
+    if have_pubkey_algo "RSA"; then
        for i in $plain_files; do
            $GPG -u $usrname3 --digest-algo $da -s -o x --yes $i
            $GPG -o y --yes x
@@ -48,5 +20,18 @@ if have_pubkey_algo "RSA"; then
            # process only the first one
            break
        done
-    done
-fi
+    fi
+
+    # Using the DSA sig key - only 160 bit or larger hashes
+    if test $da != "MD5"; then
+        for i in $plain_files; do
+           echo "$usrpass1" | $GPG --passphrase-fd 0 --digest-algo $da \
+                               -s -o x --yes $i
+           $GPG -o y --yes x
+           cmp $i y || error "$i: mismatch"
+           # process only the first one
+           break
+        done
+    fi
+done
+echo_n "| "