Ported changes from 1.4.
[gnupg.git] / tests / openpgp / sigs.test
index 79a3a18..86b0cdc 100755 (executable)
@@ -1,48 +1,26 @@
 #!/bin/sh
+# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
+#           2007 Free Software Foundation, Inc.
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.  This file is
+# distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY, to the extent permitted by law; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 . $srcdir/defs.inc || exit 3
 
-set -x
-
-#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
@@ -50,5 +28,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 "| "