tests: Add test for issue 2959.
[gnupg.git] / tests / openpgp / verify.scm
index 2f03027..d3bd763 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 ;;
 ;; Two simple tests to check that verify fails for bad input data
  "Checking bogus signature"
  (lambda (char)
    (lettmp (x)
-     (pipe:do
-      (pipe:spawn `(,(tool 'mktdata) --char ,char "64"))
-      (pipe:write-to x (logior O_WRONLY O_CREAT O_BINARY) #o600))
+     (call-with-binary-output-file
+      x
+      (lambda (port)
+       (display (make-string 64 (integer->char (string->number char)))
+                port)))
      (if (= 0 (call `(,@GPG --verify ,x data-500)))
-        (error "no error code from verify"))))
- '("0x2d" "0xca"))
+        (fail "no error code from verify"))))
+ '("#x2d" "#xca"))
 
 ;; A plain signed message created using
 ;;  echo abc | gpg --homedir . --passphrase-fd 0 -u Alpha -z0 -sa msg
@@ -240,6 +243,9 @@ FWIAQUplk7JWbyRKAJ92ZJyJpWfzb0yc1s7MY65r2qEHrg==
 ;; An Ed25519 cleartext message with an R parameter of only 247 bits
 ;; so that the code to re-insert the stripped zero byte kicks in.  The
 ;; S parameter has 253 bits but that does not strip a full byte.
+;;
+;; Note that the message has a typo ("the the"), but this should not
+;; be fixed because it breaks this test.
 (define msg_ed25519_rshort "
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
@@ -321,7 +327,7 @@ GisM
           (pipe:defer (lambda (sink)
                         (display armored-file (fdopen sink "w"))))
           (pipe:spawn `(,@GPG --verify)))
-         (error "verification succeded but should not")))
+         (fail "verification succeeded but should not")))
  '(msg_olsols_asc_multiple msg_clsclss_asc_multiple))
 
 (for-each-p
@@ -331,7 +337,7 @@ GisM
          (pipe:do
           (pipe:echo (eval armored-file (current-environment)))
           (pipe:spawn `(,@GPG --verify)))
-         (error "verification succeded but should not")))
+         (fail "verification succeeded but should not")))
  '(bad_ls_asc bad_fols_asc bad_olsf_asc bad_ools_asc))