Hello community,

here is the log from the commit of package gpg2.1687 for openSUSE:12.1:Update 
checked in at 2013-05-31 17:30:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/gpg2.1687 (Old)
 and      /work/SRC/openSUSE:12.1:Update/.gpg2.1687.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gpg2.1687"

Changes:
--------
New Changes file:

--- /dev/null   2013-05-23 01:40:31.032032505 +0200
+++ /work/SRC/openSUSE:12.1:Update/.gpg2.1687.new/gpg2.changes  2013-05-31 
17:33:37.000000000 +0200
@@ -0,0 +1,580 @@
+-------------------------------------------------------------------
+Mon May 13 13:08:03 UTC 2013 - [email protected]
+
+- security fixes:
+  * fix for CVE-2012-6085 (bnc#798465)
+    added gpg2-CVE-2012-6085.patch
+  * fix for bnc#780943
+    added gpg2-set_umask_before_open_outfile.patch
+
+-------------------------------------------------------------------
+Sat Oct  1 15:53:04 UTC 2011 - [email protected]
+
+- Test suite hangs in qemu-arm, workaround. 
+
+-------------------------------------------------------------------
+Wed Aug 31 10:00:35 UTC 2011 - [email protected]
+
+- link with -pie 
+
+-------------------------------------------------------------------
+Fri Aug 19 01:11:42 UTC 2011 - [email protected]
+
+- libcurl.m4 tests were broken, resulting in the usage
+  of a "fake" internal libcurl.
+
+-------------------------------------------------------------------
+Sat Aug  6 20:19:09 UTC 2011 - [email protected]
+
+- update to upstream 2.0.18
+ * Bug fix for newer versions of Libgcrypt.
+ * Support the SSH confirm flag and show SSH fingerprints in ssh
+   related pinentries.
+ * Improved dirmngr/gpgsm interaction for OCSP.
+ * Allow generation of card keys up to 4096 bit.
+- refresh patch gnupg-2.0.10-tmpdir.diff -> gnupg-2.0.18-tmpdir.diff
+- refresh patch gnupg-files-are-digests.patch -> 
gnupg-2.0.18-files-are-digests.patch
+
+-------------------------------------------------------------------
+Tue Mar 15 09:29:42 UTC 2011 - [email protected]
+
+- update to gnupg-2.0.17
+ * Allow more hash algorithms with the OpenPGP v2 card.
+ * The gpg-agent now tests for a new gpg-agent.conf on a HUP.
+ * Fixed output of "gpgconf --check-options".
+ * Fixed a bug where Scdaemon sends a signal to Gpg-agent running
+   in non-daemon mode.
+ * Fixed TTY management for pinentries and session variable update
+   problem.
+- drop gnupg-CVE-2010-2547.patch (in upstream)
+
+-------------------------------------------------------------------
+Fri Jan  7 13:24:17 CET 2011 - [email protected]
+
+- Removed obsolete BuildRequires of opensc-devel.
+
+-------------------------------------------------------------------
+Sun Oct 31 12:37:02 UTC 2010 - [email protected]
+
+- Use %_smp_mflags
+
+-------------------------------------------------------------------
+Wed Jul 28 09:39:00 UTC 2010 - [email protected]
+
+- gnupg-CVE-2010-2547.patch (bnc#625947)
+- renumber patches
+
+-------------------------------------------------------------------
+Mon Jul 19 21:49:40 UTC 2010 - [email protected]
+
+- update to gnupg-2.0.16
+ * If the agent's --use-standard-socket option is active, all tools
+   try to start and daemonize the agent on the fly.  In the past this
+   was only supported on W32; on non-W32 systems the new configure
+   option --use-standard-socket may now be used to use this feature by
+   default.
+ * The gpg-agent commands KILLAGENT and RELOADAGENT are now available
+   on all platforms.
+ * Minor bug fixes.
+- drop gnupg-2.0.14-s2kcount.patch (builds fine without it now)
+
+-------------------------------------------------------------------
+Mon Jun  7 09:40:32 UTC 2010 - [email protected]
+
+- add special provides to make sure that obs signd gets correct gpg version
+
+-------------------------------------------------------------------
+Fri Apr  9 12:47:11 UTC 2010 - [email protected]
+
+- fix deps
+  o libassuan-devel >= 2.0.0
+  o pth / libpth-devel >= 1.3.7
+- added BuildReq libcurl-devel >= 7.10
+- removed BuildReq openldap2
+  is already solved by openldap2-devel
+- removed unrecognized configure options
+  --enable-external-hkp, --enable-shared, --enable-static-rnd
+
+-------------------------------------------------------------------
+Wed Apr  7 14:19:11 UTC 2010 - [email protected]
+
+- add gnupg-dont-fail-with-seahorse-agent.patch (bnc#589994) 
+
+-------------------------------------------------------------------
+Wed Mar 31 13:47:00 UTC 2010 - [email protected]
+
+- update to gnupg-2.0.15 
+ * New command --passwd for GPG.
+ * Fixes a regression in 2.0.14 which prevented unprotection of new
+   or changed gpg-agent passphrases.
+ * Make use of libassuan 2.0 which is available as a DSO.
+
+-------------------------------------------------------------------
+Mon Mar 22 15:09:24 UTC 2010 - [email protected]
+
+- fix files-are-digests patch (bnc#469229)
+
+-------------------------------------------------------------------
+Wed Feb 17 13:29:18 CET 2010 - [email protected]
+
+- Update to version 2.0.14:
+  + The default for --include-cert is now to include all
+    certificates in the chain except for the root certificate.
+  + Numerical values may now be used as an alternative to the
+    debug-level keywords.
+  + The GPGSM --audit-log feature is now more complete.
+  + GPG now supports DNS lookups for SRV, PKA and CERT on W32.
+  + New GPGSM option --ignore-cert-extension.
+  + New and changed passphrases are now created with an iteration
+    count requiring about 100ms of CPU work.
+- Add gnupg-2.0.14-s2kcount.patch: use fixed s2k-count number
+  otherwise the gpg2 would want to consult gpg-agent which is not
+  yet installed in the mock chroot (Patch shamelessly stolen from
+  Fedora).
+
+-------------------------------------------------------------------
+Thu Jan 28 14:15:24 UTC 2010 - [email protected]
+
+- fix build for older distributions 
+
+-------------------------------------------------------------------
+Wed Jan 27 16:30:41 UTC 2010 - [email protected]
+
+- port files-are-digests patch from gpg1 (bnc#469229) 
+
+-------------------------------------------------------------------
+Tue Dec 15 20:56:35 CET 2009 - [email protected]
+
+- enable parallel building
+- SPARC needs large PIE model
+
+-------------------------------------------------------------------
+Sun Dec  6 08:52:32 UTC 2009 - [email protected]
+
+- change -lang require to recommended
+
+-------------------------------------------------------------------
+Fri Nov 13 14:37:58 UTC 2009 - [email protected]
+
+- update to gnupg-2.0.13
+ * GPG now generates 2048 bit RSA keys by default.  The default hash
+   algorithm preferences has changed to prefer SHA-256 over SHA-1.
+   2048 bit DSA keys are now generated to use a 256 bit hash algorithm
+ * The envvars XMODIFIERS, GTK_IM_MODULE and QT_IM_MODULE are now
+   passed to the Pinentry to make SCIM work.
+ * The GPGSM command --gen-key features a --batch mode and implements
+   all features of gpgsm-gencert.sh in standard mode.
+ * New option --re-import for GPGSM's IMPORT server command.
+ * Enhanced writing of existing keys to OpenPGP v2 cards.
+ * Add hack to the internal CCID driver to allow the use of some
+   Omnikey based card readers with 2048 bit keys.
+ * GPG now repeatly asks the user to insert the requested OpenPGP
+   card.  This can be disabled with --limit-card-insert-tries=1.
+ * Minor bug fixes.
+- drop gnupg-2.0.4-default-tty.diff
+
+-------------------------------------------------------------------
+Thu Jun 18 13:22:00 CEST 2009 - [email protected]
+
+- update to gnupg-2.0.12
+ * GPGSM now always lists ephemeral certificates if specified by
+   fingerprint or keygrip.
+ * New command "KEYINFO" for GPG_AGENT.  GPGSM now also returns
+   information about smartcards.
+ * Made sure not to leak file descriptors if running gpg-agent with a
+   command.  Restore the signal mask to solve a problem in Mono.
+ * Changed order of the confirmation questions for root certificates
+   and store negative answers in trustlist.txt.
+ * Better synchronization of concurrent smartcard sessions.
+ * Support 2048 bit OpenPGP cards.
+ * Support Telesec Netkey 3 cards.
+ * The gpg-protect-tool now uses gpg-agent via libassuan.
+ * Changed code to avoid a possible Mac OS X system freeze.
+- drop gpg2-fix-rtsignals.patch (fixed upstream)
+- drop gnupg-1.9.22-ccid-driver-fix.diff (unused)
+
+-------------------------------------------------------------------
+Thu Jun 11 11:19:58 CEST 2009 - [email protected]
++++ 383 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.1:Update/.gpg2.1687.new/gpg2.changes

New:
----
  gnupg-2.0.18-files-are-digests.patch
  gnupg-2.0.18-tmpdir.diff
  gnupg-2.0.18.tar.bz2
  gnupg-2.0.4-install_tools.diff
  gnupg-2.0.9-RSA_ES.patch
  gnupg-2.0.9-langinfo.patch
  gnupg-broken-curl-test.patch
  gnupg-dont-fail-with-seahorse-agent.patch
  gpg2-CVE-2012-6085.patch
  gpg2-set_umask_before_open_outfile.patch
  gpg2.changes
  gpg2.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gpg2.spec ++++++
#
# spec file for package gpg2
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           gpg2
Version:        2.0.18
Release:        0
BuildRequires:  expect
BuildRequires:  fdupes
BuildRequires:  libadns-devel
BuildRequires:  libassuan-devel >= 2.0.0
BuildRequires:  libcurl-devel >= 7.10
BuildRequires:  libgcrypt-devel >= 1.4.0
BuildRequires:  libgpg-error-devel >= 1.7
BuildRequires:  libksba-devel >= 1.0.7
BuildRequires:  libusb-devel
BuildRequires:  openldap2-devel
BuildRequires:  readline-devel
BuildRequires:  zlib-devel
%if 0%{?suse_version} >= 1120
BuildRequires:  libpth-devel >= 1.3.7
%else
BuildRequires:  pth >= 1.3.7
%endif
Url:            http://www.gnupg.org/aegypten2/
PreReq:         %install_info_prereq
Requires:       dirmngr
Requires:       pinentry
Recommends:     %name-lang = %{version}
Provides:       gnupg = %{version}
Provides:       gpg = 1.4.9
Provides:       newpg
# special feature needed for OBS signd
Provides:       gpg2_signd_support
Obsoletes:      gpg < 1.4.9
Summary:        GnuPG 2
License:        GPL-2.0+
Group:          Productivity/Networking/Security
Source:         gnupg-%{version}.tar.bz2
Patch1:         gnupg-2.0.18-tmpdir.diff
Patch2:         gnupg-2.0.4-install_tools.diff
Patch3:         gnupg-2.0.9-RSA_ES.patch
Patch4:         gnupg-2.0.9-langinfo.patch
Patch5:         gnupg-2.0.18-files-are-digests.patch
Patch6:         gnupg-dont-fail-with-seahorse-agent.patch
Patch7:         gnupg-broken-curl-test.patch
Patch8:         gpg2-CVE-2012-6085.patch
Patch9:         gpg2-set_umask_before_open_outfile.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
GnuPG 2 is the successor of "GnuPG" or GPG. It provides: GPGSM,
gpg-agent, and a keybox library.

%lang_package
%prep
%setup  -q -n gnupg-%version
%patch1 -p1
%patch2
%patch3 -p1
%patch4
%patch5 -p1
%patch6 -p1
%patch7
%patch8 -p1
%patch9 -p1

%build
autoreconf -fi
# build PIEs (position independent executables) for address space randomisation:
%ifarch s390x %sparc
# s390x needs to use the large PIE model (at least for gpg.c):
PIE="-fPIE" 
%else
PIE="-fpie"
%endif
export CFLAGS="%{optflags} ${PIE}"
export LDFLAGS=-pie
%configure \
    --libexecdir=%{_libdir} \
    --docdir=%{_docdir}/%{name} \
    --with-agent-pgm=%{_prefix}/bin/gpg-agent \
    --with-pinentry-pgm=%{_prefix}/bin/pinentry \
    --with-dirmngr-pgm=%{_prefix}/bin/dirmngr \
    --with-scdaemon-pgm=%{_prefix}/bin/scdaemon \
    --enable-ldap \
    --enable-gpgsm=yes \
    --enable-gpg \
    --with-gnu-ld

make %{?_smp_mflags}

%install
%makeinstall
mkdir -p $RPM_BUILD_ROOT/etc/gnupg/
# bnc#391347
install -m 644 doc/examples/gpgconf.conf $RPM_BUILD_ROOT/etc/gnupg
# delete to prevent fdupes from creating cross-partition hardlink
rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/gpg2/examples/gpgconf.conf
rm $RPM_BUILD_ROOT/usr/share/info/dir
# compat symlinks
ln -sf gpg2 $RPM_BUILD_ROOT/usr/bin/gpg
ln -sf gpgv2 $RPM_BUILD_ROOT/usr/bin/gpgv
ln -sf gpg2.1 $RPM_BUILD_ROOT/usr/share/man/man1/gpg.1
ln -sf gpgv2.1 $RPM_BUILD_ROOT/usr/share/man/man1/gpgv.1
# fix rpmlint invalid-lc-messages-dir:
rm -rf $RPM_BUILD_ROOT/%_datadir/locale/en@{bold,}quot
# additional files to documentation directory
install -m 644 AUTHORS COPYING ChangeLog NEWS THANKS TODO doc/FAQ 
$RPM_BUILD_ROOT/%{_docdir}/%{name}
%find_lang gnupg2
%if 0%{?suse_version} > 1020
%fdupes %buildroot
%endif

%check
%if ! 0%{?qemu_user_space_build}
make check
$RPM_BUILD_ROOT/usr/bin/gpgsplit -v -p pubsplit-                    
--uncompress <tests/openpgp/pubring.gpg  
$RPM_BUILD_ROOT/usr/bin/gpgsplit -v -p secsplit- --secret-to-public 
--uncompress <tests/openpgp/secring.gpg  
%endif

%post
%install_info --info-dir=%{_infodir} %{_infodir}/gnupg.info.gz

%postun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gnupg.info.gz

%files lang -f gnupg2.lang

%files
%defattr(-,root,root)
%doc %{_infodir}/gnupg*
%doc %{_mandir}/*/*.gz
%doc %{_docdir}/%{name}
%{_bindir}/*
%{_libdir}/[^d]*
%{_sbindir}/addgnupghome
%{_sbindir}/applygnupgdefaults
%{_datadir}/gnupg
%dir %{_sysconfdir}/gnupg
%config(noreplace) %{_sysconfdir}/gnupg/gpgconf.conf

%changelog
++++++ gnupg-2.0.18-files-are-digests.patch ++++++
diff -rup gnupg-2.0.18.orig/g10/gpg.c gnupg-2.0.18/g10/gpg.c
--- gnupg-2.0.18.orig/g10/gpg.c 2011-07-22 13:00:44.000000000 +0100
+++ gnupg-2.0.18/g10/gpg.c      2011-08-06 21:07:32.000000000 +0100
@@ -341,6 +341,7 @@ enum cmd_and_opt_values
     oTTYtype,
     oLCctype,
     oLCmessages,
+       oFilesAreDigests,
     oXauthority,
     oGroup,
     oUnGroup,
@@ -706,6 +707,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_s (oPersonalDigestPreferences, "personal-digest-preferences","@"),
   ARGPARSE_s_s (oPersonalCompressPreferences,
                                          "personal-compress-preferences", "@"),
+  ARGPARSE_s_n (oFilesAreDigests, "files-are-digests", "@"),
 
   /* Aliases.  I constantly mistype these, and assume other people do
      as well. */
@@ -1996,6 +1998,7 @@ main (int argc, char **argv)
     opt.def_sig_expire="0";
     opt.def_cert_expire="0";
     set_homedir ( default_homedir () );
+       opt.files_are_digests=0;
     opt.passphrase_repeat=1;
 
     /* Check whether we have a config file on the command line.  */
@@ -2484,6 +2487,7 @@ main (int argc, char **argv)
          case oPhotoViewer: opt.photo_viewer = pargs.r.ret_str; break;
          case oForceV3Sigs: opt.force_v3_sigs = 1; break;
          case oNoForceV3Sigs: opt.force_v3_sigs = 0; break;
+         case oFilesAreDigests: opt.files_are_digests = 1; break;
           case oForceV4Certs: opt.force_v4_certs = 1; break;
           case oNoForceV4Certs: opt.force_v4_certs = 0; break;
          case oForceMDC: opt.force_mdc = 1; break;
Only in gnupg-2.0.18/g10: gpg.c.orig
diff -rup gnupg-2.0.18.orig/g10/options.h gnupg-2.0.18/g10/options.h
--- gnupg-2.0.18.orig/g10/options.h     2011-07-22 13:00:44.000000000 +0100
+++ gnupg-2.0.18/g10/options.h  2011-08-06 21:07:32.000000000 +0100
@@ -194,6 +194,7 @@ struct
   int no_auto_check_trustdb;
   int preserve_permissions;
   int no_homedir_creation;
+  int files_are_digests;
   struct groupitem *grouplist;
   int mangle_dos_filenames;
   int enable_progress_filter;
diff -rup gnupg-2.0.18.orig/g10/sign.c gnupg-2.0.18/g10/sign.c
--- gnupg-2.0.18.orig/g10/sign.c        2011-07-22 13:00:44.000000000 +0100
+++ gnupg-2.0.18/g10/sign.c     2011-08-06 21:07:32.000000000 +0100
@@ -665,8 +665,12 @@ write_signature_packets (SK_LIST sk_list
             mk_notation_policy_etc (sig, NULL, sk);
           }
 
+       if (!opt.files_are_digests) {
         hash_sigversion_to_magic (md, sig);
        gcry_md_final (md);
+       } else if (sig->version >= 4) {
+           log_bug("files-are-digests doesn't work with v4 sigs\n");
+       }
 
        rc = do_sign( sk, sig, md, hash_for (sk) );
        gcry_md_close (md);
@@ -723,6 +727,8 @@ sign_file( strlist_t filenames, int deta
     SK_LIST sk_rover = NULL;
     int multifile = 0;
     u32 duration=0;
+       int sigclass = 0x00;
+       u32 timestamp = 0;
 
     pfx = new_progress_context ();
     afx = new_armor_context ();
@@ -739,7 +745,16 @@ sign_file( strlist_t filenames, int deta
        fname = NULL;
 
     if( fname && filenames->next && (!detached || encryptflag) )
-       log_bug("multiple files can only be detached signed");
+       log_bug("multiple files can only be detached signed\n");
+
+    if (opt.files_are_digests && (multifile || !fname))
+       log_bug("files-are-digests only works with one file\n");
+    if (opt.files_are_digests && !detached)
+       log_bug("files-are-digests can only write detached signatures\n");
+    if (opt.files_are_digests && !opt.def_digest_algo)
+       log_bug("files-are-digests needs --digest-algo\n");
+    if (opt.files_are_digests && opt.textmode)
+       log_bug("files-are-digests doesn't work with --textmode\n");
 
     if(encryptflag==2
        && (rc=setup_symkey(&efx.symkey_s2k,&efx.symkey_dek)))
@@ -767,7 +782,7 @@ sign_file( strlist_t filenames, int deta
       goto leave;
 
     /* prepare iobufs */
-    if( multifile )  /* have list of filenames */
+    if( multifile || opt.files_are_digests)  /* have list of filenames */
        inp = NULL; /* we do it later */
     else {
       inp = iobuf_open(fname);
@@ -900,7 +915,7 @@ sign_file( strlist_t filenames, int deta
        gcry_md_enable (mfx.md, hash_for(sk));
     }
 
-    if( !multifile )
+    if( !multifile && !opt.files_are_digests )
        iobuf_push_filter( inp, md_filter, &mfx );
 
     if( detached && !encryptflag && !RFC1991 )
@@ -955,6 +970,8 @@ sign_file( strlist_t filenames, int deta
 
     write_status_begin_signing (mfx.md);
 
+    sigclass = opt.textmode && !outfile? 0x01 : 0x00;
+
     /* Setup the inner packet. */
     if( detached ) {
        if( multifile ) {
@@ -995,6 +1012,45 @@ sign_file( strlist_t filenames, int deta
            if( opt.verbose )
                putc( '\n', stderr );
        }
+       else if (opt.files_are_digests) {
+           byte *mdb, ts[5];
+           size_t mdlen;
+           const char *fp;
+           int c, d;
+
+           gcry_md_final(mfx.md);
+           /* this assumes gcry_md_read returns the same buffer */
+           mdb = gcry_md_read(mfx.md, opt.def_digest_algo);
+               mdlen = gcry_md_get_algo_dlen(opt.def_digest_algo);
+           if (strlen(fname) != mdlen * 2 + 11)
+               log_bug("digests must be %d + @ + 5 bytes\n", mdlen);
+           d = -1;
+           for (fp = fname ; *fp; ) {
+               c = *fp++;
+               if (c >= '0' && c <= '9')
+                   c -= '0';
+               else if (c >= 'a' && c <= 'f')
+                   c -= 'a' - 10;
+               else if (c >= 'A' && c <= 'F')
+                   c -= 'A' - 10;
+               else
+                   log_bug("filename is not hex\n");
+               if (d >= 0) {
+                   *mdb++ = d << 4 | c;
+                   c = -1;
+                   if (--mdlen == 0) {
+                       mdb = ts;
+                       if (*fp++ != '@')
+                           log_bug("missing time separator\n");
+                   }
+               }
+               d = c;
+           }
+           sigclass = ts[0];
+           if (sigclass != 0x00 && sigclass != 0x01)
+               log_bug("bad cipher class\n");
+           timestamp = buffer_to_u32(ts + 1);
+       }
        else {
            /* read, so that the filter can calculate the digest */
            while( iobuf_get(inp) != -1 )
@@ -1012,8 +1068,8 @@ sign_file( strlist_t filenames, int deta
 
     /* write the signatures */
     rc = write_signature_packets (sk_list, out, mfx.md,
-                                  opt.textmode && !outfile? 0x01 : 0x00,
-                                 0, duration, detached ? 'D':'S');
+                                  sigclass,
+                                 timestamp, duration, detached ? 'D':'S');
     if( rc )
         goto leave;
 
++++++ gnupg-2.0.18-tmpdir.diff ++++++
diff -rup gnupg-2.0.18.orig/agent/gpg-agent.c gnupg-2.0.18/agent/gpg-agent.c
--- gnupg-2.0.18.orig/agent/gpg-agent.c 2011-08-04 10:57:02.000000000 +0100
+++ gnupg-2.0.18/agent/gpg-agent.c      2011-08-06 21:01:32.000000000 +0100
@@ -1002,6 +1002,10 @@ main (int argc, char **argv )
       gnupg_fd_t fd_ssh;
       pid_t pid;
 
+      char *tmp1, *tmp;
+      char *tmp2 = "gpg-XXXXXX/S.gpg-agent";
+      size_t len;
+
       /* Remove the DISPLAY variable so that a pinentry does not
          default to a specific display.  There is still a default
          display when gpg-agent was started using --display or a
@@ -1013,13 +1017,23 @@ main (int argc, char **argv )
         unsetenv ("DISPLAY");
 #endif
 
+      if ((tmp1 = getenv("TMPDIR")) == NULL)
+        tmp1 = "/tmp";
+
+      len = strlen(tmp1) + strlen(tmp2) + 10;
+      tmp = malloc(len);
+
+      snprintf(tmp, len, "%s%s%s", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" : "", 
tmp2);
 
       /* Create the sockets.  */
       socket_name = create_socket_name
-        ("S.gpg-agent", "/tmp/gpg-XXXXXX/S.gpg-agent");
-      if (opt.ssh_support)
+        ("S.gpg-agent", tmp);
+      if (opt.ssh_support) {
+        snprintf(tmp, len, "%s%s%s.ssh", tmp1, tmp1 && strlen(tmp1) > 0 ? "/" 
: "", tmp2);
        socket_name_ssh = create_socket_name
-          ("S.gpg-agent.ssh", "/tmp/gpg-XXXXXX/S.gpg-agent.ssh");
+          ("S.gpg-agent.ssh", tmp);
+      }
+      free(tmp);
 
       fd = create_server_socket (socket_name, 0, &socket_nonce);
       if (opt.ssh_support)
++++++ gnupg-2.0.4-install_tools.diff ++++++
Index: tools/Makefile.am
===================================================================
--- tools/Makefile.am.orig
+++ tools/Makefile.am
@@ -32,8 +32,8 @@ sbin_SCRIPTS = addgnupghome applygnupgde
 
 bin_SCRIPTS = gpgsm-gencert.sh
 if HAVE_USTAR
-# bin_SCRIPTS += gpg-zip
-noinst_SCRIPTS = gpg-zip
+bin_SCRIPTS += gpg-zip
+#noinst_SCRIPTS = gpg-zip
 endif
 
 if BUILD_SYMCRYPTRUN
@@ -51,14 +51,14 @@ endif
 
 bin_PROGRAMS = gpgconf gpg-connect-agent gpgkey2ssh ${symcryptrun} ${gpgtar}
 if !HAVE_W32_SYSTEM
-bin_PROGRAMS += watchgnupg gpgparsemail
+bin_PROGRAMS += watchgnupg gpgparsemail gpgsplit
 endif
 
 if !DISABLE_REGEX
 libexec_PROGRAMS = gpg-check-pattern
 endif
 
-noinst_PROGRAMS = clean-sat mk-tdata make-dns-cert gpgsplit
+noinst_PROGRAMS = clean-sat mk-tdata make-dns-cert
 
 common_libs = $(libcommon) ../jnlib/libjnlib.a ../gl/libgnu.a
 pwquery_libs = ../common/libsimple-pwquery.a
++++++ gnupg-2.0.9-RSA_ES.patch ++++++
# adds back support for deprecated RSA_E, RSA_S algorithms
Index: gnupg-2.0.13/g10/misc.c
===================================================================
--- gnupg-2.0.13.orig/g10/misc.c        2009-07-16 08:22:45.000000000 +0200
+++ gnupg-2.0.13/g10/misc.c     2009-11-13 13:19:39.000000000 +0100
@@ -1308,6 +1308,8 @@ pubkey_get_npkey( int algo )
 
   if (algo == GCRY_PK_ELG_E)
     algo = GCRY_PK_ELG;
+  if (algo == GCRY_PK_RSA_E || algo == GCRY_PK_RSA_S)
+    algo = GCRY_PK_RSA;
   if (gcry_pk_algo_info( algo, GCRYCTL_GET_ALGO_NPKEY, NULL, &n))
     n = 0;
   return n;
@@ -1321,6 +1323,8 @@ pubkey_get_nskey( int algo )
 
   if (algo == GCRY_PK_ELG_E)
     algo = GCRY_PK_ELG;
+  if (algo == GCRY_PK_RSA_E || algo == GCRY_PK_RSA_S)
+    algo = GCRY_PK_RSA;
   if (gcry_pk_algo_info( algo, GCRYCTL_GET_ALGO_NSKEY, NULL, &n ))
     n = 0;
   return n;
@@ -1334,6 +1338,8 @@ pubkey_get_nsig( int algo )
 
   if (algo == GCRY_PK_ELG_E)
     algo = GCRY_PK_ELG;
+  if (algo == GCRY_PK_RSA_E || algo == GCRY_PK_RSA_S)
+    algo = GCRY_PK_RSA;
   if (gcry_pk_algo_info( algo, GCRYCTL_GET_ALGO_NSIGN, NULL, &n))
     n = 0;
   return n;
@@ -1347,6 +1353,8 @@ pubkey_get_nenc( int algo )
   
   if (algo == GCRY_PK_ELG_E)
     algo = GCRY_PK_ELG;
+  if (algo == GCRY_PK_RSA_E || algo == GCRY_PK_RSA_S)
+    algo = GCRY_PK_RSA;
   if (gcry_pk_algo_info( algo, GCRYCTL_GET_ALGO_NENCR, NULL, &n ))
     n = 0;
   return n;
++++++ gnupg-2.0.9-langinfo.patch ++++++
# fix [bnc#305725] - non latin characters displayed incorrectly by pinentry
Index: jnlib/utf8conv.c
===================================================================
--- jnlib/utf8conv.c.orig       2008-11-04 15:39:06.000000000 +0100
+++ jnlib/utf8conv.c    2009-06-18 11:42:36.000000000 +0200
@@ -203,6 +203,7 @@ set_native_charset (const char *newset)
 #else /*!HAVE_W32_SYSTEM*/
       
 #ifdef HAVE_LANGINFO_CODESET
+         setlocale(LC_ALL, "");
       newset = nl_langinfo (CODESET);
 #else /*!HAVE_LANGINFO_CODESET*/
       /* Try to get the used charset from environment variables.  */
++++++ gnupg-broken-curl-test.patch ++++++
--- m4/libcurl.m4.orig
+++ m4/libcurl.m4
@@ -68,13 +68,7 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
 
      _libcurl_try_link=yes
 
-     if test -d "$_libcurl_with" ; then
-        LIBCURL_CPPFLAGS="-I$withval/include"
-        _libcurl_ldflags="-L$withval/lib"
-        AC_PATH_PROG([_libcurl_config],["$withval/bin/curl-config"])
-     else
        AC_PATH_PROG([_libcurl_config],[curl-config])
-     fi
 
      if test x$_libcurl_config != "x" ; then
         AC_CACHE_CHECK([for the version of libcurl],
@@ -141,7 +135,7 @@ AC_DEFUN([LIBCURL_CHECK_CONFIG],
            _libcurl_save_libs=$LIBS
            LIBS="$LIBCURL $LIBS"
 
-           AC_LINK_IFELSE([AC_LANG_PROGRAM([[include <curl/curl.h>]],[[
+           AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[
 /* Try and use a few common options to force a failure if we are
    missing symbols or cannot link. */
 int x;
++++++ gnupg-dont-fail-with-seahorse-agent.patch ++++++
---
 g10/passphrase.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: gnupg-2.0.15/g10/passphrase.c
===================================================================
--- gnupg-2.0.15.orig/g10/passphrase.c  2010-01-11 15:11:17.000000000 +0100
+++ gnupg-2.0.15/g10/passphrase.c       2010-04-07 16:06:49.000000000 +0200
@@ -72,7 +72,7 @@ encode_s2k_iterations (int iterations)
         {
           /* Don't print an error if an older agent is used.  */
           if (err && gpg_err_code (err) != GPG_ERR_ASS_PARAMETER)
-            log_error (_("problem with the agent: %s\n"), gpg_strerror (err));
+            log_info (_("problem with the agent: %s\n"), gpg_strerror (err));
           /* Default to 65536 which we used up to 2.0.13.  */
           return 96; 
         }
++++++ gpg2-CVE-2012-6085.patch ++++++
commit 498882296ffac7987c644aaf2a0aa108a2925471
Author: Werner Koch <[email protected]>
Date:   Thu Dec 20 09:43:41 2012 +0100

    gpg: Import only packets which are allowed in a keyblock.
    
    * g10/import.c (valid_keyblock_packet): New.
    (read_block): Store only valid packets.
    --
    
    A corrupted key, which for example included a mangled public key
    encrypted packet, used to corrupt the keyring.  This change skips all
    packets which are not allowed in a keyblock.
    
    GnuPG-bug-id: 1455
    
    (cherry-picked from commit 3a4b96e665fa639772854058737ee3d54ba0694e)

diff --git a/g10/import.c b/g10/import.c
index ba2439d..ad112d6 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -347,6 +347,27 @@ import_print_stats (void *hd)
 }
 
 
+/* Return true if PKTTYPE is valid in a keyblock.  */
+static int
+valid_keyblock_packet (int pkttype)
+{
+  switch (pkttype)
+    {
+    case PKT_PUBLIC_KEY:
+    case PKT_PUBLIC_SUBKEY:
+    case PKT_SECRET_KEY:
+    case PKT_SECRET_SUBKEY:
+    case PKT_SIGNATURE:
+    case PKT_USER_ID:
+    case PKT_ATTRIBUTE:
+    case PKT_RING_TRUST:
+      return 1;
+    default:
+      return 0;
+    }
+}
+
+
 /****************
  * Read the next keyblock from stream A.
  * PENDING_PKT should be initialzed to NULL
@@ -424,7 +445,7 @@ read_block( IOBUF a, PACKET **pending_pkt, KBNODE *ret_root 
)
            }
            in_cert = 1;
          default:
-           if( in_cert ) {
+           if (in_cert && valid_keyblock_packet (pkt->pkttype)) {
                if( !root )
                    root = new_kbnode( pkt );
                else

++++++ gpg2-set_umask_before_open_outfile.patch ++++++
Index: gnupg-2.0.20/g10/plaintext.c
===================================================================
--- gnupg-2.0.20.orig/g10/plaintext.c   2013-05-13 14:26:49.290737159 +0200
+++ gnupg-2.0.20/g10/plaintext.c        2013-05-13 14:43:21.740575875 +0200
@@ -25,6 +25,7 @@
 #include <errno.h>
 #include <assert.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 #ifdef HAVE_DOSISH_SYSTEM
 #include <fcntl.h> /* for setmode() */
 #endif
@@ -39,6 +40,9 @@
 #include "status.h"
 #include "i18n.h"
 
+/* define safe permissions for creating plaintext files */
+#define GPG_SAFE_PERMS (S_IRUSR | S_IWUSR)
+#define GPG_SAFE_UMASK (0777 & ~GPG_SAFE_PERMS)
 
 /****************
  * Handle a plaintext packet.  If MFX is not NULL, update the MDs
@@ -140,10 +144,15 @@ handle_plaintext( PKT_plaintext *pt, md_
        log_error(_("error creating `%s': %s\n"), fname, strerror(errno) );
        goto leave;
       }
-    else if( !(fp = fopen(fname,"wb")) ) {
-       rc = gpg_error_from_syserror ();
-       log_error(_("error creating `%s': %s\n"), fname, strerror(errno) );
-       goto leave;
+    else {
+       mode_t saved_umask = umask(GPG_SAFE_UMASK);
+       if( !(fp = fopen(fname,"wb")) ) {
+               rc = gpg_error_from_syserror ();
+               log_error(_("error creating `%s': %s\n"), fname, 
strerror(errno) );
+               umask(saved_umask);
+               goto leave;
+       }
+       umask(saved_umask);
     }
 #else /* __riscos__ */
     /* If no output filename was given, i.e. we constructed it,
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to