Hello community,

here is the log from the commit of package libgcrypt for openSUSE:Factory 
checked in at 2013-04-19 09:56:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgcrypt (Old)
 and      /work/SRC/openSUSE:Factory/.libgcrypt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libgcrypt", Maintainer is "mvysko...@suse.com"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libgcrypt/libgcrypt.changes      2013-03-25 
20:32:08.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libgcrypt.new/libgcrypt.changes 2013-04-19 
09:56:44.000000000 +0200
@@ -1,0 +2,12 @@
+Thu Apr 18 18:23:36 UTC 2013 - andreas.stie...@gmx.de
+
+- update to 1.5.2
+ * The upstream sources now contain the IDEA algorithm, dropping:
+   idea.c.gz
+   libgcrypt-1.5.0-idea.patch
+   libgcrypt-1.5.0-idea_codecleanup.patch
+ * Made the Padlock code work again (regression since 1.5.0).
+ * Fixed alignment problems for Serpent.
+ * Fixed two bugs in ECC computations.
+
+-------------------------------------------------------------------

Old:
----
  idea.c.gz
  libgcrypt-1.5.0-idea.patch
  libgcrypt-1.5.0-idea_codecleanup.patch
  libgcrypt-1.5.1.tar.bz2
  libgcrypt-1.5.1.tar.bz2.sig

New:
----
  libgcrypt-1.5.2.tar.bz2
  libgcrypt-1.5.2.tar.bz2.sig

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

Other differences:
------------------
++++++ libgcrypt.spec ++++++
--- /var/tmp/diff_new_pack.YQj4St/_old  2013-04-19 09:56:47.000000000 +0200
+++ /var/tmp/diff_new_pack.YQj4St/_new  2013-04-19 09:56:47.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libgcrypt
 %define libsoname %{name}11
 Url:            http://directory.fsf.org/wiki/Libgcrypt
-Version:        1.5.1
+Version:        1.5.2
 Release:        0
 Summary:        The GNU Crypto Library
 License:        GPL-2.0+ and LGPL-2.1+ and GPL-3.0+
@@ -27,15 +27,12 @@
 Source:         ftp://ftp.gnupg.org/gcrypt/libgcrypt/%{name}-%{version}.tar.bz2
 Source1:        
ftp://ftp.gnupg.org/gcrypt/libgcrypt/%{name}-%{version}.tar.bz2.sig
 Source2:        baselibs.conf
-Source3:        idea.c.gz
 # http://www.gnupg.org/signature_key.en.html
 Source4:        %{name}.keyring
 Patch0:         %{name}-ppc64.patch
 Patch1:         %{name}-strict-aliasing.patch
 Patch3:         %{name}-1.4.1-rijndael_no_strict_aliasing.patch
 Patch4:         %{name}-sparcv9.diff
-Patch5:         %{name}-1.5.0-idea.patch
-Patch6:         %{name}-1.5.0-idea_codecleanup.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  automake >= 1.11
 BuildRequires:  libgpg-error-devel >= 1.8
@@ -93,13 +90,10 @@
 %prep
 %{?gpg_verify: %gpg_verify %{S:1}}
 %setup -q -n %{name}-%{version}
-gzip -dc < %{S:3} > cipher/idea.c
 %patch0 -p1
 %patch1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
-%patch6 -p1
 
 %build
 # define ciphers to build

++++++ libgcrypt-1.5.1.tar.bz2 -> libgcrypt-1.5.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/AUTHORS new/libgcrypt-1.5.2/AUTHORS
--- old/libgcrypt-1.5.1/AUTHORS 2013-03-18 16:00:35.000000000 +0100
+++ new/libgcrypt-1.5.2/AUTHORS 2013-04-18 16:48:42.000000000 +0200
@@ -98,6 +98,11 @@
 open...@brainhub.org
 (cipher/ecc.c and related files)
 
+LIBGCRYPT       Vladimir Serbinenko  2012-04-26
+Assigns Past and Future Changes
+phco...@gmail.com
+(cipher/serpent.c)
+
 
 Authors with a DCO
 ==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/ChangeLog 
new/libgcrypt-1.5.2/ChangeLog
--- old/libgcrypt-1.5.1/ChangeLog       2013-03-18 16:32:24.000000000 +0100
+++ new/libgcrypt-1.5.2/ChangeLog       2013-04-18 17:07:43.000000000 +0200
@@ -1,5 +1,96 @@
+2013-04-18  Werner Koch  <w...@gnupg.org>
+
+       Release 1.5.2.
+
+       Update LT version for the next release.
+       * configure.ac: Set LT version to C19/A8/R1.
+
+       mpi: Yet another fix to get option flag munging right.
+       * cipher/Makefile.am (o_flag_munging): Yet another fix.
+
+       cipher: Fix regression in Padlock support.
+       * cipher/rijndael.c (do_setkey): Remove dummy padlock key generation 
case
+       and use the standard one.
+
+       Fix alignment problem in idea.c.
+       * cipher/idea.c (cipher): Rework parameter use to fix alignment
+       problems.
+
+       * cipher/idea.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Remove unused macros.
+
+2013-04-18  Vladimir Serbinenko  <phco...@gmail.com>
+
+       Add some const attributes.
+       * cipher/md4.c (transform): Add const attribute.
+       * cipher/md5.c (transform): Ditto.
+       * cipher/rmd160.c (transform): Ditto.
+
+       Fix alignment problem in serpent.c.
+       * cipher/serpent.c (serpent_key_prepare): Fix misaligned access.
+       (serpent_setkey): Likewise.
+       (serpent_encrypt_internal): Likewise.
+       (serpent_decrypt_internal): Likewise.
+       (serpent_encrypt): Don't put an alignment-increasing cast.
+       (serpent_decrypt): Likewise.
+       (serpent_test): Likewise.
+
+2013-04-18  Werner Koch  <w...@wheatstone.g10code.de>
+
+       Fix multiply by zero in gcry_mpi_ec_mul.
+       * mpi/ec.c (_gcry_mpi_ec_mul_point): Handle case of SCALAR == 0.
+
+2013-04-15  Werner Koch  <w...@gnupg.org>
+
+       Fix addition of EC points.
+       * mpi/ec.c (_gcry_mpi_ec_add_points): Fix case of P1 given in affine
+       coordinates.
+
+2013-03-20  Ulrich Müller  <u...@gentoo.org>
+
+       Rework selftest in idea.c.
+       * cipher/idea.c (do_setkey): Execute selftest when first called.
+       (decrypt_block): Remove commented-out code.
+       (selftest): Execute all selftests. Return NULL on success, or
+       string in case of error.
+
+       Add support for the IDEA cipher.
+       Adapt idea.c to the Libgcrypt framework.
+       Add IDEA to cipher_table and to the build system.
+
+       Patents on IDEA have expired:
+         Europe: EP0482154 on 2011-05-16,
+         Japan:  JP3225440 on 2011-05-16,
+         U.S.:   5,214,703 on 2012-01-07.
+
+       * configure.ac: Add idea to the list of available ciphers.
+       Define USE_IDEA if idea is enabled.
+       * cipher/cipher.c (cipher_table): Add entry for IDEA.
+       * cipher/idea.c: Update comment about patents.
+       Include proper header files and remove redundant declarations.
+       (expand_key, cipher, do_setkey, encrypt_block, decrypt_block):
+       Define function arguments as const where appropriate.
+       (cipher): Test for !WORDS_BIGENDIAN instead of LITTLE_ENDIAN_HOST.
+       (do_setkey, decrypt_block): Don't call selftest.
+       (idea_setkey): New function, wrapper for do_setkey.
+       (idea_encrypt): New function, wrapper for encrypt_block.
+       (_gcry_cipher_spec_idea): Define.
+       * cipher/Makefile.am (EXTRA_libcipher_la_SOURCES): Add idea.c.
+       * src/cipher.h (_gcry_cipher_spec_idea): Declare.
+       * tests/basic.c (check_ciphers): Add GCRY_CIPHER_IDEA.
+
+2013-03-20  Werner Koch  <w...@gnupg.org>
+
+       Include an IDEA implementation.
+       The code is the old IDEA test code, written by me back in 1997 and
+       distributed on a Danish FTP server.  This commit is only for
+       reference.  To use the code it has to be adjusted to the Libgcrypt
+       framework.
+
 2013-03-18  Werner Koch  <w...@gnupg.org>
 
+       Get rid of the deprecated AM_CONFIG_HEADER.
+       * configure.ac: Use AC_CONFIG_HEADERS.
+
        Release 1.5.1.
 
        Allow building with w64-mingw32.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/NEWS new/libgcrypt-1.5.2/NEWS
--- old/libgcrypt-1.5.1/NEWS    2013-03-18 15:50:45.000000000 +0100
+++ new/libgcrypt-1.5.2/NEWS    2013-04-18 16:59:48.000000000 +0200
@@ -1,3 +1,15 @@
+Noteworthy changes in version 1.5.2 (2013-04-18)
+------------------------------------------------
+
+ * Added support for IDEA.
+
+ * Made the Padlock code work again (regression since 1.5.0).
+
+ * Fixed alignment problems for Serpent.
+
+ * Fixed two bugs in ECC computations.
+
+
 Noteworthy changes in version 1.5.1 (2013-03-18)
 ------------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/THANKS new/libgcrypt-1.5.2/THANKS
--- old/libgcrypt-1.5.1/THANKS  2012-11-29 15:22:35.000000000 +0100
+++ new/libgcrypt-1.5.2/THANKS  2013-04-18 16:11:48.000000000 +0200
@@ -130,6 +130,7 @@
 Stephane Corthesy          steph...@sente.ch
 Stefan Karrmann           s.karrm...@gmx.net
 Stefan Keller             d...@cs.tu-berlin.de
+Stefan Krüger              stadtkind2 at gmx de
 Steffen Ullrich           ccrl...@xensei.com
 Steffen Zahn              z...@berlin.snafu.de
 Steven Bakker             ste...@icoe.att.com
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/VERSION new/libgcrypt-1.5.2/VERSION
--- old/libgcrypt-1.5.1/VERSION 2013-03-18 16:32:24.000000000 +0100
+++ new/libgcrypt-1.5.2/VERSION 2013-04-18 17:07:43.000000000 +0200
@@ -1 +1 @@
-1.5.1
+1.5.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/aclocal.m4 
new/libgcrypt-1.5.2/aclocal.m4
--- old/libgcrypt-1.5.1/aclocal.m4      2013-03-18 16:11:42.000000000 +0100
+++ new/libgcrypt-1.5.2/aclocal.m4      2013-04-18 17:06:01.000000000 +0200
@@ -438,18 +438,6 @@
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/Makefile.am 
new/libgcrypt-1.5.2/cipher/Makefile.am
--- old/libgcrypt-1.5.1/cipher/Makefile.am      2013-03-18 08:57:04.000000000 
+0100
+++ new/libgcrypt-1.5.2/cipher/Makefile.am      2013-04-18 16:49:13.000000000 
+0200
@@ -51,6 +51,7 @@
 dsa.c \
 elgamal.c \
 ecc.c \
+idea.c \
 md4.c \
 md5.c \
 rijndael.c rijndael-tables.h \
@@ -68,7 +69,7 @@
 camellia.c camellia.h camellia-glue.c
 
 if ENABLE_O_FLAG_MUNGING
-o_flag_munging = sed -e 's/-O([2-9s]|fast)*/-O1/g'
+o_flag_munging = sed -e 's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g'
 else
 o_flag_munging = cat
 endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/Makefile.in 
new/libgcrypt-1.5.2/cipher/Makefile.in
--- old/libgcrypt-1.5.1/cipher/Makefile.in      2013-03-18 16:31:45.000000000 
+0100
+++ new/libgcrypt-1.5.2/cipher/Makefile.in      2013-04-18 17:06:03.000000000 
+0200
@@ -296,6 +296,7 @@
 dsa.c \
 elgamal.c \
 ecc.c \
+idea.c \
 md4.c \
 md5.c \
 rijndael.c rijndael-tables.h \
@@ -313,7 +314,7 @@
 camellia.c camellia.h camellia-glue.c
 
 @ENABLE_O_FLAG_MUNGING_FALSE@o_flag_munging = cat
-@ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 's/-O([2-9s]|fast)*/-O1/g'
+@ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 
's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g'
 all: all-am
 
 .SUFFIXES:
@@ -380,6 +381,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elgamal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-common.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hmac-tests.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idea.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md4.Plo@am__quote@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/cipher.c 
new/libgcrypt-1.5.2/cipher/cipher.c
--- old/libgcrypt-1.5.1/cipher/cipher.c 2013-03-18 08:45:00.000000000 +0100
+++ new/libgcrypt-1.5.2/cipher/cipher.c 2013-04-18 16:48:42.000000000 +0200
@@ -112,6 +112,10 @@
     { &_gcry_cipher_spec_camellia256,
       &dummy_extra_spec,                  GCRY_CIPHER_CAMELLIA256 },
 #endif
+#ifdef USE_IDEA
+    { &_gcry_cipher_spec_idea,
+      &dummy_extra_spec,                  GCRY_CIPHER_IDEA },
+#endif
     { NULL                    }
   };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/idea.c 
new/libgcrypt-1.5.2/cipher/idea.c
--- old/libgcrypt-1.5.1/cipher/idea.c   1970-01-01 01:00:00.000000000 +0100
+++ new/libgcrypt-1.5.2/cipher/idea.c   2013-04-18 15:29:57.000000000 +0200
@@ -0,0 +1,378 @@
+/* idea.c  -  IDEA function
+ * Copyright 1997, 1998, 1999, 2001 Werner Koch (dd9jn)
+ * Copyright 2013 g10 Code GmbH
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * WERNER KOCH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of Werner Koch shall not be
+ * used in advertising or otherwise to promote the sale, use or other dealings
+ * in this Software without prior written authorization from Werner Koch.
+ *
+ * Patents on IDEA have expired:
+ *   Europe: EP0482154 on 2011-05-16,
+ *   Japan:  JP3225440 on 2011-05-16,
+ *   U.S.:   5,214,703 on 2012-01-07.
+ */
+
+/*
+ * Please see http://www.noepatents.org/ to learn why software patents
+ * are bad for society and what you can do to fight them.
+ *
+ * The code herein is based on the one from:
+ *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.
+ *   ISBN 0-471-11709-9.
+ */
+
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#include "types.h"  /* for byte and u32 typedefs */
+#include "g10lib.h"
+#include "cipher.h"
+
+
+#define IDEA_KEYSIZE 16
+#define IDEA_BLOCKSIZE 8
+#define IDEA_ROUNDS 8
+#define IDEA_KEYLEN (6*IDEA_ROUNDS+4)
+
+typedef struct {
+    u16 ek[IDEA_KEYLEN];
+    u16 dk[IDEA_KEYLEN];
+    int have_dk;
+} IDEA_context;
+
+static const char *selftest(void);
+
+
+static u16
+mul_inv( u16 x )
+{
+    u16 t0, t1;
+    u16 q, y;
+
+    if( x < 2 )
+       return x;
+    t1 = 0x10001L / x;
+    y =  0x10001L % x;
+    if( y == 1 )
+       return (1-t1) & 0xffff;
+
+    t0 = 1;
+    do {
+       q = x / y;
+       x = x % y;
+       t0 += q * t1;
+       if( x == 1 )
+           return t0;
+       q = y / x;
+       y = y % x;
+       t1 += q * t0;
+    } while( y != 1 );
+    return (1-t1) & 0xffff;
+}
+
+
+
+static void
+expand_key( const byte *userkey, u16 *ek )
+{
+    int i,j;
+
+    for(j=0; j < 8; j++ ) {
+       ek[j] = (*userkey << 8) + userkey[1];
+       userkey += 2;
+    }
+    for(i=0; j < IDEA_KEYLEN; j++ ) {
+       i++;
+       ek[i+7] = ek[i&7] << 9 | ek[(i+1)&7] >> 7;
+       ek += i & 8;
+       i &= 7;
+    }
+}
+
+
+static void
+invert_key( u16 *ek, u16 dk[IDEA_KEYLEN] )
+{
+    int i;
+    u16 t1, t2, t3;
+    u16 temp[IDEA_KEYLEN];
+    u16 *p = temp + IDEA_KEYLEN;
+
+    t1 = mul_inv( *ek++ );
+    t2 = -*ek++;
+    t3 = -*ek++;
+    *--p = mul_inv( *ek++ );
+    *--p = t3;
+    *--p = t2;
+    *--p = t1;
+
+    for(i=0; i < IDEA_ROUNDS-1; i++ ) {
+       t1 = *ek++;
+       *--p = *ek++;
+       *--p = t1;
+
+       t1 = mul_inv( *ek++ );
+       t2 = -*ek++;
+       t3 = -*ek++;
+       *--p = mul_inv( *ek++ );
+       *--p = t2;
+       *--p = t3;
+       *--p = t1;
+    }
+    t1 = *ek++;
+    *--p = *ek++;
+    *--p = t1;
+
+    t1 = mul_inv( *ek++ );
+    t2 = -*ek++;
+    t3 = -*ek++;
+    *--p = mul_inv( *ek++ );
+    *--p = t3;
+    *--p = t2;
+    *--p = t1;
+    memcpy(dk, temp, sizeof(temp) );
+    memset(temp, 0, sizeof(temp) );  /* burn temp */
+}
+
+
+static void
+cipher( byte *outbuf, const byte *inbuf, u16 *key )
+{
+    u16 s2, s3;
+    u16 in[4];
+    int r = IDEA_ROUNDS;
+#define x1 (in[0])
+#define x2 (in[1])
+#define x3 (in[2])
+#define x4 (in[3])
+#define MUL(x,y) \
+       do {u16 _t16; u32 _t32;                     \
+           if( (_t16 = (y)) ) {                    \
+               if( (x = (x)&0xffff) ) {            \
+                   _t32 = (u32)x * _t16;           \
+                   x = _t32 & 0xffff;              \
+                   _t16 = _t32 >> 16;              \
+                   x = ((x)-_t16) + (x<_t16?1:0);  \
+               }                                   \
+               else {                              \
+                   x = 1 - _t16;                   \
+               }                                   \
+           }                                       \
+           else {                                  \
+               x = 1 - x;                          \
+           }                                       \
+       } while(0)
+
+    memcpy (in, inbuf, sizeof in);
+#ifndef WORDS_BIGENDIAN
+    x1 = (x1>>8) | (x1<<8);
+    x2 = (x2>>8) | (x2<<8);
+    x3 = (x3>>8) | (x3<<8);
+    x4 = (x4>>8) | (x4<<8);
+#endif
+    do {
+       MUL(x1, *key++);
+       x2 += *key++;
+       x3 += *key++;
+       MUL(x4, *key++ );
+
+       s3 = x3;
+       x3 ^= x1;
+       MUL(x3, *key++);
+       s2 = x2;
+       x2 ^=x4;
+       x2 += x3;
+       MUL(x2, *key++);
+       x3 += x2;
+
+       x1 ^= x2;
+       x4 ^= x3;
+
+       x2 ^= s3;
+       x3 ^= s2;
+    } while( --r );
+    MUL(x1, *key++);
+    x3 += *key++;
+    x2 += *key++;
+    MUL(x4, *key);
+
+#ifndef WORDS_BIGENDIAN
+    x1 = (x1>>8) | (x1<<8);
+    x2 = (x2>>8) | (x2<<8);
+    x3 = (x3>>8) | (x3<<8);
+    x4 = (x4>>8) | (x4<<8);
+#endif
+    memcpy (outbuf+0, &x1, 2);
+    memcpy (outbuf+2, &x3, 2);
+    memcpy (outbuf+4, &x2, 2);
+    memcpy (outbuf+6, &x4, 2);
+#undef MUL
+#undef x1
+#undef x2
+#undef x3
+#undef x4
+}
+
+
+static int
+do_setkey( IDEA_context *c, const byte *key, unsigned int keylen )
+{
+    static int initialized = 0;
+    static const char *selftest_failed = 0;
+
+    if( !initialized ) {
+       initialized = 1;
+       selftest_failed = selftest();
+       if( selftest_failed )
+           log_error( "%s\n", selftest_failed );
+    }
+    if( selftest_failed )
+       return GPG_ERR_SELFTEST_FAILED;
+
+    assert(keylen == 16);
+    c->have_dk = 0;
+    expand_key( key, c->ek );
+    invert_key( c->ek, c->dk );
+    return 0;
+}
+
+static gcry_err_code_t
+idea_setkey (void *context, const byte *key, unsigned int keylen)
+{
+    IDEA_context *ctx = context;
+    int rc = do_setkey (ctx, key, keylen);
+    _gcry_burn_stack (23+6*sizeof(void*));
+    return rc;
+}
+
+static void
+encrypt_block( IDEA_context *c, byte *outbuf, const byte *inbuf )
+{
+    cipher( outbuf, inbuf, c->ek );
+}
+
+static void
+idea_encrypt (void *context, byte *out, const byte *in)
+{
+    IDEA_context *ctx = context;
+    encrypt_block (ctx, out, in);
+    _gcry_burn_stack (24+3*sizeof (void*));
+}
+
+static void
+decrypt_block( IDEA_context *c, byte *outbuf, const byte *inbuf )
+{
+    if( !c->have_dk ) {
+       c->have_dk = 1;
+       invert_key( c->ek, c->dk );
+    }
+    cipher( outbuf, inbuf, c->dk );
+}
+
+static void
+idea_decrypt (void *context, byte *out, const byte *in)
+{
+    IDEA_context *ctx = context;
+    decrypt_block (ctx, out, in);
+    _gcry_burn_stack (24+3*sizeof (void*));
+}
+
+
+static const char *
+selftest( void )
+{
+static struct {
+    byte key[16];
+    byte plain[8];
+    byte cipher[8];
+} test_vectors[] = {
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03 },
+      { 0x11, 0xFB, 0xED, 0x2B, 0x01, 0x98, 0x6D, 0xE5 } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 },
+      { 0x54, 0x0E, 0x5F, 0xEA, 0x18, 0xC2, 0xF8, 0xB1 } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0x00, 0x19, 0x32, 0x4B, 0x64, 0x7D, 0x96, 0xAF },
+      { 0x9F, 0x0A, 0x0A, 0xB6, 0xE1, 0x0C, 0xED, 0x78 } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0xF5, 0x20, 0x2D, 0x5B, 0x9C, 0x67, 0x1B, 0x08 },
+      { 0xCF, 0x18, 0xFD, 0x73, 0x55, 0xE2, 0xC5, 0xC5 } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0xFA, 0xE6, 0xD2, 0xBE, 0xAA, 0x96, 0x82, 0x6E },
+      { 0x85, 0xDF, 0x52, 0x00, 0x56, 0x08, 0x19, 0x3D } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0x0A, 0x14, 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50 },
+      { 0x2F, 0x7D, 0xE7, 0x50, 0x21, 0x2F, 0xB7, 0x34 } },
+    { { 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+       0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08 },
+      { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28 },
+      { 0x7B, 0x73, 0x14, 0x92, 0x5D, 0xE5, 0x9C, 0x09 } },
+    { { 0x00, 0x05, 0x00, 0x0A, 0x00, 0x0F, 0x00, 0x14,
+       0x00, 0x19, 0x00, 0x1E, 0x00, 0x23, 0x00, 0x28 },
+      { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 },
+      { 0x3E, 0xC0, 0x47, 0x80, 0xBE, 0xFF, 0x6E, 0x20 } },
+    { { 0x3A, 0x98, 0x4E, 0x20, 0x00, 0x19, 0x5D, 0xB3,
+       0x2E, 0xE5, 0x01, 0xC8, 0xC4, 0x7C, 0xEA, 0x60 },
+      { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 },
+      { 0x97, 0xBC, 0xD8, 0x20, 0x07, 0x80, 0xDA, 0x86 } },
+    { { 0x00, 0x64, 0x00, 0xC8, 0x01, 0x2C, 0x01, 0x90,
+       0x01, 0xF4, 0x02, 0x58, 0x02, 0xBC, 0x03, 0x20 },
+      { 0x05, 0x32, 0x0A, 0x64, 0x14, 0xC8, 0x19, 0xFA },
+      { 0x65, 0xBE, 0x87, 0xE7, 0xA2, 0x53, 0x8A, 0xED } },
+    { { 0x9D, 0x40, 0x75, 0xC1, 0x03, 0xBC, 0x32, 0x2A,
+       0xFB, 0x03, 0xE7, 0xBE, 0x6A, 0xB3, 0x00, 0x06 },
+      { 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 },
+      { 0xF5, 0xDB, 0x1A, 0xC4, 0x5E, 0x5E, 0xF9, 0xF9 } }
+};
+    IDEA_context c;
+    byte buffer[8];
+    int i;
+
+    for(i=0; i < DIM(test_vectors); i++ ) {
+       do_setkey( &c, test_vectors[i].key, 16 );
+       encrypt_block( &c, buffer, test_vectors[i].plain );
+       if( memcmp( buffer, test_vectors[i].cipher, 8 ) )
+           return "IDEA test encryption failed.";
+       decrypt_block( &c, buffer, test_vectors[i].cipher );
+       if( memcmp( buffer, test_vectors[i].plain, 8 ) )
+           return "IDEA test decryption failed.";
+    }
+
+    return NULL;
+}
+
+
+gcry_cipher_spec_t _gcry_cipher_spec_idea =
+{
+    "IDEA", NULL, NULL, IDEA_BLOCKSIZE, 128,
+    sizeof (IDEA_context),
+    idea_setkey, idea_encrypt, idea_decrypt
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/md4.c 
new/libgcrypt-1.5.2/cipher/md4.c
--- old/libgcrypt-1.5.1/cipher/md4.c    2012-11-29 15:22:35.000000000 +0100
+++ new/libgcrypt-1.5.2/cipher/md4.c    2013-04-18 15:29:57.000000000 +0200
@@ -100,7 +100,8 @@
 #ifdef WORDS_BIGENDIAN
   {
     int i;
-    byte *p2, *p1;
+    byte *p2;
+    const byte *p1;
     for(i=0, p1=data, p2=(byte*)in; i < 16; i++, p2 += 4 )
       {
        p2[3] = *p1++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/md5.c 
new/libgcrypt-1.5.2/cipher/md5.c
--- old/libgcrypt-1.5.1/cipher/md5.c    2012-11-29 15:22:35.000000000 +0100
+++ new/libgcrypt-1.5.2/cipher/md5.c    2013-04-18 15:29:57.000000000 +0200
@@ -91,7 +91,8 @@
 #ifdef WORDS_BIGENDIAN
   {
     int i;
-    byte *p2, *p1;
+    byte *p2;
+    const byte *p1;
     for(i=0, p1=data, p2=(byte*)correct_words; i < 16; i++, p2 += 4 )
       {
         p2[3] = *p1++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/rijndael.c 
new/libgcrypt-1.5.2/cipher/rijndael.c
--- old/libgcrypt-1.5.1/cipher/rijndael.c       2013-03-18 08:45:00.000000000 
+0100
+++ new/libgcrypt-1.5.2/cipher/rijndael.c       2013-04-18 16:48:42.000000000 
+0200
@@ -279,15 +279,10 @@
 
   ctx->rounds = rounds;
 
+  /* NB: We don't yet support Padlock hardware key generation.  */
+
   if (0)
     ;
-#ifdef USE_PADLOCK
-  else if (ctx->use_padlock)
-    {
-      /* Nothing to do as we support only hardware key generation for
-         now.  */
-    }
-#endif /*USE_PADLOCK*/
 #ifdef USE_AESNI_is_disabled_here
   else if (ctx->use_aesni && ctx->rounds == 10)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/rmd160.c 
new/libgcrypt-1.5.2/cipher/rmd160.c
--- old/libgcrypt-1.5.1/cipher/rmd160.c 2012-11-29 15:22:35.000000000 +0100
+++ new/libgcrypt-1.5.2/cipher/rmd160.c 2013-04-18 15:29:57.000000000 +0200
@@ -168,7 +168,8 @@
   u32 x[16];
   {
     int i;
-    byte *p2, *p1;
+    byte *p2;
+    const byte *p1;
     for (i=0, p1=data, p2=(byte*)x; i < 16; i++, p2 += 4 )
       {
         p2[3] = *p1++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/cipher/serpent.c 
new/libgcrypt-1.5.2/cipher/serpent.c
--- old/libgcrypt-1.5.1/cipher/serpent.c        2012-11-29 15:22:35.000000000 
+0100
+++ new/libgcrypt-1.5.2/cipher/serpent.c        2013-04-18 15:29:57.000000000 
+0200
@@ -585,15 +585,14 @@
   int i;
 
   /* Copy key.  */
-  for (i = 0; i < key_length / 4; i++)
-    {
+  memcpy (key_prepared, key, key_length);
+  key_length /= 4;
 #ifdef WORDS_BIGENDIAN
-      key_prepared[i] = byte_swap_32 (((u32 *) key)[i]);
+  for (i = 0; i < key_length; i++)
+    key_prepared[i] = byte_swap_32 (key_prepared[i]);
 #else
-      key_prepared[i] = ((u32 *) key)[i];
+  i = key_length;
 #endif
-    }
-
   if (i < 8)
     {
       /* Key must be padded according to the Serpent
@@ -707,21 +706,17 @@
 
 static void
 serpent_encrypt_internal (serpent_context_t *context,
-                         const serpent_block_t input, serpent_block_t output)
+                         const byte *input, byte *output)
 {
   serpent_block_t b, b_next;
   int round = 0;
 
+  memcpy (b, input, sizeof (b));
 #ifdef WORDS_BIGENDIAN
-  b[0] = byte_swap_32 (input[0]);
-  b[1] = byte_swap_32 (input[1]);
-  b[2] = byte_swap_32 (input[2]);
-  b[3] = byte_swap_32 (input[3]);
-#else
-  b[0] = input[0];
-  b[1] = input[1];
-  b[2] = input[2];
-  b[3] = input[3];
+  b[0] = byte_swap_32 (b[0]);
+  b[1] = byte_swap_32 (b[1]);
+  b[2] = byte_swap_32 (b[2]);
+  b[3] = byte_swap_32 (b[3]);
 #endif
 
   ROUND (0, context->keys, b, b_next);
@@ -759,35 +754,27 @@
   ROUND_LAST (7, context->keys, b, b_next);
 
 #ifdef WORDS_BIGENDIAN
-  output[0] = byte_swap_32 (b_next[0]);
-  output[1] = byte_swap_32 (b_next[1]);
-  output[2] = byte_swap_32 (b_next[2]);
-  output[3] = byte_swap_32 (b_next[3]);
-#else
-  output[0] = b_next[0];
-  output[1] = b_next[1];
-  output[2] = b_next[2];
-  output[3] = b_next[3];
+  b_next[0] = byte_swap_32 (b_next[0]);
+  b_next[1] = byte_swap_32 (b_next[1]);
+  b_next[2] = byte_swap_32 (b_next[2]);
+  b_next[3] = byte_swap_32 (b_next[3]);
 #endif
+  memcpy (output, b_next, sizeof (b_next));
 }
 
 static void
 serpent_decrypt_internal (serpent_context_t *context,
-                         const serpent_block_t input, serpent_block_t output)
+                         const byte *input, byte *output)
 {
   serpent_block_t b, b_next;
   int round = ROUNDS;
 
+  memcpy (b_next, input, sizeof (b));
 #ifdef WORDS_BIGENDIAN
-  b_next[0] = byte_swap_32 (input[0]);
-  b_next[1] = byte_swap_32 (input[1]);
-  b_next[2] = byte_swap_32 (input[2]);
-  b_next[3] = byte_swap_32 (input[3]);
-#else
-  b_next[0] = input[0];
-  b_next[1] = input[1];
-  b_next[2] = input[2];
-  b_next[3] = input[3];
+  b_next[0] = byte_swap_32 (b_next[0]);
+  b_next[1] = byte_swap_32 (b_next[1]);
+  b_next[2] = byte_swap_32 (b_next[2]);
+  b_next[3] = byte_swap_32 (b_next[3]);
 #endif
 
   ROUND_FIRST_INVERSE (7, context->keys, b_next, b);
@@ -824,18 +811,13 @@
   ROUND_INVERSE (1, context->keys, b, b_next);
   ROUND_INVERSE (0, context->keys, b, b_next);
 
-
 #ifdef WORDS_BIGENDIAN
-  output[0] = byte_swap_32 (b_next[0]);
-  output[1] = byte_swap_32 (b_next[1]);
-  output[2] = byte_swap_32 (b_next[2]);
-  output[3] = byte_swap_32 (b_next[3]);
-#else
-  output[0] = b_next[0];
-  output[1] = b_next[1];
-  output[2] = b_next[2];
-  output[3] = b_next[3];
+  b_next[0] = byte_swap_32 (b_next[0]);
+  b_next[1] = byte_swap_32 (b_next[1]);
+  b_next[2] = byte_swap_32 (b_next[2]);
+  b_next[3] = byte_swap_32 (b_next[3]);
 #endif
+  memcpy (output, b_next, sizeof (b_next));
 }
 
 static void
@@ -843,8 +825,7 @@
 {
   serpent_context_t *context = ctx;
 
-  serpent_encrypt_internal (context,
-                           (const u32 *) buffer_in, (u32 *) buffer_out);
+  serpent_encrypt_internal (context, buffer_in, buffer_out);
   _gcry_burn_stack (2 * sizeof (serpent_block_t));
 }
 
@@ -853,9 +834,7 @@
 {
   serpent_context_t *context = ctx;
 
-  serpent_decrypt_internal (context,
-                           (const u32 *) buffer_in,
-                           (u32 *) buffer_out);
+  serpent_decrypt_internal (context, buffer_in, buffer_out);
   _gcry_burn_stack (2 * sizeof (serpent_block_t));
 }
 
@@ -914,9 +893,7 @@
     {
       serpent_setkey_internal (&context, test_data[i].key,
                                test_data[i].key_length);
-      serpent_encrypt_internal (&context,
-                               (const u32 *) test_data[i].text_plain,
-                               (u32 *) scratch);
+      serpent_encrypt_internal (&context, test_data[i].text_plain, scratch);
 
       if (memcmp (scratch, test_data[i].text_cipher, sizeof (serpent_block_t)))
        switch (test_data[i].key_length)
@@ -929,9 +906,7 @@
            return "Serpent-256 test encryption failed.";
          }
 
-    serpent_decrypt_internal (&context,
-                             (const u32 *) test_data[i].text_cipher,
-                             (u32 *) scratch);
+    serpent_decrypt_internal (&context, test_data[i].text_cipher, scratch);
     if (memcmp (scratch, test_data[i].text_plain, sizeof (serpent_block_t)))
       switch (test_data[i].key_length)
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/config.h.in 
new/libgcrypt-1.5.2/config.h.in
--- old/libgcrypt-1.5.1/config.h.in     2013-03-18 16:12:24.000000000 +0100
+++ new/libgcrypt-1.5.2/config.h.in     2013-04-18 17:07:36.000000000 +0200
@@ -322,6 +322,9 @@
 #undef USE_GNU_PTH
 
 /* Defined if this module should be included */
+#undef USE_IDEA
+
+/* Defined if this module should be included */
 #undef USE_MD4
 
 /* Defined if this module should be included */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/configure 
new/libgcrypt-1.5.2/configure
--- old/libgcrypt-1.5.1/configure       2013-03-18 16:31:47.000000000 +0100
+++ new/libgcrypt-1.5.2/configure       2013-04-18 17:06:06.000000000 +0200
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libgcrypt 1.5.1.
+# Generated by GNU Autoconf 2.69 for libgcrypt 1.5.2.
 #
 # Report bugs to <http://bugs.gnupg.org>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='libgcrypt'
 PACKAGE_TARNAME='libgcrypt'
-PACKAGE_VERSION='1.5.1'
-PACKAGE_STRING='libgcrypt 1.5.1'
+PACKAGE_VERSION='1.5.2'
+PACKAGE_STRING='libgcrypt 1.5.2'
 PACKAGE_BUGREPORT='http://bugs.gnupg.org'
 PACKAGE_URL=''
 
@@ -1423,7 +1423,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libgcrypt 1.5.1 to adapt to many kinds of systems.
+\`configure' configures libgcrypt 1.5.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1493,7 +1493,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libgcrypt 1.5.1:";;
+     short | recursive ) echo "Configuration of libgcrypt 1.5.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1632,7 +1632,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libgcrypt configure 1.5.1
+libgcrypt configure 1.5.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2284,7 +2284,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libgcrypt $as_me 1.5.1, which was
+It was created by libgcrypt $as_me 1.5.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2642,7 +2642,7 @@
 #
 LIBGCRYPT_LT_CURRENT=19
 LIBGCRYPT_LT_AGE=8
-LIBGCRYPT_LT_REVISION=0
+LIBGCRYPT_LT_REVISION=1
 
 
 # If the API is changed in an incompatible way: increment the next counter.
@@ -3121,7 +3121,7 @@
 
 # Define the identity of the package.
  PACKAGE='libgcrypt'
- VERSION='1.5.1'
+ VERSION='1.5.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3282,7 +3282,7 @@
 #define VERSION "$VERSION"
 _ACEOF
 
-VERSION_NUMBER=0x010501
+VERSION_NUMBER=0x010502
 
 
 
@@ -12740,7 +12740,7 @@
 
 # Definitions for symmetric ciphers.
 available_ciphers="arcfour blowfish cast5 des aes twofish serpent rfc2268 seed"
-available_ciphers="$available_ciphers camellia"
+available_ciphers="$available_ciphers camellia idea"
 enabled_ciphers=""
 
 # Definitions for public-key ciphers.
@@ -16154,6 +16154,24 @@
 fi
 
 
+name=idea
+list=$enabled_ciphers
+found=0
+
+for n in $list; do
+  if test "x$name" = "x$n"; then
+    found=1
+  fi
+done
+
+if test "$found" = "1" ; then
+   GCRYPT_CIPHERS="$GCRYPT_CIPHERS idea.lo"
+
+$as_echo "#define USE_IDEA 1" >>confdefs.h
+
+fi
+
+
 name=dsa
 list=$enabled_pubkey_ciphers
 found=0
@@ -16489,7 +16507,7 @@
 #
 # Provide information about the build.
 #
-BUILD_REVISION="d2f2f90"
+BUILD_REVISION="8bfe337"
 
 
 cat >>confdefs.h <<_ACEOF
@@ -16498,7 +16516,7 @@
 
 
 BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
-BUILD_FILEVERSION="${BUILD_FILEVERSION}54002"
+BUILD_FILEVERSION="${BUILD_FILEVERSION}35838"
 
 
 BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
@@ -17140,7 +17158,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libgcrypt $as_me 1.5.1, which was
+This file was extended by libgcrypt $as_me 1.5.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17210,7 +17228,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libgcrypt config.status 1.5.1
+libgcrypt config.status 1.5.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -19256,7 +19274,7 @@
 echo "
         Libgcrypt v${VERSION} has been configured as follows:
 
-        Revision:                  d2f2f90  (54002)
+        Revision:                  8bfe337  (35838)
         Platform:                  $PRINTABLE_OS_NAME ($host)
         Enabled cipher algorithms: $enabled_ciphers
         Enabled digest algorithms: $enabled_digests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/configure.ac 
new/libgcrypt-1.5.2/configure.ac
--- old/libgcrypt-1.5.1/configure.ac    2013-03-18 16:01:39.000000000 +0100
+++ new/libgcrypt-1.5.2/configure.ac    2013-04-18 17:00:07.000000000 +0200
@@ -30,7 +30,7 @@
 # for the LT versions.
 m4_define(mym4_version_major, [1])
 m4_define(mym4_version_minor, [5])
-m4_define(mym4_version_micro, [1])
+m4_define(mym4_version_micro, [2])
 
 # Below is m4 magic to extract and compute the revision number, the
 # decimalized short revision number, a beta version string, and a flag
@@ -59,7 +59,7 @@
 #
 LIBGCRYPT_LT_CURRENT=19
 LIBGCRYPT_LT_AGE=8
-LIBGCRYPT_LT_REVISION=0
+LIBGCRYPT_LT_REVISION=1
 
 
 # If the API is changed in an incompatible way: increment the next counter.
@@ -72,7 +72,7 @@
 
 AC_CONFIG_SRCDIR([src/libgcrypt.vers])
 AM_INIT_AUTOMAKE
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_LIBOBJ_DIR([compat])
 AC_CANONICAL_HOST
@@ -172,7 +172,7 @@
 
 # Definitions for symmetric ciphers.
 available_ciphers="arcfour blowfish cast5 des aes twofish serpent rfc2268 seed"
-available_ciphers="$available_ciphers camellia"
+available_ciphers="$available_ciphers camellia idea"
 enabled_ciphers=""
 
 # Definitions for public-key ciphers.
@@ -1057,6 +1057,12 @@
    AC_DEFINE(USE_CAMELLIA, 1, [Defined if this module should be included])
 fi
 
+LIST_MEMBER(idea, $enabled_ciphers)
+if test "$found" = "1" ; then
+   GCRYPT_CIPHERS="$GCRYPT_CIPHERS idea.lo"
+   AC_DEFINE(USE_IDEA, 1, [Defined if this module should be included])
+fi
+
 LIST_MEMBER(dsa, $enabled_pubkey_ciphers)
 if test "$found" = "1" ; then
    GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS dsa.lo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/fips-fsm.eps 
new/libgcrypt-1.5.2/doc/fips-fsm.eps
--- old/libgcrypt-1.5.1/doc/fips-fsm.eps        2012-04-25 16:56:10.000000000 
+0200
+++ new/libgcrypt-1.5.2/doc/fips-fsm.eps        2013-04-18 17:07:37.000000000 
+0200
@@ -1,7 +1,7 @@
 %!PS-Adobe-3.0 EPSF-3.0
 %%Title: /home/wk/w/libgcrypt/doc/fips-fsm.fig
 %%Creator: fig2dev Version 3.2 Patchlevel 5d
-%%CreationDate: Wed Apr 25 16:56:10 2012
+%%CreationDate: Thu Apr 18 17:07:37 2013
 %%BoundingBox: 0 0 497 579
 %Magnification: 1.0000
 %%EndComments
Files old/libgcrypt-1.5.1/doc/fips-fsm.pdf and 
new/libgcrypt-1.5.2/doc/fips-fsm.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/gcrypt.info 
new/libgcrypt-1.5.2/doc/gcrypt.info
--- old/libgcrypt-1.5.1/doc/gcrypt.info 2013-03-18 16:32:24.000000000 +0100
+++ new/libgcrypt-1.5.2/doc/gcrypt.info 2013-04-18 17:07:42.000000000 +0200
@@ -1,7 +1,7 @@
 This is /home/wk/w/libgcrypt/doc/gcrypt.info, produced by makeinfo
 version 4.13 from /home/wk/w/libgcrypt/doc/gcrypt.texi.
 
-This manual is for Libgcrypt (version 1.5.1, 18 March 2013), which is
+This manual is for Libgcrypt (version 1.5.2, 18 April 2013), which is
 GNU's library of cryptographic building blocks.
 
    Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/gcrypt.info-1 
new/libgcrypt-1.5.2/doc/gcrypt.info-1
--- old/libgcrypt-1.5.1/doc/gcrypt.info-1       2013-03-18 16:32:24.000000000 
+0100
+++ new/libgcrypt-1.5.2/doc/gcrypt.info-1       2013-04-18 17:07:42.000000000 
+0200
@@ -1,7 +1,7 @@
 This is /home/wk/w/libgcrypt/doc/gcrypt.info, produced by makeinfo
 version 4.13 from /home/wk/w/libgcrypt/doc/gcrypt.texi.
 
-This manual is for Libgcrypt (version 1.5.1, 18 March 2013), which is
+This manual is for Libgcrypt (version 1.5.2, 18 April 2013), which is
 GNU's library of cryptographic building blocks.
 
    Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011
@@ -25,7 +25,7 @@
 The Libgcrypt Library
 *********************
 
-This manual is for Libgcrypt (version 1.5.1, 18 March 2013), which is
+This manual is for Libgcrypt (version 1.5.2, 18 April 2013), which is
 GNU's library of cryptographic building blocks.
 
    Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011
Files old/libgcrypt-1.5.1/doc/gcrypt.info-2 and 
new/libgcrypt-1.5.2/doc/gcrypt.info-2 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/libgcrypt-modules.eps 
new/libgcrypt-1.5.2/doc/libgcrypt-modules.eps
--- old/libgcrypt-1.5.1/doc/libgcrypt-modules.eps       2012-04-25 
16:56:10.000000000 +0200
+++ new/libgcrypt-1.5.2/doc/libgcrypt-modules.eps       2013-04-18 
17:07:37.000000000 +0200
@@ -1,7 +1,7 @@
 %!PS-Adobe-3.0 EPSF-3.0
 %%Title: /home/wk/w/libgcrypt/doc/libgcrypt-modules.fig
 %%Creator: fig2dev Version 3.2 Patchlevel 5d
-%%CreationDate: Wed Apr 25 16:56:10 2012
+%%CreationDate: Thu Apr 18 17:07:37 2013
 %%BoundingBox: 0 0 488 300
 %Magnification: 1.0000
 %%EndComments
Files old/libgcrypt-1.5.1/doc/libgcrypt-modules.pdf and 
new/libgcrypt-1.5.2/doc/libgcrypt-modules.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/stamp-vti 
new/libgcrypt-1.5.2/doc/stamp-vti
--- old/libgcrypt-1.5.1/doc/stamp-vti   2013-03-18 16:32:24.000000000 +0100
+++ new/libgcrypt-1.5.2/doc/stamp-vti   2013-04-18 17:07:37.000000000 +0200
@@ -1,4 +1,4 @@
-@set UPDATED 18 March 2013
-@set UPDATED-MONTH March 2013
-@set EDITION 1.5.1
-@set VERSION 1.5.1
+@set UPDATED 18 April 2013
+@set UPDATED-MONTH April 2013
+@set EDITION 1.5.2
+@set VERSION 1.5.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/doc/version.texi 
new/libgcrypt-1.5.2/doc/version.texi
--- old/libgcrypt-1.5.1/doc/version.texi        2013-03-18 16:32:24.000000000 
+0100
+++ new/libgcrypt-1.5.2/doc/version.texi        2013-04-18 17:07:37.000000000 
+0200
@@ -1,4 +1,4 @@
-@set UPDATED 18 March 2013
-@set UPDATED-MONTH March 2013
-@set EDITION 1.5.1
-@set VERSION 1.5.1
+@set UPDATED 18 April 2013
+@set UPDATED-MONTH April 2013
+@set EDITION 1.5.2
+@set VERSION 1.5.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/mpi/ec.c new/libgcrypt-1.5.2/mpi/ec.c
--- old/libgcrypt-1.5.1/mpi/ec.c        2013-03-18 08:45:01.000000000 +0100
+++ new/libgcrypt-1.5.2/mpi/ec.c        2013-04-18 16:48:42.000000000 +0200
@@ -522,7 +522,7 @@
           ec_mulm (l1, l1, x1, ctx);
         }
       if (z1_is_one)
-        mpi_set (l2, x1);
+        mpi_set (l2, x2);
       else
         {
           ec_powm (l2, z1, ctx->two, ctx);
@@ -670,10 +670,23 @@
 
   mpi_mul (h, k, ctx->three); /* h = 3k */
   loops = mpi_get_nbits (h);
-
-  mpi_set (result->x, point->x);
-  mpi_set (result->y, yy); mpi_free (yy); yy = NULL;
-  mpi_set (result->z, point->z);
+  if (loops < 2)
+    {
+      /* If SCALAR is zero, the above mpi_mul sets H to zero and thus
+         LOOPs will be zero.  To avoid an underflow of I in the main
+         loop we set LOOP to 2 and the result to (0,0,0).  */
+      loops = 2;
+      mpi_clear (result->x);
+      mpi_clear (result->y);
+      mpi_clear (result->z);
+    }
+  else
+    {
+      mpi_set (result->x, point->x);
+      mpi_set (result->y, yy);
+      mpi_set (result->z, point->z);
+    }
+  mpi_free (yy); yy = NULL;
 
   p1.x = x1; x1 = NULL;
   p1.y = y1; y1 = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/src/cipher.h 
new/libgcrypt-1.5.2/src/cipher.h
--- old/libgcrypt-1.5.1/src/cipher.h    2013-03-18 08:45:01.000000000 +0100
+++ new/libgcrypt-1.5.2/src/cipher.h    2013-04-18 16:48:42.000000000 +0200
@@ -135,6 +135,7 @@
 extern gcry_cipher_spec_t _gcry_cipher_spec_camellia128;
 extern gcry_cipher_spec_t _gcry_cipher_spec_camellia192;
 extern gcry_cipher_spec_t _gcry_cipher_spec_camellia256;
+extern gcry_cipher_spec_t _gcry_cipher_spec_idea;
 
 extern cipher_extra_spec_t _gcry_cipher_extraspec_tripledes;
 extern cipher_extra_spec_t _gcry_cipher_extraspec_aes;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/src/gcrypt.h 
new/libgcrypt-1.5.2/src/gcrypt.h
--- old/libgcrypt-1.5.1/src/gcrypt.h    2013-03-18 16:32:16.000000000 +0100
+++ new/libgcrypt-1.5.2/src/gcrypt.h    2013-04-18 17:07:05.000000000 +0200
@@ -63,11 +63,11 @@
    return the same version.  The purpose of this macro is to let
    autoconf (using the AM_PATH_GCRYPT macro) check that this header
    matches the installed library.  */
-#define GCRYPT_VERSION "1.5.1"
+#define GCRYPT_VERSION "1.5.2"
 
 /* The version number of this header.  It may be used to handle minor
    API incompatibilities.  */
-#define GCRYPT_VERSION_NUMBER 0x010501
+#define GCRYPT_VERSION_NUMBER 0x010502
 
 
 /* Internal: We can't use the convenience macros for the multi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgcrypt-1.5.1/tests/basic.c 
new/libgcrypt-1.5.2/tests/basic.c
--- old/libgcrypt-1.5.1/tests/basic.c   2013-03-18 08:45:01.000000000 +0100
+++ new/libgcrypt-1.5.2/tests/basic.c   2013-04-18 16:48:42.000000000 +0200
@@ -1568,6 +1568,9 @@
     GCRY_CIPHER_CAMELLIA192,
     GCRY_CIPHER_CAMELLIA256,
 #endif
+#if USE_IDEA
+    GCRY_CIPHER_IDEA,
+#endif
     0
   };
   static int algos2[] = {

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to