[git] GnuPG - branch, master, updated. gnupg-2.1.17-36-g168c8c9

by Justus Winter cvs at cvs.gnupg.org
Thu Jan 5 17:10:58 CET 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  168c8c9d79a817c1f08a9ef976dab377f8c4c69e (commit)
       via  4ded213698123a425393b89a800fda2a4ec5229d (commit)
      from  38671cfe5a2a40bb991619f4cb992c42b5f1e8cd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 168c8c9d79a817c1f08a9ef976dab377f8c4c69e
Author: Justus Winter <justus at g10code.com>
Date:   Thu Jan 5 17:05:59 2017 +0100

    tests: New test for --{show,override}-session-key.
    
    * tests/openpgp/Makefile.am (XTESTS): Add new test.
    * tests/openpgp/decrypt-session-key.scm: New file.
    
    Signed-off-by: Justus Winter <justus at g10code.com>

diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index c7ef5e6..c93857f 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -50,6 +50,7 @@ XTESTS = \
 	decrypt.scm \
 	decrypt-multifile.scm \
 	decrypt-dsa.scm \
+	decrypt-session-key.scm \
 	sigs.scm \
 	sigs-dsa.scm \
 	encrypt.scm \
diff --git a/tests/openpgp/decrypt-session-key.scm b/tests/openpgp/decrypt-session-key.scm
new file mode 100755
index 0000000..771b53d
--- /dev/null
+++ b/tests/openpgp/decrypt-session-key.scm
@@ -0,0 +1,45 @@
+#!/usr/bin/env gpgscm
+
+;; Copyright (C) 2017 g10 Code GmbH
+;;
+;; This file is part of GnuPG.
+;;
+;; GnuPG is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GnuPG is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+(load (with-path "defs.scm"))
+(setup-legacy-environment)
+
+(define (get-session-key filename)
+  (lettmp (sink)
+    (let* ((status' (call-popen `(, at gpg --status-fd=1 --decrypt
+					--show-session-key
+					--output ,sink ,filename) ""))
+	   (status (map (lambda (l)
+			  (assert (string-prefix? l "[GNUPG:] "))
+			  (string-splitp (substring l 9 (string-length l))
+					 char-whitespace? -1))
+			(string-split-newlines status'))))
+      (cadr (assoc "SESSION_KEY" status)))))
+
+(for-each-p
+ "Checking decryption of supplied files using the session key."
+ (lambda (name)
+   (let* ((source (in-srcdir (string-append name ".asc")))
+	  (key (get-session-key source)))
+     (with-ephemeral-home-directory
+      (tr:do
+       (tr:open source)
+       (tr:gpg "" `(--yes --decrypt --override-session-key ,key))
+       (tr:assert-identity name)))))
+ plain-files)

commit 4ded213698123a425393b89a800fda2a4ec5229d
Author: Justus Winter <justus at g10code.com>
Date:   Thu Jan 5 17:00:36 2017 +0100

    tests: Fix macro.
    
    * tests/openpgp/defs.scm (with-ephemeral-home-directory): Make
    hygienic, use define-macro, do not change to the ephemeral home
    directory.
    * tests/gpgsm/setup.scm: Change to the ephemeral home directory.
    * tests/openpgp/setup.scm: Likewise.
    
    Signed-off-by: Justus Winter <justus at g10code.com>

diff --git a/tests/gpgsm/setup.scm b/tests/gpgsm/setup.scm
index fdf277d..91821a0 100644
--- a/tests/gpgsm/setup.scm
+++ b/tests/gpgsm/setup.scm
@@ -24,6 +24,7 @@
 	(error "Usage: setup.scm --create-tarball <file> ..."))
 
 (with-ephemeral-home-directory
+ (chdir (getenv "GNUPGHOME"))
  (create-gpgsmhome)
  (stop-agent)
  (call-check `(,(tool 'gpgtar) --create --output ,(car tarball) ".")))
diff --git a/tests/openpgp/defs.scm b/tests/openpgp/defs.scm
index 863d128..837e096 100644
--- a/tests/openpgp/defs.scm
+++ b/tests/openpgp/defs.scm
@@ -222,14 +222,16 @@
 
 ;; Evaluate a sequence of expressions with an ephemeral home
 ;; directory.
-(macro (with-ephemeral-home-directory form)
-  `(let ((original-home-directory (getenv "GNUPGHOME")))
-     (with-temporary-working-directory
-      (define ephemeral-home-directory (getcwd))
-      (dynamic-wind
-	  (lambda () (setenv "GNUPGHOME" ephemeral-home-directory #t))
-	  (lambda () ,@(cdr form))
-	  (lambda () (setenv "GNUPGHOME" original-home-directory #t))))))
+(define-macro (with-ephemeral-home-directory . expressions)
+  (let ((original-home-directory (gensym))
+	(ephemeral-home-directory (gensym)))
+    `(let ((,original-home-directory (getenv "GNUPGHOME"))
+	   (,ephemeral-home-directory (mkdtemp)))
+       (finally (unlink-recursively ,ephemeral-home-directory)
+	 (dynamic-wind
+	     (lambda () (setenv "GNUPGHOME" ,ephemeral-home-directory #t))
+	     (lambda () , at expressions)
+	     (lambda () (setenv "GNUPGHOME" ,original-home-directory #t)))))))
 
 ;; Call GPG to obtain the hash sums.  Either specify an input file in
 ;; ARGS, or an string in INPUT.  Returns a list of (<algo>
diff --git a/tests/openpgp/setup.scm b/tests/openpgp/setup.scm
index abe1157..d13799d 100755
--- a/tests/openpgp/setup.scm
+++ b/tests/openpgp/setup.scm
@@ -23,6 +23,7 @@
 	(fail "Usage: setup.scm --create-tarball <file>"))
 
 (with-ephemeral-home-directory
+ (chdir (getenv "GNUPGHOME"))
  (create-gpghome)
  (create-legacy-gpghome)
  (stop-agent)

-----------------------------------------------------------------------

Summary of changes:
 tests/gpgsm/setup.scm                              |  1 +
 tests/openpgp/Makefile.am                          |  1 +
 ...onventional-mdc.scm => decrypt-session-key.scm} | 45 ++++++++++------------
 tests/openpgp/defs.scm                             | 18 +++++----
 tests/openpgp/setup.scm                            |  1 +
 5 files changed, 33 insertions(+), 33 deletions(-)
 copy tests/openpgp/{conventional-mdc.scm => decrypt-session-key.scm} (50%)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list