From 1a20a7ff2e8351c68b3e53390d3dcd12fd7e1d4a Mon Sep 17 00:00:00 2001 From: "John L. Whiteman" Date: Wed, 20 Aug 2014 13:56:48 -0700 Subject: [PATCH] Revert "Imported Upstream version 1.6.1" Will integrater later once other dependencies are resolved. This reverts commit 074a048bf92cdb486c3538dd825c17bfb965d346. Signed-off-by: John L. Whiteman --- AUTHORS | 102 +- ChangeLog | 5612 +++++-------------- ChangeLog-2011 | 1499 ----- LICENSES | 134 - Makefile.am | 31 +- Makefile.in | 185 +- NEWS | 167 - README | 35 +- README.GIT => README.SVN | 16 +- THANKS | 2 - VERSION | 2 +- acinclude.m4 | 39 +- aclocal.m4 | 149 +- autogen.rc | 17 - autogen.sh | 288 +- build-aux/ChangeLog-2011 | 169 - build-aux/git-log-fix | 14 - build-aux/git-log-footer | 14 - cipher/{ChangeLog-2011 => ChangeLog} | 46 +- cipher/Makefile.am | 48 +- cipher/Makefile.in | 263 +- cipher/ac.c | 3301 +++++++++++ cipher/arcfour.c | 50 +- cipher/bithelp.h | 60 +- cipher/blowfish-amd64.S | 533 -- cipher/blowfish-arm.S | 743 --- cipher/blowfish.c | 543 +- cipher/bufhelp.h | 378 -- cipher/camellia-aesni-avx-amd64.S | 2165 -------- cipher/camellia-aesni-avx2-amd64.S | 1263 ----- cipher/camellia-arm.S | 613 --- cipher/camellia-glue.c | 519 +- cipher/camellia.c | 172 +- cipher/camellia.h | 9 - cipher/cast5-amd64.S | 587 -- cipher/cast5-arm.S | 715 --- cipher/cast5.c | 484 +- cipher/cipher-aeswrap.c | 210 - cipher/cipher-cbc.c | 205 - cipher/cipher-ccm.c | 442 -- cipher/cipher-cfb.c | 226 - cipher/cipher-cmac.c | 238 - cipher/cipher-ctr.c | 111 - cipher/cipher-gcm.c | 1180 ---- cipher/cipher-internal.h | 322 -- cipher/cipher-ofb.c | 96 - cipher/cipher-selftest.c | 470 -- cipher/cipher-selftest.h | 67 - cipher/cipher.c | 2023 +++++-- cipher/crc.c | 21 +- cipher/des.c | 39 +- cipher/dsa-common.c | 394 -- cipher/dsa.c | 948 ++-- cipher/ecc-common.h | 141 - cipher/ecc-curves.c | 1162 ---- cipher/ecc-ecdsa.c | 234 - cipher/ecc-eddsa.c | 808 --- cipher/ecc-gost.c | 233 - cipher/ecc-misc.c | 287 - cipher/ecc.c | 2538 ++++----- cipher/elgamal.c | 710 +-- cipher/gost.h | 31 - cipher/gost28147.c | 452 -- cipher/gostr3411-94.c | 286 - cipher/hash-common.c | 52 - cipher/hash-common.h | 31 +- cipher/hmac-tests.c | 2 +- cipher/idea.c | 379 -- cipher/kdf-internal.h | 40 - cipher/kdf.c | 132 +- cipher/mac-cmac.c | 226 - cipher/mac-gmac.c | 185 - cipher/mac-hmac.c | 272 - cipher/mac-internal.h | 204 - cipher/mac.c | 465 -- cipher/md.c | 853 +-- cipher/md4.c | 150 +- cipher/md5.c | 152 +- cipher/primegen.c | 304 +- cipher/pubkey-internal.h | 100 - cipher/pubkey-util.c | 1050 ---- cipher/pubkey.c | 3996 ++++++++++++-- cipher/rfc2268.c | 41 +- cipher/rijndael-amd64.S | 1416 ----- cipher/rijndael-arm.S | 853 --- cipher/rijndael.c | 1632 ++---- cipher/rmd.h | 5 +- cipher/rmd160.c | 164 +- cipher/rsa-common.c | 973 ---- cipher/rsa.c | 918 ++-- cipher/salsa20-amd64.S | 924 ---- cipher/salsa20-armv7-neon.S | 899 --- cipher/salsa20.c | 576 -- cipher/scrypt.c | 324 -- cipher/seed.c | 18 +- cipher/serpent-armv7-neon.S | 869 --- cipher/serpent-avx2-amd64.S | 812 --- cipher/serpent-sse2-amd64.S | 863 --- cipher/serpent.c | 1338 ++--- cipher/sha1-ssse3-amd64.S | 377 -- cipher/sha1.c | 244 +- cipher/sha256-ssse3-amd64.S | 540 -- cipher/sha256.c | 204 +- cipher/sha512-armv7-neon.S | 316 -- cipher/sha512-avx-amd64.S | 416 -- cipher/sha512-avx2-bmi2-amd64.S | 787 --- cipher/sha512-ssse3-amd64.S | 421 -- cipher/sha512.c | 593 +- cipher/stribog.c | 1323 ----- cipher/tiger.c | 176 +- cipher/twofish-amd64.S | 731 --- cipher/twofish-arm.S | 363 -- cipher/twofish.c | 328 +- cipher/whirlpool.c | 222 +- compat/Makefile.in | 123 +- compat/compat.c | 10 +- build-aux/compile => compile | 0 build-aux/config.guess => config.guess | 217 +- config.h.in | 148 +- build-aux/config.rpath => config.rpath | 0 build-aux/config.sub => config.sub | 147 +- configure | 7012 +++++++----------------- configure.ac | 1052 +--- build-aux/depcomp => depcomp | 0 doc/{ChangeLog-2011 => ChangeLog} | 21 - doc/DCO | 29 - doc/HACKING | 90 +- doc/Makefile.am | 41 +- doc/Makefile.in | 247 +- doc/fips-fsm.eps | 275 +- doc/fips-fsm.pdf | Bin 12477 -> 7292 bytes doc/fips-fsm.png | Bin 20021 -> 15243 bytes doc/gcrypt.info | 213 +- doc/gcrypt.info-1 | 2949 +++++----- doc/gcrypt.info-2 | Bin 22470 -> 0 bytes doc/gcrypt.texi | 2675 ++++----- doc/gpl.texi | 5 + doc/lgpl.texi | 5 + doc/libgcrypt-modules.eps | 345 +- doc/libgcrypt-modules.pdf | Bin 7107 -> 3956 bytes doc/libgcrypt-modules.png | Bin 11623 -> 6834 bytes {build-aux => doc}/mdate-sh | 0 doc/stamp-vti | 8 +- {build-aux => doc}/texinfo.tex | 86 +- doc/version.texi | 8 +- doc/yat2m.c | 1486 ----- build-aux/install-sh => install-sh | 231 +- build-aux/ltmain.sh => ltmain.sh | 4035 +++++--------- m4/{ChangeLog-2011 => ChangeLog} | 11 - m4/Makefile.am | 2 +- m4/Makefile.in | 75 +- m4/gpg-error.m4 | 15 +- m4/libtool.m4 | 2279 +++----- m4/lock.m4 | 42 - m4/ltoptions.m4 | 32 +- m4/ltversion.m4 | 12 +- m4/lt~obsolete.m4 | 12 +- m4/threadlib.m4 | 349 -- build-aux/missing => missing | 0 mpi/{ChangeLog-2011 => ChangeLog} | 18 +- mpi/Makefile.am | 2 +- mpi/Makefile.in | 166 +- mpi/amd64/mpih-mul2.S | 43 + mpi/config.links | 81 +- mpi/ec-ed25519.c | 37 - mpi/ec-internal.h | 25 - mpi/ec.c | 1200 +--- mpi/longlong.h | 249 +- mpi/mpi-add.c | 22 +- mpi/mpi-bit.c | 111 +- mpi/mpi-cmp.c | 4 +- mpi/mpi-div.c | 9 +- mpi/mpi-gcd.c | 11 +- mpi/mpi-inline.h | 9 +- mpi/mpi-internal.h | 5 +- mpi/mpi-inv.c | 7 +- mpi/mpi-mod.c | 16 +- mpi/mpi-mpow.c | 8 +- mpi/mpi-mul.c | 12 +- mpi/mpi-pow.c | 486 +- mpi/mpi-scan.c | 132 +- mpi/mpicoder.c | 418 +- mpi/mpih-div.c | 9 +- mpi/mpih-mul.c | 19 +- mpi/mpiutil.c | 322 +- random/{ChangeLog-2011 => ChangeLog} | 16 - random/Makefile.am | 1 - random/Makefile.in | 134 +- random/rand-internal.h | 18 +- random/random-csprng.c | 129 +- random/random-daemon.c | 18 +- random/random-fips.c | 101 +- random/random-system.c | 256 - random/random.c | 272 +- random/random.h | 5 +- random/rndegd.c | 6 +- random/rndhw.c | 87 +- random/rndlinux.c | 125 +- random/rndunix.c | 3 +- random/rndw32.c | 11 +- src/{ChangeLog-2011 => ChangeLog} | 76 +- src/Makefile.am | 33 +- src/Makefile.in | 449 +- src/ath.c | 600 +- src/ath.h | 96 +- src/cipher-proto.h | 229 +- src/cipher.h | 142 +- src/context.c | 137 - src/context.h | 32 - src/ec-context.h | 84 - src/fips.c | 16 +- src/g10lib.h | 178 +- src/gcrypt-int.h | 534 -- src/gcrypt-module.h | 240 + src/gcrypt.h | 1000 ++-- src/gcrypt.h.in | 998 ++-- src/global.c | 408 +- src/hmac256.c | 14 +- src/hwf-arm.c | 115 - src/hwf-common.h | 27 - src/hwf-x86.c | 306 -- src/hwfeatures.c | 271 +- src/libgcrypt.def | 130 +- src/libgcrypt.m4 | 13 +- src/libgcrypt.vers | 66 +- src/misc.c | 210 +- src/module.c | 212 + src/mpi.h | 184 +- src/mpicalc.c | 588 -- src/secmem.c | 66 +- src/secmem.h | 2 - src/sexp.c | 1039 ++-- src/versioninfo.rc.in | 4 +- src/visibility.c | 804 ++- src/visibility.h | 1188 ++-- tests/{ChangeLog-2011 => ChangeLog} | 24 - tests/Makefile.am | 40 +- tests/Makefile.in | 470 +- tests/ac-data.c | 208 + tests/ac-schemes.c | 347 ++ tests/ac.c | 162 + tests/aeswrap.c | 2 +- tests/basic.c | 3931 ++----------- tests/bench-slope.c | 1624 ------ tests/benchmark.c | 466 +- tests/curves.c | 8 +- tests/dsa-rfc6979.c | 1030 ---- tests/fips186-dsa.c | 2 +- tests/fipsdrv.c | 2 +- tests/genhashdata.c | 171 - tests/hashtest-256g.in | 7 - tests/hashtest.c | 489 -- tests/hmac.c | 60 +- tests/keygen.c | 434 +- tests/keygrip.c | 60 +- tests/mpitests.c | 308 +- tests/pkcs1v2.c | 2 +- tests/prime.c | 136 +- tests/pubkey.c | 319 +- tests/random.c | 363 +- tests/register.c | 187 + tests/rsacvt.c | 2 +- tests/stopwatch.h | 105 - tests/t-common.h | 99 - tests/t-convert.c | 588 -- tests/t-ed25519.c | 560 -- tests/t-ed25519.inp | 6164 --------------------- tests/t-kdf.c | 111 +- tests/t-lock.c | 463 -- tests/t-mpi-bit.c | 2 +- tests/t-mpi-point.c | 1110 ---- tests/testapi.c | 46 +- tests/tsexp.c | 701 +-- tests/version.c | 2 +- 274 files changed, 30305 insertions(+), 92981 deletions(-) delete mode 100644 ChangeLog-2011 delete mode 100644 LICENSES rename README.GIT => README.SVN (82%) delete mode 100644 autogen.rc delete mode 100644 build-aux/ChangeLog-2011 delete mode 100644 build-aux/git-log-fix delete mode 100644 build-aux/git-log-footer rename cipher/{ChangeLog-2011 => ChangeLog} (99%) create mode 100644 cipher/ac.c delete mode 100644 cipher/blowfish-amd64.S delete mode 100644 cipher/blowfish-arm.S delete mode 100644 cipher/bufhelp.h delete mode 100644 cipher/camellia-aesni-avx-amd64.S delete mode 100644 cipher/camellia-aesni-avx2-amd64.S delete mode 100644 cipher/camellia-arm.S delete mode 100644 cipher/cast5-amd64.S delete mode 100644 cipher/cast5-arm.S delete mode 100644 cipher/cipher-aeswrap.c delete mode 100644 cipher/cipher-cbc.c delete mode 100644 cipher/cipher-ccm.c delete mode 100644 cipher/cipher-cfb.c delete mode 100644 cipher/cipher-cmac.c delete mode 100644 cipher/cipher-ctr.c delete mode 100644 cipher/cipher-gcm.c delete mode 100644 cipher/cipher-internal.h delete mode 100644 cipher/cipher-ofb.c delete mode 100644 cipher/cipher-selftest.c delete mode 100644 cipher/cipher-selftest.h delete mode 100644 cipher/dsa-common.c delete mode 100644 cipher/ecc-common.h delete mode 100644 cipher/ecc-curves.c delete mode 100644 cipher/ecc-ecdsa.c delete mode 100644 cipher/ecc-eddsa.c delete mode 100644 cipher/ecc-gost.c delete mode 100644 cipher/ecc-misc.c delete mode 100644 cipher/gost.h delete mode 100644 cipher/gost28147.c delete mode 100644 cipher/gostr3411-94.c delete mode 100644 cipher/idea.c delete mode 100644 cipher/kdf-internal.h delete mode 100644 cipher/mac-cmac.c delete mode 100644 cipher/mac-gmac.c delete mode 100644 cipher/mac-hmac.c delete mode 100644 cipher/mac-internal.h delete mode 100644 cipher/mac.c delete mode 100644 cipher/pubkey-internal.h delete mode 100644 cipher/pubkey-util.c delete mode 100644 cipher/rijndael-amd64.S delete mode 100644 cipher/rijndael-arm.S delete mode 100644 cipher/rsa-common.c delete mode 100644 cipher/salsa20-amd64.S delete mode 100644 cipher/salsa20-armv7-neon.S delete mode 100644 cipher/salsa20.c delete mode 100644 cipher/scrypt.c delete mode 100644 cipher/serpent-armv7-neon.S delete mode 100644 cipher/serpent-avx2-amd64.S delete mode 100644 cipher/serpent-sse2-amd64.S delete mode 100644 cipher/sha1-ssse3-amd64.S delete mode 100644 cipher/sha256-ssse3-amd64.S delete mode 100644 cipher/sha512-armv7-neon.S delete mode 100644 cipher/sha512-avx-amd64.S delete mode 100644 cipher/sha512-avx2-bmi2-amd64.S delete mode 100644 cipher/sha512-ssse3-amd64.S delete mode 100644 cipher/stribog.c delete mode 100644 cipher/twofish-amd64.S delete mode 100644 cipher/twofish-arm.S rename build-aux/compile => compile (100%) rename build-aux/config.guess => config.guess (90%) rename build-aux/config.rpath => config.rpath (100%) rename build-aux/config.sub => config.sub (92%) rename build-aux/depcomp => depcomp (100%) rename doc/{ChangeLog-2011 => ChangeLog} (95%) delete mode 100644 doc/DCO delete mode 100644 doc/gcrypt.info-2 rename {build-aux => doc}/mdate-sh (100%) rename {build-aux => doc}/texinfo.tex (99%) delete mode 100644 doc/yat2m.c rename build-aux/install-sh => install-sh (74%) rename build-aux/ltmain.sh => ltmain.sh (67%) rename m4/{ChangeLog-2011 => ChangeLog} (73%) delete mode 100644 m4/lock.m4 delete mode 100644 m4/threadlib.m4 rename build-aux/missing => missing (100%) rename mpi/{ChangeLog-2011 => ChangeLog} (97%) delete mode 100644 mpi/ec-ed25519.c delete mode 100644 mpi/ec-internal.h rename random/{ChangeLog-2011 => ChangeLog} (92%) delete mode 100644 random/random-system.c rename src/{ChangeLog-2011 => ChangeLog} (96%) delete mode 100644 src/context.c delete mode 100644 src/context.h delete mode 100644 src/ec-context.h delete mode 100644 src/gcrypt-int.h create mode 100644 src/gcrypt-module.h delete mode 100644 src/hwf-arm.c delete mode 100644 src/hwf-common.h delete mode 100644 src/hwf-x86.c create mode 100644 src/module.c delete mode 100644 src/mpicalc.c rename tests/{ChangeLog-2011 => ChangeLog} (97%) create mode 100644 tests/ac-data.c create mode 100644 tests/ac-schemes.c create mode 100644 tests/ac.c delete mode 100644 tests/bench-slope.c delete mode 100644 tests/dsa-rfc6979.c delete mode 100644 tests/genhashdata.c delete mode 100755 tests/hashtest-256g.in delete mode 100644 tests/hashtest.c create mode 100644 tests/register.c delete mode 100644 tests/stopwatch.h delete mode 100644 tests/t-common.h delete mode 100644 tests/t-convert.c delete mode 100644 tests/t-ed25519.c delete mode 100644 tests/t-ed25519.inp delete mode 100644 tests/t-lock.c delete mode 100644 tests/t-mpi-point.c diff --git a/AUTHORS b/AUTHORS index 7c3c671..0685a4e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,47 +1,22 @@ Library: Libgcrypt Homepage: http://www.gnu.org/software/libgcrypt/ Maintainer: Werner Koch -Bug reports: http://bugs.gnupg.org +Bug reports: or http://bugs.gnupg.org Security related bug reports: License (library): LGPLv2.1+ License (manual and tools): GPLv2+ -Libgcrypt is free software. See the files COPYING.LIB and COPYING for -copying conditions, and LICENSES for notices about a few contributions -that require these additional notices to be distributed. License -copyright years may be listed using range notation, e.g., 2000-2013, -indicating that every year in the range, inclusive, is a copyrightable -year that would otherwise be listed individually. - - -List of Copyright holders -========================= - - Copyright (C) 1989,1991-2012 Free Software Foundation, Inc. - Copyright (C) 1994 X Consortium - Copyright (C) 1996 L. Peter Deutsch - Copyright (C) 1997 Werner Koch - Copyright (C) 1998 The Internet Society - Copyright (C) 1996-1999 Peter Gutmann, Paul Kendall, and Chris Wedgwood - Copyright (C) 1996-2006 Peter Gutmann, Matt Thomlinson and Blake Coverett - Copyright (C) 2003 Nikos Mavroyanopoulos - Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation) - Copyright (C) 2012-2014 g10 Code GmbH - Copyright (C) 2012 Simon Josefsson, Niels Möller - Copyright (c) 2012 Intel Corporation - Copyright (C) 2013 Christian Grothoff - Copyright (C) 2013-2014 Jussi Kivilinna - Copyright (C) 2013-2014 Dmitry Eremin-Solenikov - - -Authors with a FSF copyright assignment -======================================= - -LIBGCRYPT Werner Koch 2001-06-07 -Assigns past and future changes. -Assignment for future changes terminated on 2012-12-04. +Libgcrypt used to be part of GnuPG but has been taken out into its own +package on 2000-12-21. + + +Authors of Libgcrypt +==================== + +GNUPG Werner Koch 1998-02-23 +Assigns GNU Privacy Guard and future changes. wk@gnupg.org -Designed and implemented Libgcrypt. +Designed and implemented GnuPG. GNUPG Matthew Skala 1998-08-10 Disclaims changes. @@ -62,13 +37,12 @@ Disclaims changes. nh@df.lth.se Weak key patches. -GNUPG Rémi Guyomarch 1999-05-25 +GNUPG Rémi Guyomarch 1999-05-25 Assigns past and future changes. (g10/compress.c, g10/encr-data.c, g10/free-packet.c, g10/mdfilter.c, g10/plaintext.c, util/iobuf.c) rguyom@mail.dotcom.fr ANY g10 Code GmbH 2001-06-07 -Assignment for future changes terminated on 2012-12-04. Code marked with ChangeLog entries of g10 Code employees. LIBGCRYPT Timo Schulz 2001-08-31 @@ -122,57 +96,9 @@ Assigns Past and Future Changes openpgp@brainhub.org (cipher/ecc.c and related files) -LIBGCRYPT Ulrich Müller 2012-02-15 -Assigns Past and Future Changes -ulm@gentoo.org -(Changes to cipher/idea.c and related files) - -LIBGCRYPT Vladimir Serbinenko 2012-04-26 -Assigns Past and Future Changes -phcoder@gmail.com -(cipher/serpent.c) - - -Authors with a DCO -================== - -Christian Aistleitner -2013-02-26:20130226110144.GA12678@quelltextlich.at: - -Christian Grothoff -2013-03-21:514B5D8A.6040705@grothoff.org: - -Dmitry Eremin-Solenikov -2013-07-13:20130713144407.GA27334@fangorn.rup.mentorg.com: - -Dmitry Kasatkin -2012-12-14:50CAE2DB.80302@intel.com: - -Jussi Kivilinna -2012-11-15:20121115172331.150537dzb5i6jmy8@www.dalek.fi: - -Jussi Kivilinna -2013-05-06:5186720A.4090101@iki.fi: - -Rafaël Carré -2012-04-20:4F91988B.1080502@videolan.org: - -Sergey V. -2013-11-07:2066221.5IYa7Yq760@darkstar: - -Tomáš Mráz -2012-04-16:1334571250.5056.52.camel@vespa.frost.loc: - -Werner Koch (g10 Code GmbH) -2012-12-05:87obi8u4h2.fsf@vigenere.g10code.de: - More credits ============ - -Libgcrypt used to be part of GnuPG but has been taken out into its own -package on 2000-12-21. - The ATH implementation (src/ath*) has been taken from GPGME and relicensed to the LGPL by the copyright holder of GPGME (g10 Code GmbH); it is now considered to be a part of Libgcrypt. @@ -195,9 +121,9 @@ a part of libgcrypt proper. We distribute it merely for convenience. It has a permissive license and is copyrighted by atsec information security corporation. See the file for details. -The file salsa20.c is based on D.J. Bernstein's public domain code and -taken from Nettle. Copyright 2012 Simon Josefsson and Niels Möller. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2006, + 2007, 2008, 2009, 2011 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 diff --git a/ChangeLog b/ChangeLog index 8b46e29..2c56e2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4216 +1,1472 @@ -2014-01-29 Werner Koch - - Release 1.6.1. - * configure.ac: Set LT version to C20/A0/R1. - - Reserve control code for FIPS extensions. - * src/gcrypt.h.in (GCRYCTL_INACTIVATE_FIPS_FLAG): New. - (GCRYCTL_REACTIVATE_FIPS_FLAG): New. - * src/global.c (_gcry_vcontrol): Add them but return not_implemented. - - (cherry picked from commit aea96a64fbc58a0b6f9f435e97e93294c6eb1052) - - Support non weak symbol pthread platforms. - * m4/lock.m4, m4/threadlib.m4: New. From libgpg-error master. - * m4/Makefile.am (EXTRA_DIST): Add them. - * configure.ac (HAVE_PTHREAD): Remove test and ac_define. - (gl_LOCK): Do not use under Windows. - (LIBGCRYPT_CONFIG_LIBS): Add LIBTHREAD to support non-ELF pthread - systems. - * src/Makefile.am (dumpsexp_LDADD, mpicalc_LDADD, hmac256_LDADD) - (gcryptrnd_LDADD): Add LIBTHREAD. - * src/ath.c: Include pthread for any pthread version. - (ath_init, ath_install, ath_mutex_init, ath_mutex_destroy) - (ath_mutex_lock, ath_mutex_unlock): Support non-weak symbol pthread - systems. - * tests/Makefile.am (LDADD): Add LIBTHREAD. - * tests/t-lock.c: Replace HAVE_PTHREAD by USE_POSIX_THREADS - (run_test): Run only under W32 or pthread. - - tests: Remove non-portable format specifiers. - * tests/basic.c: Replace "%zi" by "%d" and casts. - -2014-01-29 NIIBE Yutaka - - Fix RSA Blinding. - * cipher/rsa.c (rsa_decrypt): Loop to get multiplicative inverse. - - (cherry picked from commit 121a90d8931944974054f7d94f63b7f89df87fa5) - -2014-01-28 Werner Koch - - sexp: Fix broken gcry_sexp_nth. - * src/sexp.c (_gcry_sexp_nth): Return a valid S-expression for a data - element. - (NODE): Remove unused typedef. - (ST_HINT): Comment unused macro. - - * tests/tsexp.c (bug_1594): New. - (main): Run new test. - -2014-01-27 Werner Koch - - mpi: Minor fix for Atari-mint. - * mpi/config.links [m68k-atari-mint]: Do not assume 68020. Suggested - by Alan Hourihane. - -2014-01-27 Dmitry Eremin-Solenikov - - tests: Pass -no-install to libtool. - * tests/Makefile.am: add AM_LDFLAGS = -no-install - - Fix most of memory leaks in tests code. - * tests/basic.c (check_ccm_cipher): Close cipher after use. - * tests/basic.c (check_one_cipher): Correct length of used buffer. - * tests/benchmark.c (cipher_bench): Use xcalloc to make buffer - initialized. - * tests/keygen.c (check_ecc_keys): Release generated key. - * tests/t-mpi-point.c (context_param): Release mpi Q. - * tests/t-sexp.c (check_extract_param): Release extracted number. - - Fix memory leaks in ecc code. - * cipher/ecc-curves.c (_gcry_ecc_update_curve_param): Release passed mpi - values. - * cipher/ecc.c (compute_keygrip): Fix potential memory leak in error - path. - * cipher/ecc.c (_gcry_ecc_get_curve): Release temporary mpi. - -2014-01-24 Werner Koch - - Check compiler features only for the relevant platform. - * mpi/config.links (mpi_cpu_arch): Always set for ARM. Set for HPPA. - Set to "undefined" for unknown platforms. - (try_asm_modules): Act upon only after having detected the CPU. - * configure.ac: Move the call to config.links before the platform - specific compiler checks. Check platform specific features only if - the platform is targeted. - -2014-01-24 Dmitry Eremin-Solenikov - - Truncate hash values for ECDSA signature scheme. - * cipher/dsa-common (_gcry_dsa_normalize_hash): New. Truncate opaque - mpis as required for DSA and ECDSA signature schemas. - * cipher/dsa.c (verify): Return gpg_err_code_t value from verify() to - behave like the rest of internal sign/verify functions. - * cipher/dsa.c (sign, verify, dsa_verify): Factor out hash truncation. - * cipher/ecc-ecdsa.c (_gcry_ecc_ecdsa_sign): Factor out hash truncation. - * cipher/ecc-ecdsa.c (_gcry_ecc_ecdsa_verify): - as required by ECDSA scheme, truncate hash values to bitlength of - used curve. - * tests/pubkey.c (check_ecc_sample_key): add a testcase for hash - truncation. - - (cherry picked from commit 9edcf1090e0485f9f383b6c54b18ea8ca3d4a225) - -2014-01-24 Werner Koch - - Support locking under Windows. - * src/ath.c: Add support for Windows. - * src/global.c (external_lock_test): New. - (_gcry_vcontrol): Call new function with formerly reserved code 61. - - * tests/t-common.h: New. Taken from current libgpg-error. - * tests/t-lock.c: New. Based on t-lock.c from libgpg-error. - * configure.ac (HAVE_PTHREAD): Set macro to 1 if defined. - (AC_CHECK_FUNCS): Check for flockfile. - * tests/Makefile.am (tests_bin): Add t-lock. - (noinst_HEADERS): Add t-common.h - (LDADD): Move value to ... - (default_ldadd): new. - (t_lock_LDADD): New. - -2014-01-20 Werner Koch - - cipher: Fix commit 77f28793. - * cipher/tiger.c (tiger_init): Add arg FLAGS. - (tiger1_init, tiger2_init): Ditto. - - (cherry picked from commit dad06e4d1b835bac778b87090b1d3894b7535b14) - - md: Add Whirlpool bug emulation feature. - * src/gcrypt.h.in (GCRY_MD_FLAG_BUGEMU1): New. - * src/cipher-proto.h (gcry_md_init_t): Add arg FLAGS. Change all code - to implement that flag. - * cipher/md.c (gcry_md_context): Replace SECURE and FINALIZED by bit - field FLAGS. Add flag BUGEMU1. Change all users. - (md_open): Replace args SECURE and HMAC by FLAGS. Init flags.bugemu1. - (_gcry_md_open): Add for GCRY_MD_FLAG_BUGEMU1. - (md_enable): Pass bugemu1 flag to the hash init function. - (_gcry_md_reset): Ditto. - -2014-01-14 Milan Broz - - PBKDF2: Use gcry_md_reset to speed up calculation. - * cipher/kdf.c (_gcry_kdf_pkdf2): Use gcry_md_reset - to speed up calculation. - -2014-01-13 Werner Koch - - Fix macro conflict in NetBSD. - * cipher/bithelp.h (bswap32): Rename to _gcry_bswap32. - (bswap64): Rename to _gcry_bswap64. - -2014-01-13 Dmitry Eremin-Solenikov - - Fix typo in search_oid. - * cipher/md.c (search_oid): Invert condition on oid comparison. - - Correct formatting of gcry_mac_get_algo_keylen documentation. - * doc/gcrypt.texi: add braces near gcry_mac_get_algo_keylen - documentation. - - Use braces around unsigned int in gcry_mac_get_algo_keylen - documentation, otherwise texinfo breaks that and uses 'int' as a - function definition. - -2014-01-12 Jussi Kivilinna - - * cipher/Makefile.am: Add 'blowfish-arm.S' and 'serpent-armv7-neon.S'. -- - Fix for bug https://bugs.g10code.com/gnupg/issue1584 - - (cherry picked from commit 7fef7f481c0a1542be34d1dc831f58d41846ac29) - - Fix buggy/incomplete detection of AVX/AVX2 support. - * configure.ac: Also check for 'xgetbv' instruction in AVX and AVX2 - inline assembly checks. - * src/hwf-x86.c [__i386__] (get_xgetbv): New function. - [__x86_64__] (get_xgetbv): New function. - [HAS_X86_CPUID] (detect_x86_gnuc): Check for OSXSAVE and OS support for - XMM&YMM registers and enable AVX/AVX2 only if XMM&YMM registers are - supported by OS. - -2014-01-10 Werner Koch - - Use the generic autogen.sh script. - * autogen.rc: New. - * Makefile.am (EXTRA_DIST): Add it. - * autogen.sh: Update from current GnuPG. - - (cherry picked from commit b0ac1f9b143aa15855914ba93fef900288d45c9c) - - Move all helper scripts to build-aux/ - * scripts/: Rename to build-aux/. - * compile, config.guess, config.rpath, config.sub - * depcomp, doc/mdate-sh, doc/texinfo.tex - * install-sh, ltmain.sh, missing: Move to build-aux/. - * Makefile.am (EXTRA_DIST): Adjust. - * configure.ac (AC_CONFIG_AUX_DIR): New. - (AM_SILENT_RULES): New. - - (cherry picked from commit df9b4eabf52faee6f289a4bc62219684442ae383) - -2013-12-16 Werner Koch - - Release 1.6.0. - - doc: Change yat2m to allow arbitrary condition names. - * doc/yat2m.c (MAX_CONDITION_NESTING): New. - (gpgone_defined): Remove. - (condition_s, condition_stack, condition_stack_idx): New. - (cond_is_active, cond_in_verbatim): New. - (add_predefined_macro, set_macro, macro_set_p): New. - (evaluate_conditions, push_condition, pop_condition): New. - (parse_file): Rewrite to use the condition stack. - (top_parse_file): Set prefined macros. - (main): Change -D to define arbitrary macros. - - tests: Add SHA-512 to the long hash test. - * tests/hashtest.c (testvectors): Add vectors for 256GiB SHA-512. - * tests/hashtest-256g.in (algos): Add test for SHA-512. - - Add configure option --enable-large-data-tests. - * configure.ac: Add option --enable-large-data-tests. - * tests/hashtest-256g.in: New. - * tests/Makefile.am (EXTRA_DIST): Add hashtest-256g.in. - (TESTS): Split up into tests_bin, tests_bin_last, tests_sh, and - tests_sh_last. - (tests_sh_last): Add hashtest-256g - (noinst_PROGRAMS): Add only tests_bin and tests_bin_last. - (bench-slope.log, hashtest-256g.log): New rules to enforce serial run. - - random: Call random progress handler more often. - * random/rndlinux.c (_gcry_rndlinux_gather_random): Update progress - indicator earlier. - - cipher: Normalize the MPIs used as input to secret key functions. - * cipher/dsa.c (sign): Normalize INPUT. - * cipher/elgamal.c (decrypt): Normalize A and B. - * cipher/rsa.c (secret): Normalize the INPUT. - (rsa_decrypt): Reduce DATA before passing to secret. - -2013-12-16 Jussi Kivilinna - - Change dummy variable in mpih-div.c to mpi_limb_t type. - * mpi/mpih-div.c (_gcry_mpih_mod_1, _gcry_mpih_divmod_1): Change dummy - variable to 'mpi_limb_t' type from 'int'. - - Remove duplicate gcry_mac_hd_t typedef. - * cipher/mac-internal.h (gcry_mac_hd_t): Remove. - -2013-12-15 Jussi Kivilinna - - Use u64 for CCM data lengths. - * cipher/cipher-ccm.c: Move code inside [HAVE_U64_TYPEDEF]. - [HAVE_U64_TYPEDEF] (_gcry_cipher_ccm_set_lengths): Use 'u64' for - data lengths. - [!HAVE_U64_TYPEDEF] (_gcry_cipher_ccm_encrypt) - (_gcry_cipher_ccm_decrypt, _gcry_cipher_ccm_set_nonce) - (_gcry_cipher_ccm_authenticate, _gcry_cipher_ccm_get_tag) - (_gcry_cipher_ccm_check_tag): Dummy functions returning - GPG_ERROR_NOT_SUPPORTED. - * cipher/cipher-internal.h (gcry_cipher_handle.u_mode.ccm) - (_gcry_cipher_ccm_set_lengths): Move inside [HAVE_U64_TYPEDEF] and use - u64 instead of size_t for CCM data lengths. - * cipher/cipher.c (_gcry_cipher_open_internal, cipher_reset) - (_gcry_cipher_ctl) [!HAVE_U64_TYPEDEF]: Return GPG_ERR_NOT_SUPPORTED - for CCM. - (_gcry_cipher_ctl) [HAVE_U64_TYPEDEF]: Use u64 for - GCRYCTL_SET_CCM_LENGTHS length parameters. - * tests/basic.c: Do not use CCM if !HAVE_U64_TYPEDEF. - * tests/bench-slope.c: Ditto. - * tests/benchmark.c: Ditto. - -2013-12-14 Werner Koch - - tests: Prevent rare failure of gcry_pk_decrypt test. - * tests/basic.c (check_pubkey_crypt): Add special mode 1. - (main): Add option --loop. - -2013-12-14 Jussi Kivilinna - - Minor fixes to SHA assembly implementations. - * cipher/Makefile.am: Correct 'sha256-avx*.S' to 'sha512-avx*.S'. - * cipher/sha1-ssse3-amd64.S: First line, correct filename. - * cipher/sha256-ssse3-amd64.S: Return correct stack burn depth. - * cipher/sha512-avx-amd64.S: Use 'vzeroall' to clear registers. - * cipher/sha512-avx2-bmi2-amd64.S: Ditto and return correct stack burn - depth. - - SHA-1/SSSE3: Do not check for Intel syntax assembly support. - * cipher/sha1-ssse3-amd64.S: Remove check for - HAVE_INTEL_SYNTAX_PLATFORM_AS. - * cipher/sha1.c [USE_SSSE3]: Ditto. - -2013-12-13 Jussi Kivilinna - - Convert SHA-1 SSSE3 implementation from mixed asm&C to pure asm. - * cipher/Makefile.am: Change 'sha1-ssse3-amd64.c' to - 'sha1-ssse3-amd64.S'. - * cipher/sha1-ssse3-amd64.c: Remove. - * cipher/sha1-ssse3-amd64.S: New. - - SHA-1: Add SSSE3 implementation. - * cipher/Makefile.am: Add 'sha1-ssse3-amd64.c'. - * cipher/sha1-ssse3-amd64.c: New. - * cipher/sha1.c (USE_SSSE3): New. - (SHA1_CONTEXT) [USE_SSSE3]: Add 'use_ssse3'. - (sha1_init) [USE_SSSE3]: Initialize 'use_ssse3'. - (transform): Rename to... - (_transform): this. - (transform): New. - * configure.ac [host=x86_64]: Add 'sha1-ssse3-amd64.lo'. - - Add missing register clearing in to SHA-256 and SHA-512 assembly. - * cipher/sha256-ssse3-amd64.S: Clear used XMM/YMM registers at return. - * cipher/sha512-avx-amd64.S: Ditto. - * cipher/sha512-avx2-bmi2-amd64.S: Ditto. - * cipher/sha512-ssse3-amd64.S: Ditto. - -2013-12-13 Werner Koch - - Update license information. - * LICENSES: New. - * Makefile.am (EXTRA_DIST): Add LICENSES. - * AUTHORS: Add list of copyright holders. - * README: Reference AUTHORS. - -2013-12-13 Jussi Kivilinna - - Fix empty clobber in AVX2 assembly check. - * configure.ac (gcry_cv_gcc_inline_asm_avx2): Add "cc" as assembly - globber. - - Fix W32 build. - * random/rndw32.c (register_poll, slow_gatherer): Change gcry_xmalloc to - xmalloc, and gcry_xrealloc to xrealloc. - -2013-12-12 Jussi Kivilinna - - SHA-512: Add AVX and AVX2 implementations for x86-64. - * cipher/Makefile.am: Add 'sha512-avx-amd64.S' and - 'sha512-avx2-bmi2-amd64.S'. - * cipher/sha512-avx-amd64.S: New. - * cipher/sha512-avx2-bmi2-amd64.S: New. - * cipher/sha512.c (USE_AVX, USE_AVX2): New. - (SHA512_CONTEXT) [USE_AVX]: Add 'use_avx'. - (SHA512_CONTEXT) [USE_AVX2]: Add 'use_avx2'. - (sha512_init, sha384_init) [USE_AVX]: Initialize 'use_avx'. - (sha512_init, sha384_init) [USE_AVX2]: Initialize 'use_avx2'. - [USE_AVX] (_gcry_sha512_transform_amd64_avx): New. - [USE_AVX2] (_gcry_sha512_transform_amd64_avx2): New. - (transform) [USE_AVX2]: Add call for AVX2 implementation. - (transform) [USE_AVX]: Add call for AVX implementation. - * configure.ac (HAVE_GCC_INLINE_ASM_BMI2): New check. - (sha512): Add 'sha512-avx-amd64.lo' and 'sha512-avx2-bmi2-amd64.lo'. - * doc/gcrypt.texi: Document 'intel-cpu' and 'intel-bmi2'. - * src/g10lib.h (HWF_INTEL_CPU, HWF_INTEL_BMI2): New. - * src/hwfeatures.c (hwflist): Add "intel-cpu" and "intel-bmi2". - * src/hwf-x86.c (detect_x86_gnuc): Check for HWF_INTEL_CPU and - HWF_INTEL_BMI2. - - SHA-512: Add SSSE3 implementation for x86-64. - * cipher/Makefile.am: Add 'sha512-ssse3-amd64.S'. - * cipher/sha512-ssse3-amd64.S: New. - * cipher/sha512.c (USE_SSSE3): New. - (SHA512_CONTEXT) [USE_SSSE3]: Add 'use_ssse3'. - (sha512_init, sha384_init) [USE_SSSE3]: Initialize 'use_ssse3'. - [USE_SSSE3] (_gcry_sha512_transform_amd64_ssse3): New. - (transform) [USE_SSSE3]: Call SSSE3 implementation. - * configure.ac (sha512): Add 'sha512-ssse3-amd64.lo'. - - SHA-256: Add SSSE3 implementation for x86-64. - * cipher/Makefile.am: Add 'sha256-ssse3-amd64.S'. - * cipher/sha256-ssse3-amd64.S: New. - * cipher/sha256.c (USE_SSSE3): New. - (SHA256_CONTEXT) [USE_SSSE3]: Add 'use_ssse3'. - (sha256_init, sha224_init) [USE_SSSE3]: Initialize 'use_ssse3'. - (transform): Rename to... - (_transform): This. - [USE_SSSE3] (_gcry_sha256_transform_amd64_ssse3): New. - (transform): New. - * configure.ac (HAVE_INTEL_SYNTAX_PLATFORM_AS): New check. - (sha256): Add 'sha256-ssse3-amd64.lo'. - * doc/gcrypt.texi: Document 'intel-ssse3'. - * src/g10lib.h (HWF_INTEL_SSSE3): New. - * src/hwfeatures.c (hwflist): Add "intel-ssse3". - * src/hwf-x86.c (detect_x86_gnuc): Test for SSSE3. - -2013-12-12 Werner Koch - - Add a configuration file to disable hardware features. - * src/hwfeatures.c: Inclyde syslog.h and ctype.h. - (HWF_DENY_FILE): New. - (my_isascii): New. - (parse_hwf_deny_file): New. - (_gcry_detect_hw_features): Call it. - - * src/mpicalc.c (main): Correctly initialize Libgcrypt. Add options - "--print-config" and "--disable-hwf". - - Move list of hardware features to hwfeatures.c. - * src/global.c (hwflist, disabled_hw_features): Move to .. - * src/hwfeatures.c: here. - (_gcry_disable_hw_feature): New. - (_gcry_enum_hw_features): New. - (_gcry_detect_hw_features): Remove arg DISABLED_FEATURES. - * src/global.c (print_config, _gcry_vcontrol, global_init): Adjust +2011-06-29 Werner Koch + + Release 1.5.0. + + * configure.ac: Keep LT version at C18/A7/R0 because it has + already been bumped up at 2010-07-09. + + * config.guess, config.sub: Update to 2011-06-03. + +2011-04-06 Werner Koch + + * configure.ac (emacs_local_vars_begin): Move more to the top to + avoid Emacs warnings. + +2011-03-30 Werner Koch + + * compat/compat.c (_gcry_compat_identification): Add version string. + +2011-03-08 Werner Koch + + * configure.ac (BUILD_REVISION): Use new git_brevis macro. + +2011-02-23 Werner Koch + + * configure.ac (LIBGCRYPT_CONFIG_HOST): New. + + * acinclude.m4 (AM_PATH_GPG_ERROR): Remove. + +2011-02-21 Werner Koch + + Release 1.5.0-beta1. + +2011-02-18 Werner Koch + + * configure.ac [GCC]: Remove the use of -fno-strict-aliasing. + +2011-02-11 Werner Koch + + * configure.ac: Add option --disbale-aesni-support. + (ENABLE_AESNI_SUPPORT): New macro. + +2011-02-04 Werner Koch + + * autogen.sh: Install the git pre-commit if not yet done. + +2010-12-23 Werner Koch + + * configure.ac (BUILD_REVISION): Use git_revision. + +2010-08-19 Werner Koch + + * configure.ac: Define GPG_ERR_ENABLE_ERRNO_MACROS. Remove + definition of _GNU_SOURCE. + (AC_GNU_SOURCE): New. + +2010-08-16 Werner Koch + + * configure.ac (INSERT_SYS_SELECT_H): New. + +2010-07-09 Werner Koch + + * configure.ac: Bump LT version to C18/A7/R0 to prepare a backport + of a new API to the 1.4 series. + +2010-04-19 Marcus Brinkmann + + * configure.ac: Check for -fno-strict-aliasing. + +2010-04-12 Brad Hards (wk) + + * configure.ac: Print more verbose info at the end. + +2010-03-24 Werner Koch + + * configure.ac (USE_RNDW32CE): New. + +2010-03-15 Werner Koch + + * configure.ac (emacs_local_vars_begin) + (emacs_local_vars_read_only, emacs_local_vars_end): New. + +2010-01-21 Werner Koch + + * compat/Makefile.am: New. + * compat/compat.c: New. + * compat/libcompat.h: New. + * compat/getpid.c, compat/clock.c: New. + + * configure.ac: Require libgpg-error 1.8. + (HAVE_W32CE_SYSTEM): New am_defines and am_conditionals. + (getpid): Check for replacement function. + (AC_CONFIG_LIBOBJ_DIR): New. + (AC_TYPE_PID_T): New. + (AM_INIT_AUTOMAKE): Use modern variant. + (AC_CONFIG_FILES): Add compat/Makfile. + * autogen.sh: Support W32CE. + * ltmain.sh: Update to 2.2.6b + (wrappers_required): Don't set for mingw32ce. + * Makefile.am (DIST_SUBDIRS, SUBDIRS): Add compat. + +2009-12-10 Werner Koch + + * configure.ac: Add option --disable-O-flag-munging. + +2009-12-08 Marcus Brinkmann + + Update to libtool 2.2.6a. + * configure.ac: Invoke AC_CONFIG_MACRO_DIR. + (AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ... + (LT_PREREQ, LT_INIT, LT_LANG): ... these. + * config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4: + Updated to libtool 2.2.6a. + * m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, + m4/lt~obsolete.m4: New files from libtool 2.2.6a. + +2009-08-05 Werner Koch + + * configure.ac: Test for sys/msg.h. + +2009-04-23 Werner Koch + + * README: Add a section on build problems. + +2009-01-22 Werner Koch + + * configure.ac: Bump LT version to C17/A6/R0 to mark the start of + a new development series. + +2009-01-22 Werner Koch + + Release 1.4.4. + + * configure.ac: Bump LT version to C16/A5/R2. + +2008-10-30 Werner Koch + + * configure.ac: Remove option --enable-gcc-warnings. Autodetect + useful gcc warnings in maintainer mode. + +2008-09-18 Werner Koch + + Release 1.4.3. + + * configure.ac: Bump LT version to C16/A5/R1. + +2008-09-15 Werner Koch + + * configure.ac: Cehck for syslog. + +2008-09-08 Werner Koch + + Release 1.4.2. + +2008-09-01 Werner Koch + + Release 1.4.2rc2. + + * configure.ac: Update svn_revision macro. + +2008-08-22 Werner Koch + + * configure.ac: Add option --enable-hmac-binary-check. + (DL_LIBS): Check whether -ldl is required. + +2008-08-19 Werner Koch + + Release 1.4.2rc1. + + * configure.ac: Bump LT version to C16/A5/R0. + +2008-08-18 Werner Koch + + * Makefile.am (EXTRA_DIST): Remove the unused BUGS file. + +2008-08-15 Werner Koch + + * configure.ac (AH_BOTTOM): Define GCRY_GPG_ERR_NOT_OPERATIONAL. + +2008-07-05 Werner Koch + + * random/: New. + * Makefile.am (DIST_SUBDIRS): Add random. + * configure.ac (AC_CONFIG_FILES): Add random/Makefile. + +2008-04-25 Werner Koch + + Release 1.4.1. + + * configure.ac: Bump LT version to C15/A4/R4. + +2008-04-22 Werner Koch + + * configure.ac: Set version to 1.4.1rc1. + +2008-04-18 Werner Koch + + * configure.ac (AH_BOTTOM): Add CAMELLIA_EXT_SYM_PREFIX. + (NAME_OF_DEV_RANDOM): Remove special cases for Solaris etc. This + matches the gnupg 1.4.9 version. + +2008-04-01 Werner Koch + + * configure.ac (AC_INIT): Fix quoting. + +2008-03-19 Werner Koch + + * configure.ac: Fix the tests for USE_ to either define or + undef the macros. Suggested by Dirk Stoecker. + +2008-03-18 Werner Koch + + * configure.ac: Test for uintptr_t. + +2008-02-18 Werner Koch + + * configure.ac (IS_DEVELOPMENT_VERSION): Set depending on the my_svn. + +2007-12-11 Werner Koch + + * configure.ac: We actually require libgpg-error 1.4. Reported by + Tim Mooney. + +2007-12-10 Werner Koch + + Released 1.4.0. + + * configure.ac: Set LT to C15/A4/R3. + +2007-12-05 Werner Koch + + * configure.ac: Add option --disable-padlock-support. + +2007-12-03 Werner Koch + + Released 1.3.2. + + * configure.ac: Set LT to C15/A4/R2. + + * config.sub, config.guess: Update to version 2007-11-19. + +2007-10-30 Werner Koch + + * configure.ac: Protect config.h against double inclusion. + +2007-10-26 Werner Koch + + Released 1.3.1. + + * configure.ac: Set LT to C15/A4/R1. + +2007-08-22 Werner Koch + + * README: Rewrite the license description. + * configure.ac (USE_RNDW32, USE_RNDUNIX): Unmark as GPL modules. + +2007-08-08 Werner Koch + + * configure.ac: Use $host and not $target. + +2007-07-26 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Fix a syntax error + in the test program which lurked there for 4 years. Adjusted name + of libtools global_system_pipe variable and add extra cut stage. + Reported by Gregor Riepl. + +2007-06-15 Werner Koch + + * autogen.sh (FORCE): Use = and not == in test to be POSIXly correct. + +2007-05-30 Werner Koch + + * configure.ac: Camellia is no longer GPL. + +2007-05-24 Werner Koch + + * configure.ac: Try to use -Wpointer-arith. + +2007-05-19 Marcus Brinkmann + + * configure.ac: Fix test for optional UDIV and UDIV_QRNND MPI + modules. + +2007-05-09 Marcus Brinkmann + + * configure.ac (ac_cv_mpi_config_done): Unused variable removed. + (ac_cv_mpi_mod_list, MPI_MOD_LIST_LO, MPI_MOD_LIST_O): Removed. + (MPI_MOD_ASM_MPIH_ADD1, MPI_MOD_ASM_MPIH_SUB1, + MPI_MOD_ASM_MPIH_MUL1, MPI_MOD_ASM_MPIH_MUL2, + MPI_MOD_ASM_MPIH_MUL3, MPI_MOD_ASM_MPIH_LSHIFT, + MPI_MOD_ASM_MPIH_RSHIFT, MPI_MOD_ASM_MPIH_UDIV, + MPI_MOD_ASM_MPIH_UDIV_QRNND, MPI_MOD_C_MPIH_ADD1, + MPI_MOD_C_MPIH_SUB1, MPI_MOD_C_MPIH_MUL1, MPI_MOD_C_MPIH_MUL2, + MPI_MOD_C_MPIH_MUL3, MPI_MOD_C_MPIH_LSHIFT, MPI_MOD_C_MPIH_RSHIFT, + MPI_MOD_C_MPIH_UDIV, MPI_MOD_C_MPIH_UDIV_QRNND): New automake + variables. + +2007-05-04 Werner Koch + + Released 1.3.0. + + * configure.ac: Set LT to C15/A4/R0. + + * configure.ac: Require automake 1.10 + (AM_PROG_CC_C_O): New. + +2007-05-03 Werner Koch + + * configure.ac: Fix detection of GPLed random modules. + +2007-05-02 Werner Koch + + * configure.ac (LIBGCRYPT_DIGESTS, LIBGCRYPT_CIPHERS) + (LIBGCRYPT_PUBKEY_CIPHERS): Ac_define lists of algorithms. + (default_ciphers): Don't make camellia a default. + +2007-05-02 David Shaw + + * NEWS, configure.ac: Add Camellia. + +2007-04-30 Werner Koch + + * README.apichanges: Move to doc/. + * Makefile.am (EXTRA_DIST): Removed that file. + +2007-04-28 Marcus Brinkmann + + * configure.ac: Allow to specify additional search directories + with --enable-mpi-path. + +2007-04-16 Werner Koch + + * configure.ac: Check for sysconf. + * acinclude.m4 (GNUPG_CHECK_MLOCK): Try to use sysconf to get the + page size and use getpagesize only then if available. + +2007-03-22 Werner Koch + + * configure.ac: Add support for ECC. + +2007-02-22 Werner Koch + + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Use + --enable-random-daemon. + + * configure.ac: New option --enable-random-daemon. + Create versioninfo.rc and provide the build information. + +2007-02-21 Werner Koch + + * Makefile.am, configure.ac: Ignore w32-dll/. + +2007-02-20 Werner Koch + + * configure.ac: Bump LT version to C14/A3/R0 in preparation for a + release. + + * autogen.sh: Add option --force. + * configure.ac: New option --disable-endian-check. Use a real + noexecstack test instead of requiring an option. Add SVN version + magic. + +2007-02-02 Werner Koch + + * configure.ac (FALLBACK_SOCKLEN_T): Special case for mingw32. + +2006-11-15 Werner Koch + + * autogen.sh: Add convenience option --build-amd64. + +2006-10-20 Werner Koch + + * Makefile.am (stowinstall): New convenience target. + +2006-10-12 Marcus Brinkmann + + * configure.ac (FALLBACK_SOCKLEN_T): Third time is a charm. + Define gcry_socklen_t, to avoid conflicts with socklen_t + definitions by autoconf. + +2006-10-11 Marcus Brinkmann + + * configure.ac (FALLBACK_SOCKLEN_T): Rewrite in terms of + socklen.m4. + +2006-10-11 Marcus Brinkmann + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Removed. + * configure.ac: Do not call GNUPG_FIX_HDR_VERSION. + +2006-10-10 Marcus Brinkmann + + * configure.ac: Invoke AC_CHECK_SOCKLEN_TYPE. + (AC_CONFIG_FILES): Add src/gcrypt.h. + (AC_CONFIG_SRCDIR): Change to src/libgcrypt.vers. + +2006-10-02 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Test on HOST and not + TARGET. Hardwire for mingw32. Allow setting via command line when + cross compiling. + +2006-08-29 Werner Koch + + * configure.ac (USE_SEED): New. + +2006-07-26 Werner Koch + + * configure.ac: New options --enable-noexecstack and + --disable-optimization. + +2006-07-04 Marcus Brinkmann + + * configure.ac: Call AC_LIBTOO_WIN32_DLL and AC_LIBTOOL_RC. + + * configure.ac: Call gl_TYPE_SOCKLEN_T instead of the other + socklen_t checks. + +2006-06-08 Marcus Brinkmann + + * configure.ac (PTH_LIBS): Add --all to pth-config invocation. + +2006-03-14 Werner Koch + + * configure.ac: Check for fctnl and ftruncate. + (HAVE_PTH): Check for GNU Pth. + (HAVE_W32_SYSTEM): Define it. + * acinclude.m4 (GNUPG_PTH_VERSION_CHECK): New. Taken from GnuPG 1.4. + +2005-12-08 Werner Koch + + * configure.ac: Changed the random device names for netbsd. From + Christian Biere. + +2005-11-02 Moritz Schulte + + * NEWS: Documented minor API changes. + +2005-09-15 Moritz Schulte + + * Makefile.am (EXTRA_DIST): Depend on README.SVN, not on README.CVS. + +2005-06-25 Moritz Schulte + + * configure.ac: Removed src/libgcrypt.pc from AC_CONFIG_FILES. + +2005-06-10 Werner Koch + + * configure.ac: Move detection of basic stuff to the top. For + example we need to know whether gcc is used before testing for it. + Reported by Ralf Fassel. + +2005-04-23 Moritz Schulte + + * acinclude.m4 (TYPE_SOCKLEN_T): New type definition test; + provided by Albert Chin. + * configure.ac: Don't use $(CMD) as it's not portable; use CMD in + backticks instead. Simpler -lnsl/-lsocket test. Use + TYPE_SOCKLEN_T test. Don't forget to set `random_modules' + correctly. + +2005-04-22 Moritz Schulte + + * configure.ac: Added support for pkgconfig; provided by Albert + Chin. + +2005-04-11 Moritz Schulte + + * configure.ac: Integrate Whirlpool. + +2005-01-04 Werner Koch + + Updated to automake 1.9. + + * acinclude.m4: Updated for use with automake 1.9. + + * configure.ac: Require libgpg-error 1.0; not really needed but + that is the first stable version. + + * Makefile.am (ACLOCAL_AMFLAGS): New for -I m4. + (AUTOMAKE_OPTIONS): New to create a bzip archive. + +2005-02-03 Moritz Schulte + + * THANKS: Updated. + +2004-08-09 Moritz Schulte + + * THANKS: Updated. + +2004-07-04 Moritz Schulte + + * THANKS: Updated. + +2004-04-21 Werner Koch + + * configure.ac: Don't print a warning if GNU make was not found. + +2004-05-07 Moritz Schulte + + * THANKS: Updated. + +2004-04-02 Thomas Schwinge + + * autogen.sh: Added ACLOCAL_FLAGS. + +2004-04-15 Werner Koch + + Released 1.2.0. + + * configure.ac: Set LT to C12/A1/R1. + +2004-04-06 Werner Koch + + * config.guess, config.sub, ltmain.sh: Updated to those from + libtools 1.5.4. + +2004-03-29 Werner Koch + + Released 1.1.94. + + * configure.ac: Set LT to C12/A1/R0. + +2004-03-10 Marcus Brinkmann + + * configure.ac (LIBGCRYPT_CONFIG_LIBS_PTHREAD, + LIBGCRYPT_CONFIG_CFLAGS_PTHREAD, LIBGCRYPT_CONFIG_LIBS_PTH, + LIBGCRYPT_CONFIG_CFLAGS_PTH, have_pth, have_pthread, AC_CHECK_PTH, + AC_CHECK_LIB(pthread), HAVE_PTH, HAVE_PTHREAD): Removed. + +2004-03-06 Werner Koch + + Released 1.1.93. + + * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): Replaced by + LIBGCRYPT_CONPIG_API_VERSION. Set it to 1. Set LT to C11/A0/R1. + +2004-03-05 Werner Koch + + * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): New. + +2004-02-20 Werner Koch + + Released 1.1.92. + + * configure.ac: Set LT to C11/A0/R0. + +2004-02-11 Werner Koch + + * autogen.sh (check_version): Removed bashism and simplified. + +2004-02-06 Werner Koch + + * configure.ac: Add rfc2268 cipher algorithm. + +2004-01-25 Moritz Schulte + + * THANKS: Updated. + +2003-12-19 Werner Koch + + Released 1.1.91. + + * configure.ac: Bumbed LT version to C10/A3/R1. + +2003-12-08 Werner Koch + + * Makefile.am (dist-hook): Don't distribute stuff from the now + obsolete scripts dir. + (EXTRA_DIST): Remove README_alpha + * README-alpha: Removed. + * configure.ac (AM_CONFIG_AUX_DIR): Removed. + + * COPYING.DOC: Removed. + * Makefile.am (EXTRA_DIST): Added README.CVS and + autogen.sh. Removed COPYING.DOC. + +2003-11-14 Werner Koch + + Released 1.1.90. + + * configure.ac: Bumbed LT version to C10/A3/R0. + + * configure.ac (have_ld_version_script): Set the default in + a separate test. + (PRINTABLE_OS_NAME): Don't handle the Hurd extra, this leads to + conflicts with BSD based GNU systems. The Hurd has now a working + uname. + +2003-11-04 Werner Koch + + * configure.ac (USE_SHA1): Make sure it is always included. + (USE_RMD160): Removed this AM conditional. + +2003-10-31 Werner Koch + + * configure.ac: Bumbed version number to 1.1.90-cvs for futher + development + + Released 1.1.44. + + * acinclude.m4 (AC_CHECK_PTH): Added. + * configure.ac: Use it here instead of the generic lib test. + Bumbed LT vesion to C9/A2/R0. + +2003-10-27 Werner Koch + + * configure.ac: Give a hint on where libgpg-error is available. + Reformatted long lines. Don't include gcrypt-defs.h. + (--enable-gcc-warnings): New option. + +2003-10-24 Moritz Schulte + + * configure.ac: Check for socklen_t. + +2003-10-11 Moritz Schulte + + * acinclude.m4: Update AM_PATH_GPG_ERROR macro. + +2003-09-04 Werner Koch + + Released 1.1.43. + + * configure.ac: Require libgpg-error 0.4 due to the prime interface. + +2003-08-29 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Re-implemented. + * configure.ac: Use it here. + +2003-08-27 Moritz Schulte + + * configure.ac: Substitute: LIBGCRYPT_CONFIG_LIBS_PTHREAD, + LIBGCRYPT_CONFIG_CFLAGS_PTHREAD, LIBGCRYPT_CONFIG_LIBS_PTH, + LIBGCRYPT_CONFIG_CFLAGS_PTH, LIBGCRYPT_THREAD_MODULES. + +2003-08-07 Moritz Schulte + + * configure.ac: Fail, if libgpg-error could not be found. + +2003-07-31 Werner Koch + + Released 1.1.42. + + * configure.ac: Set LT version to 7/0/0. + +2003-07-30 Werner Koch + + * AUTHORS (Maintainer): Assigned Moritz as Maintainer. + +2003-07-30 Moritz Schulte + + * NEWS: Include much more complete list of `Interface changes + relative to the 1.1.12 release'. + +2003-07-14 Moritz Schulte + + * configure.ac: Bumbed version number up to 1.1.42-cvs. + +2003-07-09 Moritz Schulte + + * configure.ac: Reintroduce --disable-asm, since it is needed by + mpi/config.links. + +2003-07-05 Moritz Schulte + + * README: Few changes, mention libgpg-error. + +2003-06-18 Moritz Schulte + + * configure.ac (available_ciphers): Removed Serpent, hrrm. + +2003-06-17 Moritz Schulte + + * acinclude.m4: Removed macro definitions: GNUPG_CHECK_FAQPROG, + GNUPG_CHECK_ENDIAN, GNUPG_CHECK_CACHE, GNUPG_CHECK_PIC, + GNUPG_CHECK_EXPORTDYNAMIC, GNUPG_CHECK_IPC, GNUPG_PROG_NM, + GNUPG_SYS_SYMBOL_UNDERSCORE, GNUPG_FUNC_MKDIR_TAKES_ONE_ARG, + GPH_PROG_DB2ANY. + Added macro definitions: AM_PATH_GPG_ERROR. + + * configure.ac: Use alternative approach for building based on + conditional sources, which does not make automake eat all your + memory, etc. + Removed unused tests. + Renamed --enable-static-rnd to --enable-random. + Use Autoconf's AC_C_BIGENDIAN macro instead of our own. + Re-organized the whole file. + +2003-06-16 Moritz Schulte + + * configure.ac (AC_CONFIG_FILES): Removed doc/version.sgml. + +2003-06-11 Moritz Schulte + + * configure.ac: Remove --enable-libgpg-error flag. + Ue AC_PATH_GPG_ERROR. + +2003-06-09 Moritz Schulte + + * NEWS: Mention API changes and libgpg-error. + +2003-05-25 Moritz Schulte + + * configure.ac (USE_LIBGPG_ERROR): Implementation of the + --enable-libgpg-error switch. + Define USE_LIBGPG_ERROR in LIBGCRYPT_CONFIG_FLAGS, in case + libgpg-error is used. + +2003-05-22 Moritz Schulte + + * configure.ac (AC_CHECK_HEADERS): Removed unused headers: + termio.h, langinfo.h. + (AC_CHECK_FUNCS): Removed unused functions: strsep, strlwr, + tcgetattr, setrlimit, strftime, nl_langinfo, sigaction, + sigprocmask, fopen64, fstat64. + +2003-04-27 Moritz Schulte + + * README: Documented new configure switches. + Mention the --enable-maintainer-switch. + + * configure.ac: Merged some code from GnuPG's configure.ac for + disabling sha512/tiger in case no 64 data types are available. + +2003-04-17 Moritz Schulte + + * configure.ac: Include support for sha512. + +2003-04-17 Moritz Schulte + + * AUTHORS: Updated. + +2003-04-16 Moritz Schulte + + * configure.ac: Implement command line switches: --enable-ciphers, + --enable-pubkey-ciphers and --enable-digests. + Set Automake conditionals and config.h symbols depending on the + selected ciphers, pubkey-ciphers, digests and random-modules. + + * acinclude.m4 (LIST_MEMBER): New macro. + + * configure.ac: Simplified, removed code for parsing + EXTRA_PROGRAMS from Makefile.am. + +2003-04-08 Moritz Schulte + + * configure.ac: Merged random-module selection code from GnuPG's + configure.ac. + +2003-04-07 Moritz Schulte + + * configure.ac: Removed code for generating contruct.c. + Remove digest modules from the static_modules list, only handle + random module selection. + + +2003-03-24 Moritz Schulte + + * NEWS: Mention new CBC_MAC flag. + + * AUTHORS (Maintainer): Update entry for Simon Josefsson. + +2003-03-04 Moritz Schulte + + * TODO: Remove item about resetting handles, since + gcry_cipher_reset is implemented by now. + + * NEWS: Mentioned gcry_cipher_reset. + +2003-01-21 Werner Koch + + * README (Configure options): New. + * configure.ac (have_ld_version_script): New option + --enable-ld-version-script. + +2003-01-20 Simon Josefsson + + * configure.ac (MODULES_IN_CIPHER): Add crc. + +2003-01-20 Werner Koch + + Released 1.1.12. + + * configure.ac (LIBGCRYPT_LT_REVISION): Bumbed up. + +2002-12-21 Werner Koch + + Released 1.1.11. + + * configure.ac (LIBGCRYPT_LT_CURRENT: Bumbed to 6/5/0 due to a new + interface + +2002-12-19 Werner Koch + + * configure.ac (have_pthread): Check for pthreads in libc. + (have_ld_version_script): New. + +2002-11-10 Werner Koch + + * configure.ac (MODULES_IN_CIPHER): Add md4.c. By Simon Josefsson. + +2002-09-20 Werner Koch + + Released 1.1.10. + + * configure.ac (HAVE_DEV_RANDOM_IOCTL): Don't check for it; it is + not used. + (AS_CHECK_HEADERS): Check for sys/select.h. + * Makefile.am (DIST_SUBDIRS): New to include the w32-dll directory + +2002-09-18 Timo Schulz + + * configure.ac: Added makefile for the W32 DLL. + +2002-09-17 Werner Koch + + * configure.ac: Check for Pth and Pthreads. + +2002-08-23 Werner Koch + + Released 1.1.9. + + * configure.ac (LIBGCRYPT_CONFIG_CFLAGS): Renamed from + LIBGCRYPT_CFLAGS and removed the libpath because it is set by the + config script. + (LIBGCRYPT_LT_REVISION): Set LT version to 5/4/1. + +2002-06-25 Werner Koch + + Released 1.1.8. + + * configure.ac: Set LT version to 5/4/0. + +2002-05-21 Werner Koch + + Released 1.1.7. + + * configure.ac: Set LT version to 4/3/0. + +2002-05-17 Werner Koch + + * configure.ac: Removed all the dynamic loading stuff. + +2002-05-16 Werner Koch + + * configure.ac: Reordered the C_CHECK_FUNCS. + +2002-05-15 Werner Koch + + * configure.ac: Adjusted for new MPI module stuff. + +2002-05-14 Werner Koch + + Changed license to the LGPL. + +2002-05-02 Werner Koch + + * jnlib/: Removed. + * Makefile.am (SUBDIRS): Removed jnlib. + * configure.ac (jnlib/Makefile): Removed. + + * configure.ac: Define _REENTRANT. + +2002-02-18 Werner Koch + + * configure.ac (MPI_EXTRA_ASM_OBJS): Use .lo suffix. + (AC_CANONICAL_TARGET): Added. + +2002-02-07 Werner Koch + + Released 1.1.6. + +2002-01-24 Werner Koch + + * jnlib/: Replaced by a fresh copy from GnuPG (actually the NewPG + development branch). Adjusted Makefile.am and jnlib-config.h accordingly. - Remove macro hacks for internal vs. external functions. Part 2 and last. - * src/visibility.h: Remove remaining define/undef hacks for symbol - visibility. Add macros to detect the use of the public functions. - Change all affected functions by replacing them by the x-macros. - * src/g10lib.h: Add internal prototypes. - (xtrymalloc, xtrycalloc, xtrymalloc_secure, xtrycalloc_secure) - (xtryrealloc, xtrystrdup, xmalloc, xcalloc, xmalloc_secure) - (xcalloc_secure, xrealloc, xstrdup, xfree): New macros. - -2013-12-11 Werner Koch - - random: Add a feature to close device file descriptors. - * src/gcrypt.h.in (GCRYCTL_CLOSE_RANDOM_DEVICE): New. - * src/global.c (_gcry_vcontrol): Call _gcry_random_close_fds. - * random/random.c (_gcry_random_close_fds): New. - * random/random-csprng.c (_gcry_rngcsprng_close_fds): New. - * random/random-fips.c (_gcry_rngfips_close_fds): New. - * random/random-system.c (_gcry_rngsystem_close_fds): New. - * random/rndlinux.c (open_device): Add arg retry. - (_gcry_rndlinux_gather_random): Add mode to close open fds. - - * tests/random.c (check_close_random_device): New. - (main): Call new test. - -2013-12-10 Werner Koch - - Fix last commit (9a37470c) - * src/secmem.c (lock_pool): Remove remaining line. Reported by Ian - Goldberg. - -2013-12-09 Werner Koch - - Fix one-off memory leak when build with Linux capability support. - * src/secmem.c (lock_pool, secmem_init): Use cap_free. Reported by - Mike Crowe . - -2013-12-09 David 'Digit' Turner - - Update libtool to support Android. - * m4/libtool.m4: Add "linux*android*" case. Taken from the libtool - repository. - -2013-12-09 Werner Koch - - tests: Speed up benchmarks in regression test mode. - * tests/tsexp.c (check_extract_param): Fix compiler warning. - * tests/Makefile.am (TESTS_ENVIRONMENT): Set GCRYPT_IN_REGRESSION_TEST. - * tests/bench-slope.c (main): Speed up if in regression test mode. - * tests/benchmark.c (main): Ditto. - - tests: Add --csv option to bench-slope. - * tests/bench-slope.c (STR, STR2): New. - (cvs_mode): New. - (num_measurement_repetitions): New. Replace use of - NUM_MEASUREMENT_REPETITIONS by this. - (current_section_name, current_algo_name, current_mode_name): New. - (bench_print_result_csv): New. - (bench_print_result_std): Rename from bench_print_result. - (bench_print_result): New. Divert depending on CSV_MODE. - (bench_print_header, bench_print_footer): take care of CSV_MODE. - (bench_print_algo, bench_print_mode): New. Use them instead of - explicit printfs. - (main): Add options --csv and --repetitions. - -2013-12-07 Werner Koch - - sexp: Allow long names and white space in gcry_sexp_extract_param. - * src/sexp.c (_gcry_sexp_vextract_param): Skip white space. Support - long parameter names. - * tests/tsexp.c (check_extract_param): Add test cases for long parameter - names and white space. - -2013-12-06 Werner Koch - - ecc: Merge partly duplicated code. - * cipher/ecc-eddsa.c (_gcry_ecc_eddsa_sign): Factor A hashing out to ... - (_gcry_ecc_eddsa_compute_h_d): new function. - * cipher/ecc-misc.c (_gcry_ecc_compute_public): Use new function. - (reverse_buffer): Remove. - - ecc: Remove unused internal function. - * src/cipher-proto.h (gcry_pk_spec): Remove get_param. - * cipher/ecc-curves.c (_gcry_ecc_get_param_sexp): Merge in code from - _gcry_ecc_get_param. - (_gcry_ecc_get_param): Remove. - * cipher/ecc.c (_gcry_pubkey_spec_ecc): Remove _gcry_ecc_get_param. - -2013-12-06 Jussi Kivilinna - - Fix building on mingw32. - * src/gcrypt-int.h: Include . - -2013-12-05 Werner Koch - - ecc: Change OID for Ed25519. - * cipher/ecc-curves.c (curve_aliased): Add more suitable OID for - Ed25519. - - Remove macro hacks for internal vs. external functions. Part 1. - * src/visibility.h: Remove almost all define/undef hacks for symbol - visibility. Add macros to detect the use of the public functions. - Change all affected functions by prefixing them explicitly with an - underscore and change all internal callers to call the underscore - prefixed versions. Provide convenience macros from sexp and mpi - functions. - * src/visibility.c: Change all functions to use only gpg_err_code_t - and translate to gpg_error_t only in visibility.c. - -2013-12-04 Jussi Kivilinna - - mpi: add inline assembly for x86-64. - * mpi/longlong.h [__x86_64] (add_ssaaaa, sub_ddmmss, umul_ppmm) - (udiv_qrnnd, count_leading_zeros, count_trailing_zeros): New. - -2013-12-04 NIIBE Yutaka - - mpi: fix gcry_mpi_powm for negative base. - * mpi/mpi-pow.c (gcry_mpi_powm) [USE_ALGORITHM_SIMPLE_EXPONENTIATION]: - Fix for the case where BASE is negative. - * tests/mpitests.c (test_powm): Add a test case of (-17)^6 mod 19. - -2013-12-03 Werner Koch - - Add build support for ppc64le. - * config.guess, config.sub: Update to latest version (2013-11-29). - * m4/libtool.m4: Add patches for ppc64le. - -2013-12-03 Jussi Kivilinna - - rijndael: fix compiler warning on aarch64. - * cipher/rijndael.c (do_setkey): Use braces for empty if statement - instead of semicolon. - - Add aarch64 (arm64) mpi assembly. - * mpi/aarch64/mpi-asm-defs.h: New. - * mpi/aarch64/mpih-add1.S: New. - * mpi/aarch64/mpih-mul1.S: New. - * mpi/aarch64/mpih-mul2.S: New. - * mpi/aarch64/mpih-mul3.S: New. - * mpi/aarch64/mpih-sub1.S: New. - * mpi/config.links [host=aarch64-*-*]: Add configguration for aarch64 - assembly. - * mpi/longlong.h [__aarch64__] (add_ssaaaa, sub_ddmmss, umul_ppmm) - (count_leading_zeros): New. - -2013-12-02 Werner Koch - - ecc: Use constant time point operation for Twisted Edwards. - * mpi/ec.c (_gcry_mpi_ec_mul_point): Try to do a constant time - operation if needed. - * tests/benchmark.c (main): Add option --use-secmem. - - ecc: Make gcry_pk_testkey work for Ed25519. - * cipher/ecc-misc.c (_gcry_ecc_compute_public): Add optional args G - and d. Change all callers. - * cipher/ecc.c (gen_y_2): Remove. - (check_secret_key): Use generic public key compute function. Adjust - for use with Ed25519 and EdDSA. - (nist_generate_key): Do not use the compliant key thingy for Ed25519. - (ecc_check_secret_key): Make parameter parsing similar to the other - functions. - * cipher/ecc-curves.c (domain_parms): Zero prefix some parameters so - that _gcry_ecc_update_curve_param works correctly. - * tests/keygen.c (check_ecc_keys): Add "param" flag. Check all - Ed25519 keys. - - ecc: Fix eddsa point decompression. - * cipher/ecc-eddsa.c (_gcry_ecc_eddsa_recover_x): Fix the negative - case. - - ecc: Fix gcry_mpi_ec_curve_point for Weierstrass. - * mpi/ec.c (_gcry_mpi_ec_curve_point): Use correct equation. - (ec_pow3): New. - (ec_p_init): Always copy B. - - mpi: Introduce 4 user flags for gcry_mpi_t. - * src/gcrypt.h.in (GCRYMPI_FLAG_USER1, GCRYMPI_FLAG_USER2) - (GCRYMPI_FLAG_USER3, GCRYMPI_FLAG_USER4): New. - * mpi/mpiutil.c (gcry_mpi_set_flag, gcry_mpi_clear_flag) - (gcry_mpi_get_flag, _gcry_mpi_free): Implement them. - (gcry_mpi_set_opaque): Keep user flags. - -2013-11-29 Vladimir 'φ-coder/phcoder' Serbinenko - - Fix armv3 compile error. - * mpi/longlong.h [__arm__ && __ARM_ARCH < 4] (umul_ppmm): Use - __AND_CLOBBER_CC instead of __CLOBBER_CC. - - longlong.h on mips with clang. - * mpi/longlong.h [__mips__]: Use C-language version with clang. - -2013-11-24 Jussi Kivilinna - - Camellia: Tweaks for AES-NI implementations. - * cipher/camellia-aesni-avx-amd64.S: Align stack to 16 bytes; tweak - key-setup for small speed up. - * cipher/camellia-aesni-avx2-amd64.S: Use vmovdqu even with aligned - stack; reorder vinsert128 instructions; use rbp for stack frame. - -2013-11-21 Jussi Kivilinna - - Add GMAC to MAC API. - * cipher/Makefile.am: Add 'mac-gmac.c'. - * cipher/mac-gmac.c: New. - * cipher/mac-internal.h (gcry_mac_handle): Add 'u.gcm'. - (_gcry_mac_type_spec_gmac_aes, _gcry_mac_type_spec_gmac_twofish) - (_gcry_mac_type_spec_gmac_serpent, _gcry_mac_type_spec_gmac_seed) - (_gcry_mac_type_spec_gmac_camellia): New externs. - * cipher/mac.c (mac_list): Add GMAC specifications. - * doc/gcrypt.texi: Add mention of GMAC. - * src/gcrypt.h.in (gcry_mac_algos): Add GCM algorithms. - * tests/basic.c (check_one_mac): Add support for MAC IVs. - (check_mac): Add support for MAC IVs and add GMAC test vectors. - * tests/bench-slope.c (mac_bench): Iterate algorithm numbers to 499. - * tests/benchmark.c (mac_bench): Iterate algorithm numbers to 499. - - GCM: Move gcm_table initialization to setkey. - * cipher/cipher-gcm.c: Change all 'c->u_iv.iv' to - 'c->u_mode.gcm.u_ghash_key.key'. - (_gcry_cipher_gcm_setkey): New. - (_gcry_cipher_gcm_initiv): Move ghash initialization to function above. - * cipher/cipher-internal.h (gcry_cipher_handle): Add - 'u_mode.gcm.u_ghash_key'; Reorder 'u_mode.gcm' members for partial - clearing in gcry_cipher_reset. - (_gcry_cipher_gcm_setkey): New prototype. - * cipher/cipher.c (cipher_setkey): Add GCM setkey. - (cipher_reset): Clear 'u_mode' only partially for GCM. - -2013-11-20 Jussi Kivilinna - - GCM: Add support for split data buffers and online operation. - * cipher/cipher-gcm.c (do_ghash_buf): Add buffering for less than - blocksize length input and padding handling. - (_gcry_cipher_gcm_encrypt, _gcry_cipher_gcm_decrypt): Add handling - for AAD padding and check if data has already being padded. - (_gcry_cipher_gcm_authenticate): Check that AAD or data has not being - padded yet. - (_gcry_cipher_gcm_initiv): Clear padding marks. - (_gcry_cipher_gcm_tag): Add finalization and padding; Clear sensitive - data from cipher handle, since they are not used after generating tag. - * cipher/cipher-internal.h (gcry_cipher_handle): Add 'u_mode.gcm.macbuf', - 'u_mode.gcm.mac_unused', 'u_mode.gcm.ghash_data_finalized' and - 'u_mode.gcm.ghash_aad_finalized'. - * tests/basic.c (check_gcm_cipher): Rename to... - (_check_gcm_cipher): ...this and add handling for different buffer step - lengths; Enable per byte buffer testing. - (check_gcm_cipher): Call _check_gcm_cipher with different buffer step - sizes. - - GCM: Use size_t for buffer sizes. - * cipher/cipher-gcm.c (ghash, gcm_bytecounter_add, do_ghash_buf) - (_gcry_cipher_gcm_encrypt, _gcry_cipher_gcm_decrypt) - (_gcry_cipher_gcm_authenticate, _gcry_cipher_gcm_geniv) - (_gcry_cipher_gcm_tag): Use size_t for buffer lengths. - * cipher/cipher-internal.h (_gcry_cipher_gcm_encrypt) - (_gcry_cipher_gcm_decrypt, _gcry_cipher_gcm_authenticate): Use size_t - for buffer lengths. - - GCM: add FIPS mode restrictions. - * cipher/cipher-gcm.c (_gcry_cipher_gcm_encrypt) - (_gcry_cipher_gcm_get_tag): Do not allow using in FIPS mode is setiv - was invocated directly. - (_gcry_cipher_gcm_setiv): Rename to... - (_gcry_cipher_gcm_initiv): ...this. - (_gcry_cipher_gcm_setiv): New setiv function with check for FIPS mode. - [TODO] (_gcry_cipher_gcm_getiv): New. - * cipher/cipher-internal.h (gcry_cipher_handle): Add - 'u_mode.gcm.disallow_encryption_because_of_setiv_in_fips_mode'. - - GCM: Add clearing and checking of marks.tag. - * cipher/cipher-gcm.c (_gcry_cipher_gcm_encrypt) - (_gcry_cipher_gcm_decrypt, _gcry_cipher_gcm_authenticate): Make sure - that tag has not been finalized yet. - (_gcry_cipher_gcm_setiv): Clear 'marks.tag'. - - GCM: Add stack burning. - * cipher/cipher-gcm.c (do_ghash, ghash): Return stack burn depth. - (setupM): Wipe 'tmp' buffer. - (do_ghash_buf): Wipe 'tmp' buffer and add stack burning. - - Add aggregated bulk processing for GCM on x86-64. - * cipher/cipher-gcm.c [__x86_64__] (gfmul_pclmul_aggr4): New. - (ghash) [GCM_USE_INTEL_PCLMUL]: Add aggregated bulk processing - for __x86_64__. - (setupM) [__x86_64__]: Add initialization for aggregated bulk - processing. - - GCM: Tweak Intel PCLMUL ghash loop for small speed-up. - * cipher/cipher-gcm.c (do_ghash): Mark 'inline'. - [GCM_USE_INTEL_PCLMUL] (do_ghash_pclmul): Rename to... - [GCM_USE_INTEL_PCLMUL] (gfmul_pclmul): ..this and make inline function. - (ghash) [GCM_USE_INTEL_PCLMUL]: Preload data before ghash-pclmul loop. - - GCM: Use counter mode code for speed-up. - * cipher/cipher-gcm.c (ghash): Add process for multiple blocks. - (gcm_bytecounter_add, gcm_add32_be128, gcm_check_datalen) - (gcm_check_aadlen_or_ivlen, do_ghash_buf): New functions. - (_gcry_cipher_gcm_encrypt, _gcry_cipher_gcm_decrypt) - (_gcry_cipher_gcm_authenticate, _gcry_cipher_gcm_set_iv) - (_gcry_cipher_gcm_tag): Adjust to use above new functions and - counter mode functions for encryption/decryption. - * cipher/cipher-internal.h (gcry_cipher_handle): Remove 'length'; Add - 'u_mode.gcm.(addlen|datalen|tagiv|datalen_over_limits)'. - (_gcry_cipher_gcm_setiv): Return gcry_err_code_t. - * cipher/cipher.c (cipher_setiv): Return error code. - (_gcry_cipher_setiv): Handle error code from 'cipher_setiv'. - - Add Intel PCLMUL acceleration for GCM. - * cipher/cipher-gcm.c (fillM): Rename... - (do_fillM): ...to this. - (ghash): Remove. - (fillM): New macro. - (GHASH): Use 'do_ghash' instead of 'ghash'. - [GCM_USE_INTEL_PCLMUL] (do_ghash_pclmul): New. - (ghash): New. - (setupM): New. - (_gcry_cipher_gcm_encrypt, _gcry_cipher_gcm_decrypt) - (_gcry_cipher_gcm_authenticate, _gcry_cipher_gcm_setiv) - (_gcry_cipher_gcm_tag): Use 'ghash' instead of 'GHASH' and - 'c->u_mode.gcm.u_tag.tag' instead of 'c->u_tag.tag'. - * cipher/cipher-internal.h (GCM_USE_INTEL_PCLMUL): New. - (gcry_cipher_handle): Move 'u_tag' and 'gcm_table' under - 'u_mode.gcm'. - * configure.ac (pclmulsupport, gcry_cv_gcc_inline_asm_pclmul): New. - * src/g10lib.h (HWF_INTEL_PCLMUL): New. - * src/global.c: Add "intel-pclmul". - * src/hwf-x86.c (detect_x86_gnuc): Add check for Intel PCLMUL. - - GCM: GHASH optimizations. - * cipher/cipher-gcm.c [GCM_USE_TABLES] (gcmR, ghash): Replace with new. - [GCM_USE_TABLES] [GCM_TABLES_USE_U64] (bshift, fillM, do_ghash): New. - [GCM_USE_TABLES] [!GCM_TABLES_USE_U64] (bshift, fillM): Replace with - new. - [GCM_USE_TABLES] [!GCM_TABLES_USE_U64] (do_ghash): New. - (_gcry_cipher_gcm_tag): Remove extra memcpy to outbuf and use - buf_eq_const for comparing authentication tag. - * cipher/cipher-internal.h (gcry_cipher_handle): Different 'gcm_table' - for 32-bit and 64-bit platforms. - - Add some documentation for GCM mode. - * doc/gcrypt.texi: Add mention of GCM mode. - -2013-11-19 Dmitry Eremin-Solenikov - - Initial implementation of GCM. - * cipher/Makefile.am: Add 'cipher-gcm.c'. - * cipher/cipher-ccm.c (_gcry_ciphert_ccm_set_lengths) - (_gcry_cipher_ccm_authenticate, _gcry_cipher_ccm_tag) - (_gcry_cipher_ccm_encrypt, _gcry_cipher_ccm_decrypt): Change - 'c->u_mode.ccm.tag' to 'c->marks.tag'. - * cipher/cipher-gcm.c: New. - * cipher/cipher-internal.h (GCM_USE_TABLES): New. - (gcry_cipher_handle): Add 'marks.tag', 'u_tag', 'length' and - 'gcm_table'; Remove 'u_mode.ccm.tag'. - (_gcry_cipher_gcm_encrypt, _gcry_cipher_gcm_decrypt) - (_gcry_cipher_gcm_setiv, _gcry_cipher_gcm_authenticate) - (_gcry_cipher_gcm_get_tag, _gcry_cipher_gcm_check_tag): New. - * cipher/cipher.c (_gcry_cipher_open_internal, cipher_setkey) - (cipher_encrypt, cipher_decrypt, _gcry_cipher_authenticate) - (_gcry_cipher_gettag, _gcry_cipher_checktag): Add GCM mode handling. - * src/gcrypt.h.in (gcry_cipher_modes): Add GCRY_CIPHER_MODE_GCM. - (GCRY_GCM_BLOCK_LEN): New. - * tests/basic.c (check_gcm_cipher): New. - (check_ciphers): Add GCM check. - (check_cipher_modes): Call 'check_gcm_cipher'. - * tests/bench-slope.c (bench_gcm_encrypt_do_bench) - (bench_gcm_decrypt_do_bench, bench_gcm_authenticate_do_bench) - (gcm_encrypt_ops, gcm_decrypt_ops, gcm_authenticate_ops): New. - (cipher_modes): Add GCM enc/dec/auth. - (cipher_bench_one): Limit GCM to block ciphers with 16 byte block-size. - * tests/benchmark.c (cipher_bench): Add GCM. - -2013-11-19 Jussi Kivilinna - - Camellia: fix compiler warning. - * cipher/camellia-glue.c (camellia_setkey): Use braces around empty if - statement. - - Tweak Camellia-AVX key-setup for small speed-up. - * cipher/camellia-aesni-avx-amd64.S (camellia_f): Merge S-function output - rotation with P-function. - - Add CMAC (Cipher-based MAC) to MAC API. - * cipher/Makefile.am: Add 'cipher-cmac.c' and 'mac-cmac.c'. - * cipher/cipher-cmac.c: New. - * cipher/cipher-internal.h (gcry_cipher_handle.u_mode): Add 'cmac'. - * cipher/cipher.c (gcry_cipher_open): Rename to... - (_gcry_cipher_open_internal): ...this and add CMAC. - (gcry_cipher_open): New wrapper that disallows use of internal - modes (CMAC) from outside. - (cipher_setkey, cipher_encrypt, cipher_decrypt) - (_gcry_cipher_authenticate, _gcry_cipher_gettag) - (_gcry_cipher_checktag): Add handling for CMAC mode. - (cipher_reset): Do not reset 'marks.key' and do not clear subkeys in - 'u_mode' in CMAC mode. - * cipher/mac-cmac.c: New. - * cipher/mac-internal.h: Add CMAC support and algorithms. - * cipher/mac.c: Add CMAC algorithms. - * doc/gcrypt.texi: Add documentation for CMAC. - * src/cipher.h (gcry_cipher_internal_modes): New. - (_gcry_cipher_open_internal, _gcry_cipher_cmac_authenticate) - (_gcry_cipher_cmac_get_tag, _gcry_cipher_cmac_check_tag) - (_gcry_cipher_cmac_set_subkeys): New prototypes. - * src/gcrypt.h.in (gcry_mac_algos): Add CMAC algorithms. - * tests/basic.c (check_mac): Add CMAC test vectors. - -2013-11-16 Jussi Kivilinna - - Add new MAC API, initially with HMAC. - * cipher/Makefile.am: Add 'mac.c', 'mac-internal.h' and 'mac-hmac.c'. - * cipher/bufhelp.h (buf_eq_const): New. - * cipher/cipher-ccm.c (_gcry_cipher_ccm_tag): Use 'buf_eq_const' for - constant-time compare. - * cipher/mac-hmac.c: New. - * cipher/mac-internal.h: New. - * cipher/mac.c: New. - * doc/gcrypt.texi: Add documentation for MAC API. - * src/gcrypt-int.h [GPG_ERROR_VERSION_NUMBER < 1.13] - (GPG_ERR_MAC_ALGO): New. - * src/gcrypt.h.in (gcry_mac_handle, gcry_mac_hd_t, gcry_mac_algos) - (gcry_mac_flags, gcry_mac_open, gcry_mac_close, gcry_mac_ctl) - (gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write) - (gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen) - (gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name) - (gcry_mac_reset, gcry_mac_test_algo): New. - * src/libgcrypt.def (gcry_mac_open, gcry_mac_close, gcry_mac_ctl) - (gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write) - (gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen) - (gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New. - * src/libgcrypt.vers (gcry_mac_open, gcry_mac_close, gcry_mac_ctl) - (gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write) - (gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen) - (gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New. - * src/visibility.c (gcry_mac_open, gcry_mac_close, gcry_mac_ctl) - (gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write) - (gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen) - (gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New. - * src/visibility.h (gcry_mac_open, gcry_mac_close, gcry_mac_ctl) - (gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write) - (gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen) - (gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New. - * tests/basic.c (check_one_mac, check_mac): New. - (main): Call 'check_mac'. - * tests/bench-slope.c (bench_print_header, bench_print_footer): Allow - variable algorithm name width. - (_cipher_bench, hash_bench): Update to above change. - (bench_hash_do_bench): Add 'gcry_md_reset'. - (bench_mac_mode, bench_mac_init, bench_mac_free, bench_mac_do_bench) - (mac_ops, mac_modes, mac_bench_one, _mac_bench, mac_bench): New. - (main): Add 'mac' benchmark options. - * tests/benchmark.c (mac_repetitions, mac_bench): New. - (main): Add 'mac' benchmark options. - - Use correct blocksize of 32 bytes for GOSTR3411-94 HMAC. - * cipher/md.c (md_open): Set macpads_Bsize to 32 for - GCRY_MD_GOST24311_94. - -2013-11-15 Jussi Kivilinna - - cipher: use size_t for internal buffer lengths. - * cipher/arcfour.c (do_encrypt_stream, encrypt_stream): Use 'size_t' - for buffer lengths. - * cipher/blowfish.c (_gcry_blowfish_ctr_enc, _gcry_blowfish_cbc_dec) - (_gcry_blowfish_cfb_dec): Ditto. - * cipher/camellia-glue.c (_gcry_camellia_ctr_enc) - (_gcry_camellia_cbc_dec, _gcry_blowfish_cfb_dec): Ditto. - * cipher/cast5.c (_gcry_cast5_ctr_enc, _gcry_cast5_cbc_dec) - (_gcry_cast5_cfb_dec): Ditto. - * cipher/cipher-aeswrap.c (_gcry_cipher_aeswrap_encrypt) - (_gcry_cipher_aeswrap_decrypt): Ditto. - * cipher/cipher-cbc.c (_gcry_cipher_cbc_encrypt) - (_gcry_cipher_cbc_decrypt): Ditto. - * cipher/cipher-ccm.c (_gcry_cipher_ccm_encrypt) - (_gcry_cipher_ccm_decrypt): Ditto. - * cipher/cipher-cfb.c (_gcry_cipher_cfb_encrypt) - (_gcry_cipher_cfb_decrypt): Ditto. - * cipher/cipher-ctr.c (_gcry_cipher_ctr_encrypt): Ditto. - * cipher/cipher-internal.h (gcry_cipher_handle->bulk) - (_gcry_cipher_cbc_encrypt, _gcry_cipher_cbc_decrypt) - (_gcry_cipher_cfb_encrypt, _gcry_cipher_cfb_decrypt) - (_gcry_cipher_ofb_encrypt, _gcry_cipher_ctr_encrypt) - (_gcry_cipher_aeswrap_encrypt, _gcry_cipher_aeswrap_decrypt) - (_gcry_cipher_ccm_encrypt, _gcry_cipher_ccm_decrypt): Ditto. - * cipher/cipher-ofb.c (_gcry_cipher_cbc_encrypt): Ditto. - * cipher/cipher-selftest.h (gcry_cipher_bulk_cbc_dec_t) - (gcry_cipher_bulk_cfb_dec_t, gcry_cipher_bulk_ctr_enc_t): Ditto. - * cipher/cipher.c (cipher_setkey, cipher_setiv, do_ecb_crypt) - (do_ecb_encrypt, do_ecb_decrypt, cipher_encrypt) - (cipher_decrypt): Ditto. - * cipher/rijndael.c (_gcry_aes_ctr_enc, _gcry_aes_cbc_dec) - (_gcry_aes_cfb_dec, _gcry_aes_cbc_enc, _gcry_aes_cfb_enc): Ditto. - * cipher/salsa20.c (salsa20_setiv, salsa20_do_encrypt_stream) - (salsa20_encrypt_stream, salsa20r12_encrypt_stream): Ditto. - * cipher/serpent.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) - (_gcry_serpent_cfb_dec): Ditto. - * cipher/twofish.c (_gcry_twofish_ctr_enc, _gcry_twofish_cbc_dec) - (_gcry_twofish_cfb_dec): Ditto. - * src/cipher-proto.h (gcry_cipher_stencrypt_t) - (gcry_cipher_stdecrypt_t, cipher_setiv_fuct_t): Ditto. - * src/cipher.h (_gcry_aes_cfb_enc, _gcry_aes_cfb_dec) - (_gcry_aes_cbc_enc, _gcry_aes_cbc_dec, _gcry_aes_ctr_enc) - (_gcry_blowfish_cfb_dec, _gcry_blowfish_cbc_dec) - (_gcry_blowfish_ctr_enc, _gcry_cast5_cfb_dec, _gcry_cast5_cbc_dec) - (_gcry_cast5_ctr_enc, _gcry_camellia_cfb_dec, _gcry_camellia_cbc_dec) - (_gcry_camellia_ctr_enc, _gcry_serpent_cfb_dec, _gcry_serpent_cbc_dec) - (_gcry_serpent_ctr_enc, _gcry_twofish_cfb_dec, _gcry_twofish_cbc_dec) - (_gcry_twofish_ctr_enc): Ditto. - - Camellia: Add AVX/AES-NI key setup. - * cipher/camellia-aesni-avx-amd64.S (key_bitlength, key_table): New - order of fields in ctx. - (camellia_f, vec_rol128, vec_ror128): New macros. - (__camellia_avx_setup128, __camellia_avx_setup256) - (_gcry_camellia_aesni_avx_keygen): New functions. - * cipher/camellia-aesni-avx2-amd64.S (key_bitlength, key_table): New - order of fields in ctx. - * cipher/camellia-arm.S (CAMELLIA_TABLE_BYTE_LEN, key_length): Remove - unused macros. - * cipher/camellia-glue.c (CAMELLIA_context): Move keytable to head for - better alignment; Make 'use_aesni_avx' and 'use_aesni_avx2' bitfield - members. - [USE_AESNI_AVX] (_gcry_camellia_aesni_avx_keygen): New prototype. - (camellia_setkey) [USE_AESNI_AVX || USE_AESNI_AVX2]: Read hw features - to variable 'hwf' and match features from it. - (camellia_setkey) [USE_AESNI_AVX]: Use AES-NI/AVX key setup if - available. - - Avoid unneeded stack burning with AES-NI and reduce number of 'decryption_prepared' checks - * cipher/rijndael.c (RIJNDAEL_context): Make 'decryption_prepared', - 'use_padlock' and 'use_aesni' 1-bit members in bitfield. - (do_setkey): Move 'hwfeatures' inside [USE_AESNI || USE_PADLOCK]. - (do_aesni_enc_aligned): Rename to... - (do_aesni_enc): ...this, as function does not require aligned input. - (do_aesni_dec_aligned): Rename to... - (do_aesni_dec): ...this, as function does not require aligned input. - (do_aesni): Remove. - (rijndael_encrypt): Call 'do_aesni_enc' instead of 'do_aesni'. - (rijndael_decrypt): Call 'do_aesni_dec' instead of 'do_aesni'. - (check_decryption_preparation): New. - (do_decrypt): Remove 'decryption_prepared' check. - (rijndael_decrypt): Ditto and call 'check_decryption_preparation'. - (_gcry_aes_cbc_dec): Ditto. - (_gcry_aes_cfb_enc): Add 'burn_depth' and burn stack only when needed. - (_gcry_aes_cbc_enc): Ditto. - (_gcry_aes_ctr_enc): Ditto. - (_gcry_aes_cfb_dec): Ditto. - (_gcry_aes_cbc_dec): Ditto and correct clearing of 'savebuf'. - -2013-11-14 Werner Koch - - md: Fix hashing for data >= 256 GB. - * cipher/hash-common.h (gcry_md_block_ctx): Add "nblocks_high". - * cipher/hash-common.c (_gcry_md_block_write): Bump NBLOCKS_HIGH. - * cipher/md4.c (md4_init, md4_final): Take care of NBLOCKS_HIGH. - * cipher/md5.c (md5_init, md5_final): Ditto. - * cipher/rmd160.c (_gcry_rmd160_init, rmd160_final): Ditto. - * cipher/sha1.c (sha1_init, sha1_final): Ditto. - * cipher/sha256.c (sha256_init, sha224_init, sha256_final): Ditto. - * cipher/sha512.c (sha512_init, sha384_init, sha512_final): Ditto. - * cipher/tiger.c (do_init, tiger_final): Ditto. - * cipher/whirlpool.c (whirlpool_final): Ditto. - - * cipher/md.c (gcry_md_algo_info): Add GCRYCTL_SELFTEST. - (_gcry_md_selftest): Return "not implemented" as required. - * tests/hashtest.c: New. - * tests/genhashdata.c: New. - * tests/Makefile.am (TESTS): Add hashtest. - (noinst_PROGRAMS): Add genhashdata - -2013-11-13 Christian Grothoff - - ecc: Fix key generation for a plain Ed25519 key. - * cipher/ecc.c (nist_generate_key): Use custom code for ED25519. - - ecc: Fix some memory leaks. - * cipher/ecc-curves.c (_gcry_mpi_ec_new): Free ec->b before assigning. - * cipher/ecc.c (nist_generate_key): Release Q. - * cipher/ecc-eddsa.c (_gcry_ecc_eddsa_genkey): Ditto. - -2013-11-11 Werner Koch - - ecc: Change keygrip computation for Ed25519+EdDSA. - * cipher/ecc.c (compute_keygrip): Rework. - * cipher/ecc-eddsa.c (_gcry_ecc_eddsa_ensure_compact): New. - * cipher/ecc-curves.c (_gcry_ecc_update_curve_param): New. - * tests/keygrip.c (key_grips): Add flag param and test cases for - Ed25519. - - mpi: Add special format GCRYMPI_FMT_OPAQUE. - * src/gcrypt.h.in (GCRYMPI_FMT_OPAQUE): New. - (_gcry_sexp_nth_opaque_mpi): Remove. - * src/sexp.c (gcry_sexp_nth_mpi): Add support for GCRYMPI_FMT_OPAQUE. - (_gcry_sexp_vextract_param): Replace removed function by - GCRYMPI_FMT_OPAQUE. - -2013-11-10 Jussi Kivilinna - - Fix error output in CTR selftest. - * cipher/cipher-selftest.c (_gcry_selftest_helper_ctr): Change - fprintf(stderr,...) to syslog(); Correct error output for bulk - IV check, plaintext mismatch => ciphertext mismatch. - -2013-11-09 Jussi Kivilinna - - Fix Serpent-AVX2 and Camellia-AVX2 counter modes. - * cipher/camellia-aesni-avx2-amd64.S - (_gcry_camellia_aesni_avx2_ctr_enc): Byte-swap before checking for - overflow handling. - * cipher/camellia-glue.c (selftest_ctr_128, selftest_cfb_128) - (selftest_cbc_128): Add 16 to nblocks. - * cipher/cipher-selftest.c (_gcry_selftest_helper_ctr): Add test with - non-overflowing IV and modify overflow IV to detect broken endianness - handling. - * cipher/serpent-avx2-amd64.S (_gcry_serpent_avx2_ctr_enc): Byte-swap - before checking for overflow handling; Fix crazy-mixed-endian IV - construction to big-endian. - * cipher/serpent.c (selftest_ctr_128, selftest_cfb_128) - (selftest_cbc_128): Add 8 to nblocks. - -2013-11-09 Sergey V - - cipher/gost28147: optimization: use precomputed S-box tables. - * cipher/gost.h (GOST28147_context): Remove unneeded subst and - subst_set members. - * cipher/gost28147.c (max): Remove unneeded macro. - (test_sbox): Replace with new precomputed tables. - (gost_set_subst): Remove function. - (gost_val): Use new S-box tables. - (gost_encrypt_block, gost_decrypt_block): Tweak to use new ctx and - S-box tables. - -2013-11-09 Jussi Kivilinna - - Fix tail handling for AES-NI counter mode. - * cipher/rijndael.c (do_aesni_ctr): Fix outputting of updated - counter-IV. - -2013-11-08 Werner Koch - - ecc: Improve gcry_pk_get_curve. - * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Factor some code out - to .. - (find_domain_parms_idx): new. - (_gcry_ecc_get_curve): Find by curve name on error. - - cipher: Avoid signed divisions in idea.c. - * cipher/idea.c (mul_inv): Use unsigned division. - - ecc: Implement the "nocomp" flag for key generation. - * cipher/ecc.c (ecc_generate): Support the "nocomp" flag. - * tests/keygen.c (check_ecc_keys): Add a test for it. - - ecc: Make "noparam" the default and replace by "param". - * src/cipher.h (PUBKEY_FLAG_NOCOMP): New. - (PUBKEY_FLAG_NOPARAM): Remove. - (PUBKEY_FLAG_PARAM): New. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Support the new - flags and ignore the obsolete "noparam" flag. - * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Return the curve name - also for curves selected by NBITS. - (_gcry_mpi_ec_new): Support the "param" flag. - * cipher/ecc.c (ecc_generate, ecc_sign, ecc_verify): Ditto. - * tests/keygen.c (check_ecc_keys): Remove the "noparam" flag. - -2013-11-07 Jussi Kivilinna - - Fix decryption function size in AES AMD64 assembly. - * cipher/rijndael-amd64.S (_gcry_aes_amd64_decrypt_block): Set '.size' - for '_gcry_aes_amd64_decrypt_block', not '..._encrypt_block'. - - Change 64-bit shift to 32-bit in AES AMD64 assembly. - * cipher/rijndael-amd64.S (do16bit_shr): Change 'shrq' to 'shrl'. - -2013-11-06 Jussi Kivilinna - - Speed-up AES-NI key setup. - * cipher/rijndael.c [USE_AESNI] (m128i_t): Remove. - [USE_AESNI] (u128_t): New. - [USE_AESNI] (aesni_do_setkey): New. - (do_setkey) [USE_AESNI]: Move AES-NI accelerated key setup to - 'aesni_do_setkey'. - (do_setkey): Call _gcry_get_hw_features only once. Clear stack after - use in generic key setup part. - (rijndael_setkey): Remove stack burning. - (prepare_decryption) [USE_AESNI]: Use 'u128_t' instead of 'm128i_t' to - avoid compiler generated SSE2 instructions and XMM register usage, - unroll 'aesimc' setup loop - (prepare_decryption): Clear stack after use. - [USE_AESNI] (do_aesni_enc_aligned): Update comment about alignment. - (do_decrypt): Do not burning stack after prepare_decryption. - - Avoid burn stack in Arcfour setkey. - * cipher/arcfour.c (arcfour_setkey): Remove stack burning. - - Avoid burn_stack in CAST5 setkey. - * cipher/cast5.c (do_cast_setkey): Use wipememory instead of memset. - (cast_setkey): Remove stack burning. - - Improve Serpent key setup speed. - * cipher/serpent.c (SBOX, SBOX_INVERSE): Remove index argument. - (serpent_subkeys_generate): Use smaller temporary arrays for subkey - generation and perform stack clearing locally. - (serpent_setkey_internal): Use wipememory to clear stack and remove - _gcry_burn_stack. - (serpent_setkey): Remove unneeded _gcry_burn_stack. - - Modify encrypt/decrypt arguments for in-place. - * cipher/cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt): Modify - local arguments if in-place operation. - - Speed up Stribog. - * cipher/stribog.c (STRIBOG_TABLES): Remove. - (Pi): Remove. - [!STRIBOG_TABLES] (A, strido): Remove. - (stribog_table): New table pre-reordered with Pi values. - (strido): Rewrite for new table. - (LPSX): Rewrite for new table. - (xor): Remove. - (g): Small tweaks. - - Tweak AES-NI bulk CTR mode slightly. - * cipher/rijndael.c [USE_AESNI] (aesni_cleanup_2_5): Rename to... - (aesni_cleanup_2_6): ...this and clear also 'xmm6'. - [USE_AESNI && __i386__] (do_aesni_ctr, do_aesni_ctr_4): Prevent - inlining only on i386, allow on AMD64. - [USE_AESNI] (do_aesni_ctr, do_aesni_ctr_4): Use counter block from - 'xmm5' and byte-swap mask from 'xmm6'. - (_gcry_aes_ctr_enc) [USE_AESNI]: Preload counter block to 'xmm5' and - byte-swap mask to 'xmm6'. - (_gcry_aes_ctr_enc, _gcry_aes_cfb_dec, _gcry_aes_cbc_dec): Use - 'aesni_cleanup_2_6'. - - Tweak bench-slope parameters. - * tests/bench-slope.c (BUF_STEP_SIZE): Half step size to 64. - (NUM_MEASUREMENT_REPETITIONS): Double repetitions to 64. - - Optimize Blowfish weak key check. - * cipher/blowfish.c (hashset_elem, val_to_hidx, add_val): New. - (do_bf_setkey): Use faster algorithm for detecting weak keys. - (bf_setkey): Move stack burning to do_bf_setkey. - - Fix __builtin_bswap32/64 checks. - * configure.ac (gcry_cv_have_builtin_bswap32) - (gcry_cv_have_builtin_bswap64): Change compile checks to link checks. - - Fix 'u32' build error with Camellia. - * cipher/camellia.c: Add include for and "types.h". - (u32): Remove. - (u8): Typedef as 'byte'. - -2013-11-06 Werner Koch - - pubkey: Add forward compatibility feature. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Add - "igninvflag". - -2013-11-05 Werner Koch - - ecc: Require "eddsa" flag for curve Ed25519. - * src/cipher.h (PUBKEY_FLAG_ECDSA): Remove. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Remove "ecdsa". - * cipher/ecc.c (ecc_generate, ecc_sign, ecc_verify): Require "eddsa" flag. - * cipher/ecc-misc.c (_gcry_ecc_compute_public): Depend "eddsa" flag. - * tests/benchmark.c, tests/keygen.c, tests/pubkey.c - * tests/t-ed25519.c, tests/t-mpi-point.c: Adjust for changed flags. - - ecc: Fully implement Ed25519 compression in ECDSA mode. - * src/ec-context.h (mpi_ec_ctx_s): Add field FLAGS. - * mpi/ec.c (ec_p_init): Add arg FLAGS. Change all callers to pass it. - * cipher/ecc-curves.c (point_from_keyparam): Add arg EC, parse as - opaque mpi and use eddsa decoding depending on the flag. - (_gcry_mpi_ec_new): Rearrange to parse Q and D after knowing the - curve. - - mpi: Add function gcry_mpi_set_opaque_copy. - * src/gcrypt.h.in (gcry_mpi_set_opaque_copy): New. - * src/visibility.c (gcry_mpi_set_opaque_copy): New. - * src/visibility.h (gcry_mpi_set_opaque_copy): Mark visible. - * src/libgcrypt.def, src/libgcrypt.vers: Add new API. - * tests/mpitests.c (test_opaque): Add test. - -2013-11-04 Jussi Kivilinna - - Make test vectors 'static const' - * cipher/arcfour.c (selftest): Change test vectors to 'static const'. - * cipher/blowfish.c (selftest): Ditto. - * cipher/camellia-glue.c (selftest): Ditto. - * cipher/cast5.c (selftest): Ditto. - * cipher/des.c (selftest): Ditto. - * cipher/rijndael.c (selftest): Ditto. - * tests/basic.c (cipher_cbc_mac_cipher, check_aes128_cbc_cts_cipher) - (check_ctr_cipher, check_cfb_cipher, check_ofb_cipher) - (check_ccm_cipher, check_stream_cipher) - (check_stream_cipher_large_block, check_bulk_cipher_modes) - (check_ciphers, check_digests, check_hmac, check_pubkey_sign) - (check_pubkey_sign_ecdsa, check_pubkey_crypt, check_pubkey): Ditto. - -2013-11-03 Jussi Kivilinna - - Make jump labels local in Salsa20 assembly. - * cipher/salsa20-amd64.S: Rename '._labels' to '.L_labels'. - * cipher/salsa20-armv7-neon.S: Ditto. - -2013-10-30 Jussi Kivilinna - - bithelp: fix undefined behaviour with rol and ror. - * cipher/bithelp.h (rol, ror): Mask shift with 31. - -2013-10-29 Werner Koch - - tests: Add feature to skip benchmarks. - * tests/benchmark.c (main): Add feature to skip the test. - * tests/bench-slope.c (main): Ditto. - (get_slope): Repace C++ style comment. - (double_cmp, cipher_bench, _hash_bench): Repalce system reserved - symbols. - - ecc: Finish Ed25519/ECDSA hack. - * cipher/ecc.c (ecc_generate): Fix Ed25519/ECDSA case. - (ecc_verify): Implement ED25519/ECDSA uncompression. - - ecc: Add flags "noparam" and "comp". - * src/cipher.h (PUBKEY_FLAG_NOPARAM, PUBKEY_FLAG_COMP): New. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Parse new flags - and change code for possible faster parsing. - * cipher/ecc.c (ecc_generate): Implement the "noparam" flag. - (ecc_sign): Ditto. - (ecc_verify): Ditto. - * tests/keygen.c (check_ecc_keys): Use the "noparam" flag. - - * cipher/ecc.c (ecc_generate): Fix parsing of the deprecated - transient-flag parameter. - (ecc_verify): Do not make Q optional in the extract-param call. - -2013-10-28 Jussi Kivilinna - - Fix typos in documentation. - * doc/gcrypt.texi: Fix some typos. - - Add ARM NEON assembly implementation of Serpent. - * cipher/Makefile.am: Add 'serpent-armv7-neon.S'. - * cipher/serpent-armv7-neon.S: New. - * cipher/serpent.c (USE_NEON): New macro. - (serpent_context_t) [USE_NEON]: Add 'use_neon'. - [USE_NEON] (_gcry_serpent_neon_ctr_enc, _gcry_serpent_neon_cfb_dec) - (_gcry_serpent_neon_cbc_dec): New prototypes. - (serpent_setkey_internal) [USE_NEON]: Detect NEON support. - (_gcry_serpent_neon_ctr_enc, _gcry_serpent_neon_cfb_dec) - (_gcry_serpent_neon_cbc_dec) [USE_NEON]: Use NEON implementations - to process eight blocks in parallel. - * configure.ac [neonsupport]: Add 'serpent-armv7-neon.lo'. - - Add ARM NEON assembly implementation of Salsa20. - * cipher/Makefile.am: Add 'salsa20-armv7-neon.S'. - * cipher/salsa20-armv7-neon.S: New. - * cipher/salsa20.c [USE_ARM_NEON_ASM]: New macro. - (struct SALSA20_context_s, salsa20_core_t, salsa20_keysetup_t) - (salsa20_ivsetup_t): New. - (SALSA20_context_t) [USE_ARM_NEON_ASM]: Add 'use_neon'. - (SALSA20_context_t): Add 'keysetup', 'ivsetup' and 'core'. - (salsa20_core): Change 'src' argument to 'ctx'. - [USE_ARM_NEON_ASM] (_gcry_arm_neon_salsa20_encrypt): New prototype. - [USE_ARM_NEON_ASM] (salsa20_core_neon, salsa20_keysetup_neon) - (salsa20_ivsetup_neon): New. - (salsa20_do_setkey): Setup keysetup, ivsetup and core with default - functions. - (salsa20_do_setkey) [USE_ARM_NEON_ASM]: When NEON support detect, - set keysetup, ivsetup and core with ARM NEON functions. - (salsa20_do_setkey): Call 'ctx->keysetup'. - (salsa20_setiv): Call 'ctx->ivsetup'. - (salsa20_do_encrypt_stream) [USE_ARM_NEON_ASM]: Process large buffers - in ARM NEON implementation. - (salsa20_do_encrypt_stream): Call 'ctx->core' instead of directly - calling 'salsa20_core'. - (selftest): Add test to check large buffer processing and block counter - updating. - * configure.ac [neonsupport]: 'Add salsa20-armv7-neon.lo'. - - Add AMD64 assembly implementation of Salsa20. - * cipher/Makefile.am: Add 'salsa20-amd64.S'. - * cipher/salsa20-amd64.S: New. - * cipher/salsa20.c (USE_AMD64): New macro. - [USE_AMD64] (_gcry_salsa20_amd64_keysetup, _gcry_salsa20_amd64_ivsetup) - (_gcry_salsa20_amd64_encrypt_blocks): New prototypes. - [USE_AMD64] (salsa20_keysetup, salsa20_ivsetup, salsa20_core): New. - [!USE_AMD64] (salsa20_core): Change 'src' to non-constant, update block - counter in 'salsa20_core' and return burn stack depth. - [!USE_AMD64] (salsa20_keysetup, salsa20_ivsetup): New. - (salsa20_do_setkey): Move generic key setup to 'salsa20_keysetup'. - (salsa20_setkey): Fix burn stack depth. - (salsa20_setiv): Move generic IV setup to 'salsa20_ivsetup'. - (salsa20_do_encrypt_stream) [USE_AMD64]: Process large buffers in AMD64 - implementation. - (salsa20_do_encrypt_stream): Move stack burning to this function... - (salsa20_encrypt_stream, salsa20r12_encrypt_stream): ...from these - functions. - * configure.ac [x86-64]: Add 'salsa20-amd64.lo'. - - Add new benchmarking utility, bench-slope. - * tests/Makefile.am (TESTS): Add 'bench-slope'. - * tests/bench-slope.c: New. - - Change .global to .globl in assembly files. - * cipher/blowfish-arm.S: Change '.global' to '.globl'. - * cipher/camellia-aesni-avx-amd64.S: Ditto. - * cipher/camellia-aesni-avx2-amd64.S: Ditto. - * cipher/camellia-arm.S: Ditto. - * cipher/cast5-amd64.S: Ditto. - * cipher/rijndael-amd64.S: Ditto. - * cipher/rijndael-arm.S: Ditto. - * cipher/serpent-avx2-amd64.S: Ditto. - * cipher/serpent-sse2-amd64.S: Ditto. - * cipher/twofish-amd64.S: Ditto. - * cipher/twofish-arm.S: Ditto. - -2013-10-26 Jussi Kivilinna - - Deduplicate code for ECB encryption and decryption. - * cipher/cipher.c (do_ecb_crypt): New, based on old 'do_ecb_encrypt'. - (do_ecb_encrypt): Use 'do_ecb_crypt', pass encryption function. - (do_ecb_decrypt): Use 'do_ecb_crypt', pass decryption function. - -2013-10-26 Dmitry Eremin-Solenikov - - Drop _gcry_cipher_ofb_decrypt as it duplicates _gcry_cipher_ofb_encrypt. - * cipher/cipher.c (cipher_decrypt): Use _gcry_cipher_ofb_encrypt for OFB - decryption. - * cipher/cipher-internal.h: Remove _gcry_cipher_ofb_decrypt declaration. - * cipher/cipher-ofb.c (_gcry_cipher_ofb_decrypt): Remove. - (_gcry_cipher_ofb_encrypt): remove copying of IV to lastiv, it's - unused there. - -2013-10-25 Werner Koch - - tests: Add tests for mpi_cmp. - * tests/mpitests.c (die): Modernize. - (fail): New. - (test_opaque, test_add, test_sub, test_mul): Use gcry_log_xx - (main): Return error count. - (test_cmp): New. - -2013-10-24 Werner Koch - - ecc: Change algorithm for Ed25519 x recovery. - * cipher/ecc-eddsa.c (scanval): Add as temporary hack. - (_gcry_ecc_eddsa_recover_x): Use the algorithm from page 15 of the - paper. Return an error code. - (_gcry_ecc_eddsa_decodepoint): Take care of the error code. - * mpi/mpi-mul.c (gcry_mpi_mulm): Use truncated division. - - ecc: Refactor _gcry_ecc_eddsa_decodepoint. - * cipher/ecc-eddsa.c (_gcry_ecc_eddsa_decodepoint): Factor some code - out to .. - (_gcry_ecc_eddsa_recover_x): new. - -2013-10-24 Jussi Kivilinna - - ecc-gost: Add missing include. - * ecc-gost.c: Include "pubkey-internal.h". - -2013-10-23 Jussi Kivilinna - - Replace architecture specific fast_wipememory2 with generic. - * src/g10lib.h (fast_wipememory2): Remove architecture specific - implementations and add generic implementation. - - Improve the speed of the cipher mode code. - * cipher/bufhelp.h (buf_cpy): New. - (buf_xor, buf_xor_2dst): If buffers unaligned, always jump to per-byte - processing. - (buf_xor_n_copy_2): New. - (buf_xor_n_copy): Use 'buf_xor_n_copy_2'. - * cipher/blowfish.c (_gcry_blowfish_cbc_dec): Avoid extra memory copy - and use new 'buf_xor_n_copy_2'. - * cipher/camellia-glue.c (_gcry_camellia_cbc_dec): Ditto. - * cipher/cast5.c (_gcry_cast_cbc_dec): Ditto. - * cipher/serpent.c (_gcry_serpent_cbc_dec): Ditto. - * cipher/twofish.c (_gcry_twofish_cbc_dec): Ditto. - * cipher/rijndael.c (_gcry_aes_cbc_dec): Ditto. - (do_encrypt, do_decrypt): Use 'buf_cpy' instead of 'memcpy'. - (_gcry_aes_cbc_enc): Avoid copying IV, use 'last_iv' pointer instead. - * cipher/cipher-cbc.c (_gcry_cipher_cbc_encrypt): Avoid copying IV, - update pointer to IV instead. - (_gcry_cipher_cbc_decrypt): Avoid extra memory copy and use new - 'buf_xor_n_copy_2'. - (_gcry_cipher_cbc_encrypt, _gcry_cipher_cbc_decrypt): Avoid extra - accesses to c->spec, use 'buf_cpy' instead of memcpy. - * cipher/cipher-ccm.c (do_cbc_mac): Ditto. - * cipher/cipher-cfb.c (_gcry_cipher_cfb_encrypt) - (_gcry_cipher_cfb_decrypt): Ditto. - * cipher/cipher-ctr.c (_gcry_cipher_ctr_encrypt): Ditto. - * cipher/cipher-ofb.c (_gcry_cipher_ofb_encrypt) - (_gcry_cipher_ofb_decrypt): Ditto. - * cipher/cipher.c (do_ecb_encrypt, do_ecb_decrypt): Ditto. - - bufhelp: enable unaligned memory accesses for AArch64 (64-bit ARM) - * cipher/bufhelp.h [__aarch64__] (BUFHELP_FAST_UNALIGNED_ACCESS): Set - macro on AArch64. - -2013-10-23 Dmitry Eremin-Solenikov - - Enable assembler optimizations on earlier ARM cores. - * cipher/blowfish-armv6.S => cipher/blowfish-arm.S: adapt to pre-armv6 CPUs. - * cipher/blowfish.c: enable assembly on armv4/armv5 little-endian CPUs. - * cipher/camellia-armv6.S => cipher/camellia-arm.S: adapt to pre-armv6 CPUs. - * cipher/camellia.c, cipher-camellia-glue.c: enable assembly on armv4/armv5 - little-endian CPUs. - * cipher/cast5-armv6.S => cipher/cast5-arm.S: adapt to pre-armv6 CPUs. - * cipher/cast5.c: enable assembly on armv4/armv5 little-endian CPUs. - * cipher/rijndael-armv6.S => cipher/rijndael-arm.S: adapt to pre-armv6 CPUs. - * cipher/rijndael.c: enable assembly on armv4/armv5 little-endian CPUs. - * cipher/twofish-armv6.S => cipher/twofish-arm.S: adapt to pre-armv6 CPUs. - * cipher/twofish.c: enable assembly on armv4/armv5 little-endian CPUs. - - mpi: enable assembler on all arm architectures. - * mpi/config.links: remove check for arm >= v6 - * mpi/armv6 => mpi/arm: rename directory to reflect that is is generic - enough - - Correct ASM assembly test in configure.ac. - * configure.ac: correct HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS test to - require neither ARMv6, nor thumb mode. Our assembly code works - perfectly even on ARMv4 now. - -2013-10-23 Werner Koch - - ecc: Refactor ecc.c. - * cipher/ecc-ecdsa.c, cipher/ecc-eddsa.c, cipher/ecc-gost.c: New. - * cipher/Makefile.am (EXTRA_libcipher_la_SOURCES): Add new files. - * configure.ac (GCRYPT_PUBKEY_CIPHERS): Add new files. - * cipher/ecc.c (point_init, point_free): Move to ecc-common.h. - (sign_ecdsa): Move to ecc-ecdsa.c as _gcry_ecc_ecdsa_sign. - (verify_ecdsa): Move to ecc-ecdsa.c as _gcry_ecc_ecdsa_verify. - (sign_gost): Move to ecc-gots.c as _gcry_ecc_gost_sign. - (verify_gost): Move to ecc-gost.c as _gcry_ecc_gost_verify. - (sign_eddsa): Move to ecc-eddsa.c as _gcry_ecc_eddsa_sign. - (verify_eddsa): Move to ecc-eddsa.c as _gcry_ecc_eddsa_verify. - (eddsa_generate_key): Move to ecc-eddsa.c as _gcry_ecc_eddsa_genkey. - (reverse_buffer): Move to ecc-eddsa.c. - (eddsa_encodempi, eddsa_encode_x_y): Ditto. - (_gcry_ecc_eddsa_encodepoint, _gcry_ecc_eddsa_decodepoint): Ditto. - - mpi: Fix scanning of negative SSH formats and add more tests. - * mpi/mpicoder.c (gcry_mpi_scan): Fix sign setting for SSH format. - * tests/t-convert.c (negative_zero): Test all formats. - (check_formats): Add tests for PGP and scan tests for SSH and USG. - - * src/gcrypt.h.in (mpi_is_neg): Fix macro. - - * mpi/mpi-scan.c (_gcry_mpi_getbyte, _gcry_mpi_putbyte): Comment out - these unused functions. - -2013-10-22 Jussi Kivilinna - - twofish: add ARMv6 assembly implementation. - * cipher/Makefile.am: Add 'twofish-armv6.S'. - * cipher/twofish-armv6.S: New. - * cipher/twofish.c (USE_ARMV6_ASM): New macro. - [USE_ARMV6_ASM] (_gcry_twofish_armv6_encrypt_block) - (_gcry_twofish_armv6_decrypt_block): New prototypes. - [USE_AMDV6_ASM] (twofish_encrypt, twofish_decrypt): Add. - [USE_AMD64_ASM] (do_twofish_encrypt, do_twofish_decrypt): Remove. - (_gcry_twofish_ctr_enc, _gcry_twofish_cfb_dec): Use 'twofish_encrypt' - instead of 'do_twofish_encrypt'. - (_gcry_twofish_cbc_dec): Use 'twofish_decrypt' instead of - 'do_twofish_decrypt'. - * configure.ac [arm]: Add 'twofish-armv6.lo'. - - mpi: allow building with clang on ARM. - * mpi/longlong.h [__arm__] (add_ssaaaa, sub_ddmmss, umul_ppmm) - (count_leading_zeros): Do not cast assembly output arguments. - [__arm__] (umul_ppmm): Remove the extra '%' ahead of assembly comment. - [_ARM_ARCH >= 4] (umul_ppmm): Use correct inputs and outputs instead of - registers. - - serpent-amd64: do not use GAS macros. - * cipher/serpent-avx2-amd64.S: Remove use of GAS macros. - * cipher/serpent-sse2-amd64.S: Ditto. - * configure.ac [HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS]: Do not check - for GAS macros. - - Add Counter with CBC-MAC mode (CCM) - * cipher/Makefile.am: Add 'cipher-ccm.c'. - * cipher/cipher-ccm.c: New. - * cipher/cipher-internal.h (gcry_cipher_handle): Add 'u_mode'. - (_gcry_cipher_ccm_encrypt, _gcry_cipher_ccm_decrypt) - (_gcry_cipher_ccm_set_nonce, _gcry_cipher_ccm_authenticate) - (_gcry_cipher_ccm_get_tag, _gcry_cipher_ccm_check_tag) - (_gcry_cipher_ccm_set_lengths): New prototypes. - * cipher/cipher.c (gcry_cipher_open, cipher_encrypt, cipher_decrypt) - (_gcry_cipher_setiv, _gcry_cipher_authenticate, _gcry_cipher_gettag) - (_gcry_cipher_checktag, gry_cipher_ctl): Add handling for CCM mode. - * doc/gcrypt.texi: Add documentation for GCRY_CIPHER_MODE_CCM. - * src/gcrypt.h.in (gcry_cipher_modes): Add 'GCRY_CIPHER_MODE_CCM'. - (gcry_ctl_cmds): Add 'GCRYCTL_SET_CCM_LENGTHS'. - (GCRY_CCM_BLOCK_LEN): New. - * tests/basic.c (check_ccm_cipher): New. - (check_cipher_modes): Call 'check_ccm_cipher'. - * tests/benchmark.c (ccm_aead_init): New. - (cipher_bench): Add handling for AEAD modes and add CCM benchmarking. - - Add API to support AEAD cipher modes. - * cipher/cipher.c (_gcry_cipher_authenticate, _gcry_cipher_checktag) - (_gcry_cipher_gettag): New. - * doc/gcrypt.texi: Add documentation for new API functions. - * src/visibility.c (gcry_cipher_authenticate, gcry_cipher_checktag) - (gcry_cipher_gettag): New. - * src/gcrypt.h.in, src/visibility.h: add declarations of these - functions. - * src/libgcrypt.defs, src/libgcrypt.vers: export functions. - -2013-10-22 NIIBE Yutaka - - ecc: Correct compliant key generation for Edwards curves. - * cipher/ecc.c: Add case for Edwards curves. - -2013-10-17 Werner Koch - - tests: Add test options to keygen. - * tests/keygen.c (usage): New. - (main): Print usage info. Allow running just one algo. - - mpi: Do not clear the sign of the mpi_mod result. - * mpi/mpi-mod.c (_gcry_mpi_mod): Remove sign setting. - - ecc: Put the curve name again into the output of gcry_pk_genkey. - * cipher/ecc.c (ecc_generate): Use the correct var. Release - CURVE_FLAGS. - - ecc: Support Weierstrass curves in gcry_mpi_ec_curve_point. - * mpi/ec.c (_gcry_mpi_ec_curve_point): Support MPI_EC_WEIERSTRASS. - -2013-10-16 Jussi Kivilinna - - arcfour: more optimized version for non-i386 architectures. - * cipher/arcfour.c (ARCFOUR_context): Reorder members. - (do_encrypt_stream) [!__i386__]: Faster implementation for non-i386. - (do_arcfour_setkey): Avoid modulo operations. - - Avoid void* pointer arithmetic. - * tests/tsexp.c (check_extract_param): Cast void* pointers to char* - before doing arithmetics. - -2013-10-16 Dmitry Eremin-Solenikov - - ecc: Add support for GOST R 34.10-2001/-2012 signatures. - * src/cipher.h: define PUBKEY_FLAG_GOST - * cipher/ecc-curves.c: Add GOST2001-test and GOST2012-test curves - defined in standards. Typical applications would use either those - curves, or curves defined in RFC 4357 (will be added later). - * cipher/ecc.c (sign_gost, verify_gost): New. - (ecc_sign, ecc_verify): use sign_gost/verify_gost if PUBKEY_FLAG_GOST - is set. - (ecc_names): add "gost" for gost signatures. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist, - _gcry_pk_util_preparse_sigval): set PUBKEY_FLAG_GOST if gost flag - is present in s-exp. - * tests/benchmark.c (ecc_bench): also benchmark GOST signatures. - * tests/basic.c (check_pubkey): add two public keys from - GOST R 34.10-2012 standard. - (check_pubkey_sign_ecdsa): add two data sets to check gost signatures. - * tests/curves.c: correct N_CURVES as we now have 2 more curves. - - - Removed some comments from the new curve definitions in ecc-curves.c - to avoid line wrapping. Eventually we will develop a precompiler to - avoid parsing those hex strings. -wk - - Fix 256-bit ecdsa test key definition. - * tests/basic.c (check_pubkey): fix nistp256 testing key declaration - - add missing comma. - -2013-10-16 Werner Koch - - sexp: Add function gcry_sexp_extract_param. - * src/gcrypt.h.in (_GCRY_GCC_ATTR_SENTINEL): New. - (gcry_sexp_extract_param): New. - * src/visibility.c (gcry_sexp_extract_param): New. - * src/visibility.h (gcry_sexp_extract_param): Add hack to detect - internal use. - * cipher/pubkey-util.c (_gcry_pk_util_extract_mpis): Move and split - into ... - * src/sexp.c (_gcry_sexp_vextract_param) - (_gcry_sexp_extract_param): this. Change all callers. Add support for buffer - descriptors and a path option/ - - * tests/tsexp.c (die, hex2buffer, hex2mpi, hex2mpiopa): New. - (cmp_mpihex, cmp_bufhex): New. - (check_extract_param): New. - -2013-10-16 NIIBE Yutaka - - mpi: mpi-pow improvement. - * mpi/mpi-pow.c (gcry_mpi_powm): New implementation of left-to-right - k-ary exponentiation. - -2013-10-15 Werner Koch - - ecc: Support use of Ed25519 with ECDSA. - * src/cipher.h (PUBKEY_FLAG_ECDSA): New. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Add flag "ecdsa". - * cipher/ecc.c (verify_ecdsa, verify_eddsa): Remove some debug output. - (ecc_generate, ecc_sign, ecc_verify): Support Ed25519 with ECDSA. - * tests/keygen.c (check_ecc_keys): Create such a test key. - * tests/pubkey.c (fail, info, data_from_hex, extract_cmp_data): New. - Take from dsa-6979.c - (check_ed25519ecdsa_sample_key): new. - (main): Call new test. - -2013-10-14 Werner Koch - - pubkey: Support flags list in gcry_pk_genkey. - * src/cipher.h (PUBKEY_FLAG_TRANSIENT_KEY): New. - (PUBKEY_FLAG_USE_X931): New. - (PUBKEY_FLAG_USE_FIPS186): New. - (PUBKEY_FLAG_USE_FIPS186_2): New. - * cipher/pubkey-util.c (_gcry_pk_util_parse_flaglist): Rename from - parse_flags_list. Parse new flags. - * cipher/dsa.c (dsa_generate): Support flag list. - * cipher/ecc.c (ecc_generate): Ditto. - * cipher/rsa.c (rsa_generate): Ditto. - - pubkey: Remove duplicated flag parsing code. - * cipher/pubkey-util.c (_gcry_pk_util_preparse_encval) - (_gcry_pk_util_data_to_mpi): Factor flag parsing code out to .. - (parse_flag_list): New. - * src/cipher.h (PUBKEY_FLAG_RAW_FLAG): New. - - mpicalc: Accept lowercase hex digits. - * src/mpicalc.c (main): Test for lowercase hex digits. - -2013-10-11 Werner Koch - - pubkey: Move sexp parsing of remaining fucntions to the modules. - * cipher/pubkey.c (release_mpi_array): Remove. - (pubkey_check_secret_key): Remove. - (sexp_elements_extract): Remove. - (sexp_elements_extract_ecc): Remove. - (sexp_to_key): Remove. - (get_hash_algo): Remove. - (gcry_pk_testkey): Revamp. - (gcry_pk_get_curve): Revamp. - * cipher/rsa.c (rsa_check_secret_key): Revamp. - * cipher/elgamal.c (elg_check_secret_key): Revamp. - * cipher/dsa.c (dsa_check_secret_key): Revamp. - * cipher/ecc.c (ecc_check_secret_key): Revamp. - * cipher/ecc-curves.c: Include cipher.h and pubkey-internal.h - (_gcry_ecc_get_curve): Revamp. - - * cipher/pubkey-util.c (_gcry_pk_util_extract_mpis): Set passed and - used parameters on error to NULL. - - pubkey: Move sexp parsing for gcry_pk_decrypt to the modules. - * cipher/rsa.c (rsa_decrypt): Revamp. - * cipher/elgamal.c (elg_decrypt): Revamp. - * cipher/ecc.c (ecc_decrypt_raw): Revamp. - * cipher/pubkey.c (gcry_pk_decrypt): Simplify. - (sexp_to_enc): Remove. - * cipher/pubkey-util.c (_gcry_pk_util_preparse_encval): New. - - pubkey: Move sexp parsing for gcry_pk_encrypt to the modules. - * cipher/rsa.c (rsa_encrypt): Revamp. - * cipher/elgamal.c (elg_encrypt): Revamp. - * cipher/ecc.c (ecc_encrypt_raw): Revamp. - * cipher/pubkey.c (gcry_pk_encrypt): Simplify. - - * tests/basic.c (check_pubkey_crypt): Init plain, ciph, and data so - that they are initialized even after an encrypt failure. - - pubkey: Move sexp parsing for gcry_pk_sign to the modules. - * cipher/rsa.c (rsa_sign): Revamp. - * cipher/dsa.c (dsa_sign): Revamp. - * cipher/elgamal.c (elg_sign): Revamp. - * cipher/ecc.c (ecc_sign): Revamp. - * cipher/pubkey.c (gcry_pk_sign): Simplify. - -2013-10-10 Jussi Kivilinna - - Prevent tail call optimization with _gcry_burn_stack. - * configure.ac: New check, HAVE_GCC_ASM_VOLATILE_MEMORY. - * src/g10lib.h (_gcry_burn_stack): Rename to __gcry_burn_stack. - (__gcry_burn_stack_dummy): New. - (_gcry_burn_stack): New macro. - * src/misc.c (_gcry_burn_stack): Rename to __gcry_burn_stack. - (__gcry_burn_stack_dummy): New. - -2013-10-09 Werner Koch - - pubkey: Move sexp parsing for gcry_pk_verify to the modules. - * cipher/rsa.c (rsa_verify): Revamp. - * cipher/dsa.c (dsa_verify): Revamp. - * cipher/elgamal.c (elg_verify): Revamp. - * cipher/ecc.c (ecc_verify): Revamp. - * cipher/pubkey.c (sexp_to_sig): Remove. - (pss_verify_cmp): Move to pubkey-util.c - (sexp_data_to_mpi): Ditto. - (init_encoding_ctx): Ditto. - (gcry_pk_verify): Simplify. - * cipher/pubkey-util.c (_gcry_pk_util_init_encoding_ctx): Add. Take - from pubkey.c - (get_hash_algo): Ditto. - (_gcry_pk_util_data_to_mpi): Ditto. - (pss_verify_cmp): Ditto. - (_gcry_pk_util_extract_mpis): New. - (_gcry_pk_util_preparse_sigval): New. - (_gcry_pk_util_free_encoding_ctx): New. - * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Make curve init - optional. - - * src/g10lib.h (GCC_ATTR_SENTINEL): New. - - * tests/basic.c (check_pubkey_sign): Print the algo name. - (main): Add option --pubkey. - -2013-10-08 Werner Koch - - pubkey: Move sexp parsing for gcry_pk_get_nbits to the modules. - * cipher/pubkey.c (spec_from_sexp): New. - (gcry_pk_get_nbits): Simplify. - * cipher/rsa.c (rsa_get_nbits): Take only PARMS as args and do sexp - parsing here. - * cipher/dsa.c (dsa_get_nbits): Ditto. - * cipher/elgamal.c (elg_get_nbits): Ditto. - * cipher/ecc.c (ecc_get_nbits): Ditto. - * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Allow NULL for arg - CURVE. - - pubkey: Move sexp parsing for gcry_pk_getkey to the modules. - * cipher/pubkey-util.c: New. - (_gcry_pk_util_get_nbits): New. Based on code from gcry_pk_genkey. - (_gcry_pk_util_get_rsa_use_e): Ditto. - * cipher/pubkey.c (gcry_pk_genkey): Strip most code and pass. - * cipher/rsa.c (rsa_generate): Remove args ALGO, NBITS and EVALUE. - Call new fucntions to get these values. - * cipher/dsa.c (dsa_generate): Remove args ALGO, NBITS and EVALUE. - Call _gcry_pk_util_get_nbits to get nbits. Always parse genparms. - * cipher/elgamal.c (elg_generate): Ditto. - * cipher/ecc.c (ecc_generate): Ditto. - - cipher: Deprecate GCRY_PK_ELG_E. - * cipher/elgamal.c (_gcry_pubkey_spec_elg_e): Remove. - * cipher/pubkey.c (pubkey_list): Remove double included - _gcry_pubkey_spec_elg. - (map_algo): MAke ELG_E to ELG. - -2013-10-02 Werner Koch - - Provide Pth compatiblity for use with GnuPG 2.0. - * src/ath.c (ath_install): Call ath_init and declare Pth as - compatible. - -2013-10-02 Jussi Kivilinna - - sha512: fix building on ARM. - * cipher/sha512.c (transform) [USE_ARM_NEON_ASM]: Fix 'hd' to 'ctx'. - -2013-10-02 Werner Koch - - Remove deprecated control codes. - * src/gcrypt.h.in (GCRYCTL_SET_KEY): Remove. - (GCRYCTL_SET_IV): Remove. - (GCRYCTL_SET_CTR): Remove. - * cipher/md.c (gcry_md_ctl): Remove deprecated GCRYCTL_SET_KEY. - * cipher/cipher.c (gcry_cipher_ctl): Remove deprecated - GCRYCTL_SET_KEY, GCRYCTL_SET_IV, GCRYCTL_SET_CTR. - -2013-10-02 Dmitry Eremin-Solenikov - - Fix errors when building with Clang on PPC. - * mpi/longlong.h (add_ssaaaa, sub_ddmmss, count_leading_zeros, - umul_ppmm): Do not cast asm output to USItype. - -2013-10-02 Werner Koch - - Remove last remains of the former module system. - * src/gcrypt-module.h, src/module.c: Remove. - * src/visibility.h: Do not include gcrypt-module.h. - * src/g10lib.h: Remove all prototypes from module.c - (gcry_module): Remove. - * cipher/cipher-internal.h (gcry_cipher_handle): Remove unused field. - - Fix missing prototype warning in visibility.c. - * src/ec-context.h (_gcry_mpi_ec_new): Move prototype to mpi.h. - - md: Simplify the message digest dispatcher md.c. - * src/gcrypt-module.h (gcry_md_spec_t): Move to ... - * src/cipher-proto.h: here. Merge with md_extra_spec_t. Add fields - ALGO and FLAGS. Set these fields in all digest modules. - * cipher/md.c: Change most code to replace the former module - system by a simpler system to gain information about the algorithms. - -2013-10-01 Werner Koch - - cipher: Simplify the cipher dispatcher cipher.c. - * src/gcrypt-module.h (gcry_cipher_spec_t): Move to ... - * src/cipher-proto.h (gcry_cipher_spec_t): here. Merge with - cipher_extra_spec_t. Add fields ALGO and FLAGS. Set these fields in - all cipher modules. - * cipher/cipher.c: Change most code to replace the former module - system by a simpler system to gain information about the algorithms. - (disable_pubkey_algo): Simplified. Not anymore thread-safe, though. - - * cipher/md.c (_gcry_md_selftest): Use correct structure. Not a real - problem because both define the same function as their first field. - - * cipher/pubkey.c (_gcry_pk_selftest): Take care of the disabled flag. - - mpi: Fix gcry_mpi_neg. - * mpi/mpiutil.c (_gcry_mpi_neg): Copy U to W. - -2013-10-01 Peter Wu - - cipher: Add support for 128-bit keys in RC2. - * cipher/rfc2268.c (oids_rfc2268_128): New - (_gcry_cipher_spec_rfc2268_128): New. - * cipher/cipher.c (cipher_table_entry): Add GCRY_CIPHER_RFC2268_128. - -2013-09-30 Werner Koch - - ecc: Use faster b parameter for Ed25519. - * cipher/ecc-curves.c (domain_parms): Replace b. - * tests/t-mpi-point.c (test_curve): Ditto. - - ecc: Prepare for future Ed25519 optimization. - * mpi/ec-ed25519.c: New but empty file. - * mpi/ec-internal.h: New. - * mpi/ec.c: Include ec-internal.h. - (ec_mod): New. - (ec_addm): Use ec_mod. - (ec_mulm): Remove commented code. Use ec_mod. - (ec_subm): Call simple sub. - (ec_pow2): Use ec_mulm. - (ec_mul2): New. - (dup_point_weierstrass): Use ec_mul2. - (dup_point_twistededwards): Add special case for a == -1. Use - ec_mul2. - (add_points_weierstrass): Use ec_mul2. - (add_points_twistededwards): Add special case for a == -1. - (_gcry_mpi_ec_curve_point): Ditto. - (ec_p_init): Add hack to test Barrett functions. - * src/ec-context.h (mpi_ec_ctx_s): Add P_BARRETT. - - * mpi/mpi-mod.c (_gcry_mpi_mod_barrett): Fix sign problem. - - ecc: Fix recomputing of Q for Ed25519. - * cipher/ecc-misc.c (reverse_buffer): New. - (_gcry_ecc_compute_public): Add ED255519 specific code. - * cipher/ecc.c (sign_eddsa): Allocate DIGEST in secure memory. Get - rid of HASH_D. - * tests/t-mpi-point.c (context_param): Test recomputing of Q for - Ed25519. - - log: Try to print s-expressions in a more compact format. - * src/misc.c (count_closing_parens): New. - (_gcry_log_printsxp): Use new function. - * mpi/ec.c (_gcry_mpi_point_log): Take care of a NULL point. - -2013-09-30 Jussi Kivilinna - - Make Whirlpool use the _gcry_md_block_write helper. - * cipher/whirlpool.c (whirlpool_context_t): Add 'bctx', remove - 'buffer', 'count' and 'nblocks'. - (whirlpool_init): Initialize 'bctx'. - (whirlpool_transform): Adjust context argument type and burn stack - depth. - (whirlpool_add): Remove. - (whirlpool_write): Use _gcry_md_block_write. - (whirlpool_final, whirlpool_read): Adjust for 'bctx' usage. - - whirlpool: add stack burning after transform. - * cipher/whirlpool.c (whirlpool_transform): Return burn stack depth. - (whirlpool_add): Do burn_stack. - - whirlpool: do bitcount calculation in finalization part. - * cipher/whirlpool.c (whirlpool_context_t): Remove 'length', add - 'nblocks'. - (whirlpool_add): Update 'nblocks' instead of 'length', and add early - return at one spot. - (whirlpool_write): Check for 'nblocks' overflow. - (whirlpool_final): Convert 'nblocks' to bit-counter, and use - whirlpool_write instead of whirlpool_add. - -2013-09-30 Werner Koch - - Add logging functions to the API. - * src/gcrypt.h.in (_GCRY_GCC_ATTR_PRINTF): New. - (gcry_log_debug, gcry_log_debughex, gcry_log_debugmpi): New. - (gcry_log_debugpnt, gcry_log_debugsxp): New. - * src/visibility.c (gcry_log_debug): New. - (gcry_log_debughex, gcry_log_debugmpi, gcry_log_debugpnt): New. - (gcry_log_debugsxp): New. - * src/libgcrypt.def, src/libgcrypt.vers: Add new functions. - * src/misc.c (_gcry_logv): Make public. - (_gcry_log_printsxp): New. - * src/g10lib.h (log_printsxp): New macro. - -2013-09-26 Jussi Kivilinna - - Make libgcrypt build with Clang on i386. - * cipher/longlong.h [__i386__] (add_ssaaaa, sub_ddmmss) - (umul_ppmm, udiv_qrnnd): Do not cast asm output to USItype. - -2013-09-25 Werner Koch - - mpi: Change not yet used _gcry_mpi_set_opaque_copy. - * mpi/mpiutil.c (_gcry_mpi_set_opaque_copy): Change prototype. - (_gcry_mpi_get_opaque_copy): Take care of gcry_malloc failure. - - sexp: Improve printing of data with a leading zero. - * src/sexp.c (suitable_encoding): Detect leading zero byte. - - ecc: Allow the name "q@eddsa" to get/set the public key. - * cipher/ecc-curves.c (_gcry_ecc_get_mpi): Support "q@eddsa". - (_gcry_ecc_set_mpi): Support "q". - * cipher/ecc.c (eddsa_encodepoint): Rename to ... - (_gcry_ecc_eddsa_encodepoint): this and make global. Remove arg - MINLEN and take from context. - (eddsa_decodepoint): Rename to - (_gcry_ecc_eddsa_decodepoint): this and make global. Remove arg LEN - and take from context. - (sign_eddsa, verify_eddsa): Take B from context. - (ecc_sign, ecc_verify): Add hack to set DIALECT. - (_gcry_pk_ecc_get_sexp): Use _gcry_ecc_compute_public. Handle EdDSA. - * src/ec-context.h (mpi_ec_ctx_s): Add field NBITS. - * mpi/ec.c (ec_p_init): Init NBITS. - * tests/t-mpi-point.c (test_curve): Add Ed25519. - (sample_ed25519_q): New. - (context_param): Check new sample key. - (hex2buffer, hex2mpiopa): New. - (cmp_mpihex): Take care of opaque MPIs. - - mpicalc: Add statement to compute the number of bits. - * src/mpicalc.c (do_nbits): New. - (main): Add statement 'b'. - - ecc: Refactor low-level access functions. - * mpi/ec.c (point_copy): Move to cipher/ecc-curves.c. - (ec_get_reset): Rename to _gcry_mpi_ec_get_reset and make global. - (_gcry_mpi_ec_get_mpi): Factor most code out to _gcry_ecc_get_mpi. - (_gcry_mpi_ec_get_point): Factor most code out to _gcry_ecc_get_point. - (_gcry_mpi_ec_set_mpi): Factor most code out to _gcry_ecc_set_mpi. - (_gcry_mpi_ec_set_point): Factor most code out to _gcry_ecc_set_point. - * cipher/ecc-curves.c (_gcry_ecc_get_mpi): New. - (_gcry_ecc_get_point, _gcry_ecc_set_mpi, _gcry_ecc_set_point): New. - * cipher/ecc-misc.c (_gcry_ecc_compute_public): New. - - ecc: Fix highly unlikely endless loop in sign_ecdsa. - * cipher/ecc.c (sign_ecdsa): Turn while-do into do-while loops. - -2013-09-24 Werner Koch - - ecc: Allow the use of an uncompressed public key. - * cipher/ecc.c (eddsa_encodepoint): Factor most code out to ... - (eddsa_encode_x_y): new fucntion. - (eddsa_decodepoint): Allow use of an uncompressed public key. - * tests/t-ed25519.c (N_TESTS): Adjust. - * tests/t-ed25519.inp: Add test 1025. - -2013-09-23 Werner Koch - - pk: Add algo id GCRY_PK_ECC and deprecate ECDSA and ECDH. - * src/gcrypt.h.in (GCRY_PK_ECC): New. - * cipher/pubkey.c (map_algo): New. - (spec_from_algo, gcry_pk_get_param, _gcry_pk_selftest): Use it. - * cipher/ecc.c (selftests_ecdsa): Report using GCRY_PK_ECC. - (run_selftests): Simplify. - (ecdh_names, ecdsa_names): Merge into a new ecc_names. - (_gcry_pubkey_spec_ecdh, _gcry_pubkey_spec_ecdsa): Merge into new - _gcry_pubkey_spec_ecc. - - ec: Use mpi_mulm instead of mpi_powm. - * mpi/ec.c (ec_pow2): New. - (ec_powm): Remove call to mpi_abs. - (dup_point_weierstrass, dup_point_twistededwards) - (add_points_weierstrass, add_points_twistededwards) - (_gcry_mpi_ec_curve_point): Use ec_pow2. - -2013-09-21 Jussi Kivilinna - - bufhelp: enable fast unaligned memory accesses on powerpc. - * cipher/bufhelp.h [__powerpc__] (BUFHELP_FAST_UNALIGNED_ACCESS): Set - macro enabled. - [__powerpc64__] (BUFHELP_FAST_UNALIGNED_ACCESS): Ditto. - - Remove i386 inline assembly version of rotation functions. - * cipher/bithelp.h (rol, ror): Remove i386 version, change - macros to inline functions. - * src/hmac256.c (ror): Ditto. - - Optimize and cleanup 32-bit and 64-bit endianess transforms. - * cipher/bithelp.h (bswap32, bswap64, le_bswap32, be_bswap32) - (le_bswap64, be_bswap64): New. - * cipher/bufhelp.h (buf_get_be32, buf_get_le32, buf_put_le32) - (buf_put_be32, buf_get_be64, buf_get_le64, buf_put_be64) - (buf_put_le64): New. - * cipher/blowfish.c (do_encrypt_block, do_decrypt_block): Use new - endian conversion helpers. - (do_bf_setkey): Turn endian specific code to generic. - * cipher/camellia.c (GETU32, PUTU32): Use new endian conversion - helpers. - * cipher/cast5.c (rol): Remove, use rol from bithelp. - (F1, F2, F3): Fix to use rol from bithelp. - (do_encrypt_block, do_decrypt_block, do_cast_setkey): Use new endian - conversion helpers. - * cipher/des.c (READ_64BIT_DATA, WRITE_64BIT_DATA): Ditto. - * cipher/md4.c (transform, md4_final): Ditto. - * cipher/md5.c (transform, md5_final): Ditto. - * cipher/rmd160.c (transform, rmd160_final): Ditto. - * cipher/salsa20.c (LE_SWAP32, LE_READ_UINT32): Ditto. - * cipher/scrypt.c (READ_UINT64, LE_READ_UINT64, LE_SWAP32): Ditto. - * cipher/seed.c (GETU32, PUTU32): Ditto. - * cipher/serpent.c (byte_swap_32): Remove. - (serpent_key_prepare, serpent_encrypt_internal) - (serpent_decrypt_internal): Use new endian conversion helpers. - * cipher/sha1.c (transform, sha1_final): Ditto. - * cipher/sha256.c (transform, sha256_final): Ditto. - * cipher/sha512.c (__transform, sha512_final): Ditto. - * cipher/stribog.c (transform, stribog_final): Ditto. - * cipher/tiger.c (transform, tiger_final): Ditto. - * cipher/twofish.c (INPACK, OUTUNPACK): Ditto. - * cipher/whirlpool.c (buffer_to_block, block_to_buffer): Ditto. - * configure.ac (gcry_cv_have_builtin_bswap32): Check for compiler - provided __builtin_bswap32. - (gcry_cv_have_builtin_bswap64): Check for compiler provided - __builtin_bswap64. - - gostr3411_94: set better burn stack depth estimate. - * cipher/gost28147.c (_gcry_gost_enc_one): Account function stack to - burn stack depth. - * cipher/gostr3411-94.c (max): New macro. - (do_hash_step, transform): Return stack burn depth. - - Use hash transform function return type for passing burn stack depth. - * cipher/gostr4311-94.c (transform): Return stack burn depth. - * cipher/hash-common.c (_gcry_md_block_write): Use stack burn depth - returned by 'hd->bwrite'. - * cipher/hash-common.h (_gcry_md_block_write_t): Change return type to - 'unsigned int'. - (gry_md_block_ctx_t): Remove 'stack_burn'. - * cipher/md4.c (transform): Return stack burn depth. - (md4_final): Use stack burn depth from transform. - * cipher/md5.c (transform): Return stack burn depth. - (md5_final): Use stack burn depth from transform. - * cipher/rmd160.c (transform): Return stack burn depth. - (rmd160_final): Use stack burn depth from transform. - * cipher/sha1.c (transform): Return stack burn depth. - (sha1_final): Use stack burn depth from transform. - * cipher/sha256.c (transform): Return stack burn depth. - (sha256_final): Use stack burn depth from transform. - * cipher/sha512.c (__transform, transform): Return stack burn depth. - (sha512_final): Use stack burn depth from transform. - * cipher/stribog.c (transform64): Return stack burn depth. - * cipher/tiger.c (transform): Return stack burn depth. - (tiger_final): Use stack burn depth from transform. - - Make STRIBOG use the new _gcry_md_block_write helper. - * cipher/stribog.c (STRIBOG_STRUCT): Add 'bctx' and remove 'buf' and - 'count'. - (stribog_init_512): Initialize 'bctx'. - (transform64): New function. - (stribog_write): Remove. - (stribog_final): Use _gcry_md_block_write and bctx. - (_gcry_digest_spec_stribog_256, _gcry_digest_spec_stribog_512): Use - _gcry_md_block_write. - - Make SHA-512 use the new _gcry_md_block_write helper. - * cipher/hash-common.c (_gcry_md_block_write): Check that hd->buf is - large enough. - * cipher/hash-common.h (MD_BLOCK_MAX_BLOCKSIZE, MD_NBLOCKS_TYPE): New - macros. - (gcry_md_block_ctx_t): Use above macros for 'nblocks' and 'buf'. - * cipher/sha512.c (SHA512_STATE): New struct. - (SHA512_CONTEXT): Add 'bctx' and 'state'. - (sha512_init, sha384_init): Initialize 'bctx'. - (__transform, _gcry_sha512_transform_armv7_neon): Use SHA512_STATE for - 'hd'. - (transform): For now, do not return burn stack. - (sha512_write): Remove. - (sha512_final): Use _gcry_md_block_write and bctx. - (_gcry_digest_spec_sha512, _gcry_digest_spec_sha384): Use - _gcry_md_block_write. - -2013-09-20 Werner Koch - - sexp: Change internal versions to always use gpg_err_code_t. - * src/sexp.c (gcry_sexp_new, gcry_sexp_create, gcry_sexp_build) - (gcry_sexp_build_array, gcry_sexp_canon_len): Change error return type - from gpg_error_t to gpg_err_code_t. Remove all calls to gpg_error. - * src/visibility.c (gcry_sexp_new, gcry_sexp_create, gcry_sexp_sscan) - (gcry_sexp_build, gcry_sexp_build_array, gcry_sexp_canon_len): Map - error codes via gpg_error. - * cipher/dsa.c, cipher/ecc.c, cipher/elgamal.c, cipher/rsa.c: Remove - use gpg_err_code wrappers. - - pk: Move s-exp creation for gcry_pk_decrypt to the modules. - * cipher/pubkey.c (sexp_to_enc): Remove RET_MODERN arg and merge it - into FLAGS. - (gcry_pk_decrypt): Move result s-exp building into the modules. - * src/cipher-proto.h (gcry_pk_decrypt_t): Add some args. - * cipher/ecc.c (ecc_decrypt_raw): Change to return an s-exp. - * cipher/elgamal.c (elg_decrypt): Ditto. - * cipher/rsa.c (rsa_decrypt): Ditto. - (rsa_blind, rsa_unblind): Merge into rsa_decrypt. This saves several - extra MPI allocations. - - pk: Remove unused function. - * cipher/pubkey.c (_gcry_pk_aliased_algo_name): Remove - -2013-09-19 Werner Koch - - Beautify debug output of the prime generator. - * cipher/primegen.c: Adjust output of log_mpidump to recently changed - log_mpidump code changes. - - pk: Move s-expr creation for genkey to the modules. - * cipher/pubkey.c (pubkey_generate): Fold into gcry_pk_genkey - (gcry_pk_genkey): Move result s-exp creation into the modules. - * cipher/dsa.c (dsa_generate): Create result as s-exp. - * cipher/elgamal.c (elg_generate): Ditto. - * cipher/rsa.c (rsa_generate): Ditto. - * cipher/ecc.c (ecc_generate): Ditto. - * src/cipher-proto.h (pk_ext_generate_t): Remove type - (gcry_pk_spec): and remove from struct. - - tests: Beautify some diagnostics. - * tests/benchmark.c (ecc_bench): Print the key sexp in very verbose - mode. - (main): Add option --pk-count. - * tests/keygen.c: Add Elgamal generation and improved diagnostics. - * tests/t-ed25519.c (check_ed25519): Print running number of tests - done. - - sexp: Improve printing data representing a negative number. - * src/sexp.c (suitable_encoding): Detect a negative number. - - pk: Move RSA encoding functions to a new file. - * cipher/rsa-common: New. - * cipher/pubkey.c (pkcs1_encode_for_encryption): Move to rsa-common.c - and rename to _gcry_rsa_pkcs1_encode_for_enc. - (pkcs1_decode_for_encryption): Move to rsa-common.c and rename to - _gcry_rsa_pkcs1_decode_for_enc. - (pkcs1_encode_for_signature): Move to rsa-common.c and rename to - _gcry_rsa_pkcs1_encode_for_sig. - (oaep_encode): Move to rsa-common.c and rename to - _gcry_rsa_oaep_encode. - (oaep_decode): Move to rsa-common.c and rename to - _gcry_rsa_oaep_decode. - (pss_encode): Move to rsa-common.c and rename to _gcry_rsa_pss_encode. - (pss_verify): Move to rsa-common.c and rename to _gcry_rsa_pss_decode. - (octet_string_from_mpi, mgf1): Move to rsa-common.c. - - pk: Move s-expr creation for sign and encrypt to the modules. - * cipher/pubkey.c (pubkey_encrypt): Fold into gcry_pk_encrypt. - (pubkey_decrypt): Fold into gcry_pk_decrypt. - (pubkey_sign): Fold into gcry_pk_sign. - (pubkey_verify): Fold into gcry_pk_verify. - (octet_string_from_mpi): Make it a wrapper and factor code out to ... - * mpi/mpicoder.c (_gcry_mpi_to_octet_string): New function. - - * src/cipher.h (PUBKEY_FLAG_FIXEDLEN): New. - * cipher/pubkey.c (sexp_data_to_mpi): Set flag for some encodings. - (gcry_pk_encrypt): Simply by moving the s-expr generation to the modules. - (gcry_pk_sign): Ditto. - * cipher/dsa.c (dsa_sign): Create s-expr. - * cipher/elgamal.c (elg_encrypt, elg_sign): Ditto. - * cipher/rsa.c (rsa_encrypt, rsa_sign): Ditto. - * cipher/ecc.c (ecc_sign, ecc_encrypt_raw): Ditto. - (ecdsa_names): Add "eddsa". - * tests/t-ed25519.c (one_test): Expect "eddsa" token. - -2013-09-19 Dmitry Eremin-Solenikov - - Fix Stribog digest on bigendian platforms. - * cipher/stribog.c (stribog_final): swap bytes in the result of digest - calculations. - -2013-09-18 Werner Koch - - pk: Simplify the public key dispatcher pubkey.c. - * src/cipher-proto.h (gcry_pk_spec_t): Add fields ALGO and FLAGS. - * cipher/dsa.c (_gcry_pubkey_spec_dsa): Set these fields. - * cipher/ecc.c (_gcry_pubkey_spec_ecdsa): Ditto. - (_gcry_pubkey_spec_ecdh): Ditto. - * cipher/rsa.c (_gcry_pubkey_spec_rsa): Ditto. - * cipher/elgamal.c (_gcry_pubkey_spec_elg): Ditto - (_gcry_pubkey_spec_elg_e): New. - * cipher/pubkey.c: Change most code to replace the former module - system by a simpler system to gain information about the algorithms. - (disable_pubkey_algo): SImplified. Not anymore thread-safe, though. - - pk: Merge extraspecs struct with standard specs struct. - * src/gcrypt-module.h (gcry_pk_spec_t): Move this typedef and the - corresponding function typedefs to ... - * src/cipher-proto.h: here. - (pk_extra_spec_t): Remove typedef and merge fields into - gcry_pk_spec_t. - * cipher/rsa.c, cipher/dsa.c, cipher/elg.c, cipher/ecc.c: Ditto. - * cipher/pubkey.c: Change accordingly. - * src/cipher.h (_gcry_pubkey_extraspec_rsa): Remove. - (_gcry_pubkey_extraspec_dsa): Remove. - (_gcry_pubkey_extraspec_elg): Remove. - (_gcry_pubkey_extraspec_ecdsa): Remove. - -2013-09-18 Jussi Kivilinna - - Fix encryption/decryption return type for GOST28147. - * cipher/gost.h (_gcry_gost_enc_one): Change return type to - 'unsigned int'. - * cipher/gost28147.c (max): New macro. - (gost_encrypt_block, gost_decrypt_block): Return burn stack depth. - (_gcry_gost_enc_one): Return burn stack depth from gost_encrypt_block. - -2013-09-18 Dmitry Eremin-Solenikov - - doc: fix building of ps and pdf documentation. - * doc/gcrypt.texi, doc/gpl.texi, doc/lgpl.texi: fix texinfo errors. - - Add GOST R 34.11-2012 implementation (Stribog) - * src/gcrypt.h.in (GCRY_MD_GOSTR3411_12_256) - (GCRY_MD_GOSTR3411_12_512): New. - * cipher/stribog.c: New. - * configure.ac (available_digests_64): Add stribog. - * src/cipher.h: Declare Stribog declarations. - * cipher/md.c: Register Stribog digest. - * tests/basic.c (check_digests) Add 4 testcases for Stribog from - standard. - * doc/gcrypt.texi: Document new constants. - - Add basic implementation of GOST R 34.11-94 message digest. - * src/gcrypt.h.in (GCRY_MD_GOSTR3411_94): New. - * cipher/gostr3411-94.c: New. - * configure.ac (available_digests): Add gostr3411-94. - * src/cipher.h: Add gostr3411-94 definitions. - * cipher/md.c: Register GOST R 34.11-94. - * tests/basic.c (check_digests): Add 4 tests for GOST R 34.11-94 - hash algo. Two are defined in the standard itself, two other are - more or less common tests - an empty string an exclamation mark. - * doc/gcrypt.texi: Add an entry describing GOST R 34.11-94 to the MD - algorithms table. - - Separate common md block code. - * cipher/hash-common.c (_gcry_md_block_write): New function to handle - block md operations. The current implementation is limited to 64 byte - buffer and u32 block counter. - - * cipher/md4.c, cipher/md5.c, cipher/rmd.h, cipher/rmd160.c - *cipher/sha1.c, cipher/sha256.c, cipher/tiger.c: Convert to use - _gcry_md_block_write. - - Add limited implementation of GOST 28147-89 cipher. - * src/gcrypt.h.in (GCRY_CIPHER_GOST28147): New. - * cipher/gost.h, cipher/gost28147.c: New. - * configure.ac (available_ciphers): Add gost28147. - * src/cipher.h: Add gost28147 definitions. - * cipher/cipher.c: Register gost28147. - * tests/basic.c (check_ciphers): Enable simple test for gost28147. - * doc/gcrypt.texi: document GCRY_CIPHER_GOST28147. - -2013-09-18 Werner Koch - - ecc: Add Ed25519 key generation and prepare for optimizations. - * src/mpi.h (enum ecc_dialects): New. - * src/ec-context.h (mpi_ec_ctx_s): Add field DIALECT. - * cipher/ecc-common.h (elliptic_curve_t): Ditto. - * cipher/ecc-curves.c (ecc_domain_parms_t): Ditto. - (domain_parms): Add dialect values. - (_gcry_ecc_fill_in_curve): Set dialect. - (_gcry_ecc_get_curve): Ditto. - (_gcry_mpi_ec_new): Ditto. - (_gcry_ecc_get_param): Use ECC_DIALECT_STANDARD for now. - * cipher/ecc-misc.c (_gcry_ecc_curve_copy): Copy dialect. - (_gcry_ecc_dialect2str): New. - * mpi/ec.c (ec_p_init): Add arg DIALECT. - (_gcry_mpi_ec_p_internal_new): Ditto. - (_gcry_mpi_ec_p_new): Ditto. - - * mpi/mpiutil.c (gcry_mpi_set_opaque): Set the secure flag. - (_gcry_mpi_set_opaque_copy): New. - - * cipher/ecc-misc.c (_gcry_ecc_os2ec): Take care of an opaque MPI. - * cipher/ecc.c (eddsa_generate_key): New. - (generate_key): Rename to nist_generate_key and factor some code out - to ... - (ecc_generate_ext): here. Divert to eddsa_generate_key if desired. - (eddsa_decodepoint): Take care of an opaque MPI. - (ecc_check_secret_key): Ditto. - (ecc_sign): Ditto. - * cipher/pubkey.c (sexp_elements_extract_ecc): Store public and secret - key as opaque MPIs. - (gcry_pk_genkey): Add the curve_name also to the private key part of - the result. - - * tests/benchmark.c (ecc_bench): Support Ed25519. - (main): Add option --debug. - * tests/curves.c (sample_key_2): Make sure that P and N are positive. - * tests/keygen.c (show): New. - (check_ecc_keys): Support Ed25519. - -2013-09-17 Werner Koch - - mpi: Support printing of negative numbers. - * mpi/mpicoder.c (twocompl, onecompl): New. - (gcry_mpi_print): Use it for STD and SSH. - (gcry_mpi_scan): Use it for STD and SSH. Always set NSCANNED. - (gcry_mpi_aprint): Clear the extra allocated byte. - * tests/t-convert.c (showhex, showmpi): New. - (mpi2bitstr_nlz): New. - (check_formats): New. - (main): Call new test. - -2013-09-16 Werner Koch - - Fix bug in _gcry_mpi_tdiv_q_2exp. - * mpi/mpi-internal.h (MPN_COPY_INCR): Make it work. - - ecc: Implement Curve Ed25519 signing and verification. - * cipher/ecc-curves.c (domain_parms): Add curve "Ed25519". - * cipher/ecc.c (reverse_buffer): New. - (eddsa_encodempi): New. - (eddsa_encodepoint): New. - (eddsa_decodepoint): New. - (sign_eddsa): Implement. - (verify_eddsa): Implement. - (ecc_sign): Init unused Q. Pass public key to sign_eddsa. - (ecc_verify): Init pk.Q if not used. Pass public key verbatim to - verify_eddsa. - * cipher/pubkey.c (sexp_elements_extract): Add arg OPAQUE. Change all - callers to pass 0. - (sexp_to_sig): Add arg OPAQUE and pass it to sexp_elements_extract. - (sexp_data_to_mpi): Allow for a zero length "value". - (gcry_pk_verify): Reorder parameter processing. Pass OPAQUE flag as - required. - * mpi/ec.c (ec_invm): Print a warning if the inverse does not exist. - (_gcry_mpi_ec_get_affine): Implement for our Twisted Edwards curve - model. - (dup_point_twistededwards): Implement. - (add_points_twistededwards): Implement. - (_gcry_mpi_ec_mul_point): Support Twisted Edwards. - - * mpi/mpicoder.c (do_get_buffer): Add arg FILL_LE. - (_gcry_mpi_get_buffer): Ditto. Change all callers. - (_gcry_mpi_get_secure_buffer): Ditto. - - * src/sexp.c (_gcry_sexp_nth_opaque_mpi): New. - - * tests/t-ed25519.c: New. - * tests/t-ed25519.inp: New. - * tests/t-mpi-point.c (basic_ec_math_simplified): Print some output - only in debug mode. - (twistededwards_math): New test. - (main): Call new test. - - mpi: Add internal convenience function. - * mpi/mpiutil.c (_gcry_mpi_get_opaque_copy): New. - - mpi: Add debug function to print a point. - * mpi/ec.c (_gcry_mpi_point_log): New. - * src/mpi.h (log_printpnt): new macro. - - tests: Factor time measurement code out. - * tests/benchmark.c (started_at, stopped_at, start_timer, stop_timer) - (elapsed time): Factor out to .. - * tests/stopwatch.h: new file. - -2013-09-12 Werner Koch - - Fix _gcry_log_printmpi to print 00 instead of a sole sign. - * src/misc.c: Special case an mpi length of 0. - -2013-09-11 Werner Koch - - Streamline the use of the internal mpi and hex debug functions. - * mpi/mpicoder.c (gcry_mpi_dump): Remove. - (_gcry_log_mpidump): Remove. - * src/misc.c (_gcry_log_printhex): Factor all code out to ... - (do_printhex): new. Add line wrapping a and compact printing. - (_gcry_log_printmpi): New. - * src/mpi.h (log_mpidump): Remove macro. - * src/g10lib.h (log_mpidump): Add compatibility macro. - (log_printmpi): New macro - * src/visibility.c (gcry_mpi_dump): Call _gcry_log_printmpi. - * cipher/primegen.c (prime_generate_internal): Replace gcry_mpi_dump - by log_printmpi. - (gcry_prime_group_generator): Ditto. - * cipher/pubkey.c: Remove extra colons from log_mpidump call. - * cipher/rsa.c (stronger_key_check): Use log_printmpi. - -2013-09-10 Werner Koch - - md: Add function gcry_md_hash_buffers. - * src/gcrypt.h.in (gcry_buffer_t): new. - (gcry_md_hash_buffers): New. - * src/visibility.c, src/visibility.h: Add wrapper for new function. - * src/libgcrypt.def, src/libgcrypt.vers: Export new function. - * cipher/md.c (gcry_md_hash_buffers): New. - * cipher/sha1.c (_gcry_sha1_hash_buffers): New. - * tests/basic.c (check_one_md_multi): New. - (check_digests): Run that test. - * tests/hmac.c (check_hmac_multi): New. - (main): Run that test. - - md: Fix Whirlpool flaw. - * cipher/whirlpool.c (whirlpool_add): Remove shortcut return so that - byte counter is always properly updated. - -2013-09-07 Jussi Kivilinna - - Fix static build on AMD64. - * cipher/rijndael-amd64.S: Correct 'RIP' macro for non-PIC build. - - scrypt: fix for big-endian systems. - * cipher/scrypt.c (_salsa20_core): Fix endianess issues. - -2013-09-07 Werner Koch - - Use gcc "unused" attribute only with gcc >= 3.5. - * src/g10lib.h (GCC_ATTR_UNUSED): Fix gcc version detection. - -2013-09-07 Dmitry Eremin-Solenikov - - Add support for Salsa20/12 - 12 round version of Salsa20. - * src/gcrypt.h.in (GCRY_CIPHER_SALSA20R12): New. - * src/salsa20.c (salsa20_core, salsa20_do_encrypt_stream): Add support - for reduced round versions. - (salsa20r12_encrypt_stream, _gcry_cipher_spec_salsa20r12): Implement - Salsa20/12 - a 12 round version of Salsa20 selected by eStream. - * src/cipher.h: Declsare Salsa20/12 definition. - * cipher/cipher.c: Register Salsa20/12 - * tests/basic.c: (check_stream_cipher, check_stream_cipher_large_block): - Populate Salsa20/12 tests with test vectors from ecrypt - (check_ciphers): Add simple test for Salsa20/12 - -2013-09-07 Werner Koch - - Add configure option --disable-amd64-as-feature-detection. - * configure.ac: Implement new disable flag. - - mpi: Improve support for non-Weierstrass support. - * mpi/ec.c (ec_p_init): Add args MODEL and P. Change all callers. - (_gcry_mpi_ec_p_internal_new): Ditto. - (_gcry_mpi_ec_p_new): Ditto. - * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Return - GPG_ERR_UNKNOWN_CURVE instead of invalid value. Init curve model. - * cipher/ecc.c (ecc_verify, ecc_encrypt_raw): Ditto. - * cipher/pubkey.c (sexp_data_to_mpi): Fix EDDSA flag error checking. - - mpi: Add gcry_mpi_ec_curve_point. - * mpi/ec.c (_gcry_mpi_ec_curve_point): New. - (ec_powm): Return the absolute value. - * src/visibility.c, src/visibility.c: Add wrappers. - * src/libgcrypt.def, src/libgcrypt.vers: Export them. - - mpi: Add functions to manipulate the sign. - * src/gcrypt.h.in (gcry_mpi_is_neg): New. - (gcry_mpi_neg, gcry_mpi_abs): New. - * mpi/mpiutil.c (_gcry_mpi_is_neg): New. - (_gcry_mpi_neg, _gcry_mpi_abs): New. - * src/visibility.c, src/visibility.h: Add wrappers. - * src/libgcrypt.def, src/libgcrypt.vers: Export them. - * src/mpi.h (mpi_is_neg): New. Rename old macro to mpi_has_sign. - * mpi/mpi-mod.c (_gcry_mpi_mod_barrett): Use mpi_has_sign. - * mpi/mpi-mpow.c (calc_barrett): Ditto. - * cipher/primegen.c (_gcry_derive_x931_prime): Ditto - * cipher/rsa.c (secret): Ditto. - -2013-09-06 Jussi Kivilinna - - Tune armv6 mpi assembly. - * mpi/armv6/mpih-mul1.S: Tune assembly for Cortex-A8. - * mpi/armv6/mpih-mul2.S: Ditto. - * mpi/armv6/mpih-mul3.S: Ditto. - -2013-09-05 Jussi Kivilinna - - Change _gcry_burn_stack take burn depth as unsigned integer. - * src/misc.c (_gcry_burn_stack): Change to handle 'unsigned int' bytes. - - mpicalc: fix building on linux and win32. - * src/Makefile.am (mpicalc): Adjust CFLAGS and LDADD. - -2013-09-04 Werner Koch - - Change mpicalc to use Libgcrypt and install it. - * src/mpicalc.c: Make use of gcry_ functions. - (MPICALC_VERSION): New. Set to 2.0. - (strusage): Remove. - (scan_mpi): New. Replaces mpi_fromstr. - (print_mpi): New. Replaces mpi_print. - (my_getc): New. - (print_help): New. - (main): Use simple option parser and print version info. - * src/Makefile.am (bin_PROGRAMS): Add mpicalc. - (mpicalc_SOURCES, mpicalc_CFLAGS, mpicalc_LDADD): New. - - Add mpicalc.c to help with testing. - * src/mpicalc.c: Take from GnuPG 1.4 - - Prepare support for EdDSA. - * src/cipher.h (PUBKEY_FLAG_EDDSA): New. - * cipher/pubkey.c (pubkey_verify): Repalce args CMP and OPAQUEV by - CTX. Pass flags and hash algo to the verify function. Change all - verify functions to accept these args. - (sexp_data_to_mpi): Implement new flag "eddsa". - (gcry_pk_verify): Pass CTX instead of the compare function to - pubkey_verify. - * cipher/ecc.c (sign): Rename to sign_ecdsa. Change all callers. - (verify): Rename to verify_ecdsa. Change all callers. - (sign_eddsa, verify_eddsa): New stub functions. - (ecc_sign): Divert to sign_ecdsa or sign_eddsa. - (ecc_verify): Divert to verify_ecdsa or verify_eddsa. - - Prepare support for non-Weierstrass EC equations. - * src/mpi.h (gcry_mpi_ec_models): New. - * src/ec-context.h (mpi_ec_ctx_s): Add MODEL. - * cipher/ecc-common.h (elliptic_curve_t): Ditto. - * cipher/ecc-curves.c (ecc_domain_parms_t): Ditto. - (domain_parms): Mark als as Weierstrass. - (_gcry_ecc_fill_in_curve): Check model. - (_gcry_ecc_get_curve): Set model to Weierstrass. - * cipher/ecc-misc.c (_gcry_ecc_model2str): New. - * cipher/ecc.c (generate_key, ecc_generate_ext): Print model in the - debug output. - - * mpi/ec.c (_gcry_mpi_ec_dup_point): Switch depending on model. - Factor code out to ... - (dup_point_weierstrass): new. - (dup_point_montgomery, dup_point_twistededwards): New stub functions. - (_gcry_mpi_ec_add_points): Switch depending on model. Factor code out - to ... - (add_points_weierstrass): new. - (add_points_montgomery, add_points_twistededwards): New stub - functions. - - * tests/Makefile.am (TESTS): Reorder tests. - - mpi: Suppress newer gcc warnings. - * src/g10lib.h (GCC_ATTR_UNUSED): Define for gcc >= 3.5. - * mpi/mpih-div.c (_gcry_mpih_mod_1, _gcry_mpih_divmod_1): Mark dummy - as unused. - * mpi/mpi-internal.h (UDIV_QRNND_PREINV): Mark _ql as unused. - - Do not check with cpp for typedefed constants. - * src/gcrypt-int.h: Include error code replacements depeding on the - version of libgpg-error. - -2013-09-04 Jussi Kivilinna - - Make _gcry_burn_stack use variable length array. - * configure.ac (HAVE_VLA): Add check. - * src/misc.c (_gcry_burn_stack) [HAVE_VLA]: Add VLA code. - - Move stack burning from block ciphers to cipher modes. - * src/gcrypt-module.h (gcry_cipher_encrypt_t) - (gcry_cipher_decrypt_t): Return 'unsigned int'. - * cipher/cipher.c (dummy_encrypt_block, dummy_decrypt_block): Return - zero. - (do_ecb_encrypt, do_ecb_decrypt): Get largest stack burn depth from - block cipher crypt function and burn stack at end. - * cipher/cipher-aeswrap.c (_gcry_cipher_aeswrap_encrypt) - (_gcry_cipher_aeswrap_decrypt): Ditto. - * cipher/cipher-cbc.c (_gcry_cipher_cbc_encrypt) - (_gcry_cipher_cbc_decrypt): Ditto. - * cipher/cipher-cfb.c (_gcry_cipher_cfb_encrypt) - (_gcry_cipher_cfb_decrypt): Ditto. - * cipher/cipher-ctr.c (_gcry_cipher_cbc_encrypt): Ditto. - * cipher/cipher-ofb.c (_gcry_cipher_ofb_encrypt) - (_gcry_cipher_ofb_decrypt): Ditto. - * cipher/blowfish.c (encrypt_block, decrypt_block): Return burn stack - depth. - * cipher/camellia-glue.c (camellia_encrypt, camellia_decrypt): Ditto. - * cipher/cast5.c (encrypt_block, decrypt_block): Ditto. - * cipher/des.c (do_tripledes_encrypt, do_tripledes_decrypt) - (do_des_encrypt, do_des_decrypt): Ditto. - * cipher/idea.c (idea_encrypt, idea_decrypt): Ditto. - * cipher/rijndael.c (rijndael_encrypt, rijndael_decrypt): Ditto. - * cipher/seed.c (seed_encrypt, seed_decrypt): Ditto. - * cipher/serpent.c (serpent_encrypt, serpent_decrypt): Ditto. - * cipher/twofish.c (twofish_encrypt, twofish_decrypt): Ditto. - * cipher/rfc2268.c (encrypt_block, decrypt_block): New. - (_gcry_cipher_spec_rfc2268_40): Use encrypt_block and decrypt_block. - -2013-09-01 Jussi Kivilinna - - camellia-aesni-avx2-amd64: Move register clearing to assembly functions. - * cipher/camellia-aesni-avx2-amd64.S - (_gcry_camellia_aesni_avx2_ctr_enc): Add 'vzeroall'. - (_gcry_camellia_aesni_avx2_cbc_dec) - (_gcry_camellia_aesni_avx2_cfb_dec): Add 'vzeroupper' at head and - 'vzeroall' at tail. - * cipher/camellia-glue.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) - (_gcry_serpent_avx2_cfb_dec) [USE_AESNI_AVX2]: Remove register - clearing. - - camellia-aesni-avx-amd64: Move register clearing to assembly functions. - * cipher/camellia-aesni-avx-amd64.S (_gcry_camellia_aesni_avx_ctr_enc) - (_gcry_camellia_aesni_avx_cbc_dec) - (_gcry_camellia_aesni_avx_cfb_dec): Add 'vzeroupper' at head and - 'vzeroall' at tail. - * cipher/camellia-glue.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) - (_gcry_serpent_avx2_cfb_dec) [USE_AESNI_AVX]: Remove register clearing. - - serpent-avx2-amd64: Move register clearing to assembly. - * cipher/serpent-avx2-amd64.S (_gcry_serpent_avx2_ctr_enc) - (_gcry_serpent_avx2_cbc_dec, _gcry_serpent_avx2_cfb_dec): Change last - 'vzeroupper' to 'vzeroall'. - * cipher/serpent.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) - (_gcry_serpent_avx2_cfb_dec) [USE_AVX2]: Remove register clearing with - 'vzeroall'. - - Fix building for x32 target. - * mpi/amd64/mpi-asm-defs.h: New file. - * random/rndhw.c (poll_padlock) [__x86_64__]: Also check if __LP64__ is - defined. - [USE_DRNG, __x86_64__]: Also check if __LP64__ is defined. - -2013-08-31 Jussi Kivilinna - - sha512: add ARM/NEON assembly version of transform function. - * cipher/Makefile.am: Add 'sha512-armv7-neon.S'. - * cipher/sha512-armv7-neon.S: New file. - * cipher/sha512.c (USE_ARM_NEON_ASM): New macro. - (SHA512_CONTEXT) [USE_ARM_NEON_ASM]: Add 'use_neon'. - (sha512_init, sha384_init) [USE_ARM_NEON_ASM]: Enable 'use_neon' if - CPU support NEON instructions. - (k): Round constant array moved outside of 'transform' function. - (__transform): Renamed from 'tranform' function. - [USE_ARM_NEON_ASM] (_gcry_sha512_transform_armv7_neon): New prototype. - (transform): New wrapper function for different transform versions. - (sha512_write, sha512_final): Burn stack by the amount returned by - transform function. - * configure.ac (sha512) [neonsupport]: Add 'sha512-armv7-neon.lo'. - - sha512: reduce stack use in transform function by 512 bytes. - * cipher/sha512.c (transform): Change 'u64 w[80]' to 'u64 w[16]' and - inline input expansion to first 64 rounds. - (sha512_write, sha512_final): Reduce burn_stack depth by 512 bytes. - - Add ARM HW feature detection module and add NEON detection. - * configure.ac: Add option --disable-neon-support. - (HAVE_GCC_INLINE_ASM_NEON): New. - (ENABLE_NEON_SUPPORT): New. - [arm]: Add 'hwf-arm.lo' as HW feature module. - * src/Makefile.am: Add 'hwf-arm.c'. - * src/g10lib.h (HWF_ARM_NEON): New macro. - * src/global.c (hwflist): Add HWF_ARM_NEON entry. - * src/hwf-arm.c: New file. - * src/hwf-common.h (_gcry_hwf_detect_arm): New prototype. - * src/hwfeatures.c (_gcry_detect_hw_features) [HAVE_CPU_ARCH_ARM]: Add - call to _gcry_hwf_detect_arm. - - Correct mpi_cpu_arch for ARMv6. - * mpi/config.links [armv6]: Set mpi_cpu_arch to "arm", instead of - "armv6". - -2013-08-30 Werner Koch - - mpi: Make gcry_mpi_print work with negative zeroes. - * mpi/mpicoder.c (gcry_mpi_print): Take care of negative zero. - (gcry_mpi_aprint): Allocate at least 1 byte. - * tests/t-convert.c: New. - * tests/Makefile.am (TESTS): Add t-convert. - - Refactor the ECC code into 3 files. - * cipher/ecc-common.h, cipher/ecc-curves.c, cipher/ecc-misc.c: New. - * cipher/Makefile.am (EXTRA_libcipher_la_SOURCES): Add new files. - * configure.ac (GCRYPT_PUBKEY_CIPHERS): Add new .c files. - * cipher/ecc.c (curve_aliases, ecc_domain_parms_t, domain_parms) - (scanval): Move to ecc-curves.c. - (fill_in_curve): Move to ecc-curve.c as _gcry_ecc_fill_in_curve. - (ecc_get_curve): Move to ecc-curve.c as _gcry_ecc_get_curve. - (_gcry_mpi_ec_ec2os): Move to ecc-misc.c. - (ec2os): Move to ecc-misc.c as _gcry_ecc_ec2os. - (os2ec): Move to ecc-misc.c as _gcry_ecc_os2ec. - (point_set): Move as inline function to ecc-common.h. - (_gcry_ecc_curve_free): Move to ecc-misc.c as _gcry_ecc_curve_free. - (_gcry_ecc_curve_copy): Move to ecc-misc.c as _gcry_ecc_curve_copy. - (mpi_from_keyparam, point_from_keyparam): Move to ecc-curves.c. - (_gcry_mpi_ec_new): Move to ecc-curves.c. - (ecc_get_param): Move to ecc-curves.c as _gcry_ecc_get_param. - (ecc_get_param_sexp): Move to ecc-curves.c as _gcry_ecc_get_param_sexp. - -2013-08-22 Jussi Kivilinna - - serpent-sse2-amd64: Move register clearing to assembly functions. - cipher/serpent-sse2-amd64.S (_gcry_serpent_sse2_ctr_enc) - (_gcry_serpent_sse2_cbc_dec, _gcry_serpent_sse2_cfb_dec): Clear used - XMM registers. - cipher/serpent.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) - ( _gcry_serpent_cfb_dec) [USE_SSE2]: Remove XMM register clearing from - bulk functions. - - twofish-amd64: do not make __twofish_dec_blk3 global. - * cipher/twofish-amd64.S (__twofish_dec_blk3): Do not export symbol as - global. - (__twofish_dec_blk3): Mark symbol as function. - -2013-08-20 Jussi Kivilinna - - mpi: add ARMv6 assembly. - * mpi/armv6/mpi-asm-defs.h: New. - * mpi/armv6/mpih-add1.S: New. - * mpi/armv6/mpih-mul1.S: New. - * mpi/armv6/mpih-mul2.S: New. - * mpi/armv6/mpih-mul3.S: New. - * mpi/armv6/mpih-sub1.S: New. - * mpi/config.links [arm]: Enable ARMv6 assembly. - - Move ARMv6 detection to configure.ac. - * cipher/blowfish-armv6.S: Replace __ARM_ARCH >= 6 checks with - HAVE_ARM_ARCH_V6. - * cipher/blowfish.c: Ditto. - * cipher/camellia-armv6.S: Ditto. - * cipher/camellia.h: Ditto. - * cipher/cast5-armv6.S: Ditto. - * cipher/cast5.c: Ditto. - * cipher/rijndael-armv6.S: Ditto. - * cipher/rijndael.c: Ditto. - * configure.ac: Add HAVE_ARM_ARCH_V6 check. - -2013-08-19 Jussi Kivilinna - - Add optimized wipememory for ARM. - src/g10lib.h [__arm__] (fast_wipememory2_unaligned_head) - (fast_wipememory2): New macros. - - cipher: bufhelp: allow unaligned memory accesses on ARM. - * cipher/bufhelp.h [__arm__ && __ARM_FEATURE_UNALIGNED]: Enable - BUFHELP_FAST_UNALIGNED_ACCESS. - -2013-08-17 Jussi Kivilinna - - Remove burn_stack optimization. - * src/misc.c (_gcry_burn_stack): Remove SIZEOF_UNSIGNED_LONG == 4 or 8 - optimization. - -2013-08-16 Jussi Kivilinna - - camellia: add ARMv6 assembly implementation. - * cipher/Makefile.am: Add 'camellia-armv6.S'. - * cipher/camellia-armv6.S: New file. - * cipher/camellia-glue.c [USE_ARMV6_ASM] - (_gcry_camellia_armv6_encrypt_block) - (_gcry_camellia_armv6_decrypt_block): New prototypes. - [USE_ARMV6_ASM] (Camellia_EncryptBlock, Camellia_DecryptBlock) - (camellia_encrypt, camellia_decrypt): New functions. - * cipher/camellia.c [!USE_ARMV6_ASM]: Compile encryption and decryption - routines if USE_ARMV6_ASM macro is _not_ defined. - * cipher/camellia.h (USE_ARMV6_ASM): New macro. - [!USE_ARMV6_ASM] (Camellia_EncryptBlock, Camellia_DecryptBlock): If - USE_ARMV6_ASM is defined, disable these function prototypes. - (camellia) [arm]: Add 'camellia-armv6.lo'. - - blowfish: add ARMv6 assembly implementation. - * cipher/Makefile.am: Add 'blowfish-armv6.S'. - * cipher/blowfish-armv6.S: New file. - * cipher/blowfish.c (USE_ARMV6_ASM): New macro. - [USE_ARMV6_ASM] (_gcry_blowfish_armv6_do_encrypt) - (_gcry_blowfish_armv6_encrypt_block) - (_gcry_blowfish_armv6_decrypt_block, _gcry_blowfish_armv6_ctr_enc) - (_gcry_blowfish_armv6_cbc_dec, _gcry_blowfish_armv6_cfb_dec): New - prototypes. - [USE_ARMV6_ASM] (do_encrypt, do_encrypt_block, do_decrypt_block) - (encrypt_block, decrypt_block): New functions. - (_gcry_blowfish_ctr_enc) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (_gcry_blowfish_cbc_dec) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (_gcry_blowfish_cfb_dec) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - * configure.ac (blowfish) [arm]: Add 'blowfish-armv6.lo'. - - cast5: add ARMv6 assembly implementation. - * cipher/Makefile.am: Add 'cast5-armv6.S'. - * cipher/cast5-armv6.S: New file. - * cipher/cast5.c (USE_ARMV6_ASM): New macro. - (CAST5_context) [USE_ARMV6_ASM]: New members 'Kr_arm_enc' and - 'Kr_arm_dec'. - [USE_ARMV6_ASM] (_gcry_cast5_armv6_encrypt_block) - (_gcry_cast5_armv6_decrypt_block, _gcry_cast5_armv6_ctr_enc) - (_gcry_cast5_armv6_cbc_dec, _gcry_cast5_armv6_cfb_dec): New prototypes. - [USE_ARMV6_ASM] (do_encrypt_block, do_decrypt_block, encrypt_block) - (decrypt_block): New functions. - (_gcry_cast5_ctr_enc) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (_gcry_cast5_cbc_dec) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (_gcry_cast5_cfb_dec) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (do_cast_setkey) [USE_ARMV6_ASM]: Initialize 'Kr_arm_enc' and - 'Kr_arm_dec'. - * configure.ac (cast5) [arm]: Add 'cast5-armv6.lo'. - -2013-08-14 Jussi Kivilinna - - rijndael: add ARMv6 assembly implementation. - * cipher/Makefile.am: Add 'rijndael-armv6.S'. - * cipher/rijndael-armv6.S: New file. - * cipher/rijndael.c (USE_ARMV6_ASM): New macro. - [USE_ARMV6_ASM] (_gcry_aes_armv6_encrypt_block) - (_gcry_aes_armv6_decrypt_block): New prototypes. - (do_encrypt_aligned) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (do_encrypt): Disable input/output alignment when USE_ARMV6_ASM. - (do_decrypt_aligned) [USE_ARMV6_ASM]: Use ARMv6 assembly function. - (do_decrypt): Disable input/output alignment when USE_ARMV6_ASM. - * configure.ac (HAVE_COMPATIBLE_GCC_ARM_PLATFORM_AS): New check for - gcc/as compatibility with ARM assembly implementations. - (aes) [arm]: Add 'rijndael-armv6.lo'. - -2013-08-09 NIIBE Yutaka - - cipher: fix memory leak. - * cipher/pubkey.c (gcry_pk_sign): Handle the specific case of ECC, - where there is NULL whichi is not the sentinel. - -2013-08-08 Werner Koch - - mpi: Clear immutable flag on the result of gcry_mpi_set. - * mpi/mpiutil.c (gcry_mpi_set): Reset immutable and const flags. - * tests/mpitests.c (test_const_and_immutable): Add a test for this. - -2013-08-07 NIIBE Yutaka - - tests: fix memory leaks. - * tests/benchmark.c (dsa_bench): Release SIG. - - * tests/mpitests.c (test_powm): Release BASE, EXP, MOD, and RES. - - * tests/prime.c (check_primes): Release PRIME. - - * tests/tsexp.c (basic): Use intermediate variable M for constant. - Release S1, S2 and A. - -2013-08-07 Jussi Kivilinna - - Fix building on W32 (cannot export symbol 'gcry_sexp_get_buffer') - * src/libgcrypt.def: Change 'gcry_sexp_get_buffer' to - 'gcry_sexp_nth_buffer'. - -2013-08-06 NIIBE Yutaka - - cipher: fix another memory leak. - * cipher/ecc.c (ecc_get_curve): Free TMP. - - tests: fix memory leaks. - * tests/pubkey.c (check_keys_crypt): Release L, X0, and X1. - (check_keys): Release X. - - cipher: fix memory leaks. - * cipher/elgamal.c (elg_generate_ext): Free XVALUE. - - * cipher/pubkey.c (sexp_elements_extract): Don't use IDX for loop. - Call mpi_free. - (sexp_elements_extract_ecc): Call mpi_free. - -2013-08-05 Werner Koch - - mpi: Improve gcry_mpi_invm to detect bad input. - * mpi/mpi-inv.c (gcry_mpi_invm): Return 0 for bad input. - -2013-07-31 Dmitry Eremin-Solenikov - - Correct checks for ecc secret key. - * cipher/ecc.c (check_secret_key): replace wrong comparison of Q and - sk->Q points with correct one. - -2013-07-29 Werner Koch - - sexp: Allow white space anywhere in a hex format. - * src/sexp.c (hextobyte): Remove. - (hextonibble): New. - (vsexp_sscan): Skip whtespace between hex nibbles. - - Implement deterministic ECDSA as specified by rfc-6979. - * cipher/ecc.c (sign): Add args FLAGS and HASHALGO. Convert an opaque - MPI as INPUT. Implement rfc-6979. - (ecc_sign): Remove the opaque MPI code and pass FLAGS to sign. - (verify): Do not allocate and compute Y; it is not used. - (ecc_verify): Truncate the hash value if needed. - * tests/dsa-rfc6979.c (check_dsa_rfc6979): Add ECDSA test cases. - -2013-07-26 Werner Koch - - Implement deterministic DSA as specified by rfc-6979. - * cipher/dsa.c (dsa_sign): Move opaque mpi extraction to sign. - (sign): Add args FLAGS and HASHALGO. Implement deterministic DSA. - Add code path for R==0 to comply with the standard. - (dsa_verify): Left fill opaque mpi based hash values. - * cipher/dsa-common.c (int2octets, bits2octets): New. - (_gcry_dsa_gen_rfc6979_k): New. - * tests/dsa-rfc6979.c: New. - * tests/Makefile.am (TESTS): Add dsa-rfc6979. - - Allow the use of a private-key s-expression with gcry_pk_verify. - * cipher/pubkey.c (sexp_to_key): Fallback to private key. - -2013-07-25 Werner Koch - - Mitigate a flush+reload cache attack on RSA secret exponents. - * mpi/mpi-pow.c (gcry_mpi_powm): Always perfrom the mpi_mul for - exponents in secure memory. - -2013-07-19 Werner Koch - - pk: Allow the use of a hash element for DSA sign and verify. - * cipher/pubkey.c (pubkey_sign): Add arg ctx and pass it to the sign - module. - (gcry_pk_sign): Pass CTX to pubkey_sign. - (sexp_data_to_mpi): Add flag rfc6979 and code to alls hash with *DSA - * cipher/rsa.c (rsa_sign, rsa_verify): Return an error if an opaque - MPI is given for DATA/HASH. - * cipher/elgamal.c (elg_sign, elg_verify): Ditto. - * cipher/dsa.c (dsa_sign, dsa_verify): Convert a given opaque MPI. - * cipher/ecc.c (ecc_sign, ecc_verify): Ditto. - * tests/basic.c (check_pubkey_sign_ecdsa): Add a test for using a hash - element with DSA. - - sexp: Add function gcry_sexp_nth_buffer. - * src/sexp.c (gcry_sexp_nth_buffer): New. - * src/visibility.c, src/visibility.h: Add function wrapper. - * src/libgcrypt.vers, src/libgcrypt.def: Add to API. - * src/gcrypt.h.in: Add prototype. - -2013-07-18 Werner Koch - - Add support for Salsa20. - * src/gcrypt.h.in (GCRY_CIPHER_SALSA20): New. - * cipher/salsa20.c: New. - * configure.ac (available_ciphers): Add Salsa20. - * cipher/cipher.c: Register Salsa20. - (cipher_setiv): Allow to divert an IV to a cipher module. - * src/cipher-proto.h (cipher_setiv_func_t): New. - (cipher_extra_spec): Add field setiv. - * src/cipher.h: Declare Salsa20 definitions. - * tests/basic.c (check_stream_cipher): New. - (check_stream_cipher_large_block): New. - (check_cipher_modes): Run new test functions. - (check_ciphers): Add simple test for Salsa20. - -2013-07-17 Werner Koch - - Allow gcry_mpi_dump to print opaque MPIs. - * mpi/mpicoder.c (gcry_mpi_dump): Detect abd print opaque MPIs. - * tests/mpitests.c (test_opaque): New. - (main): Call new test. - - cipher: Prepare to pass extra info to the sign functions. - * src/gcrypt-module.h (gcry_pk_sign_t): Add parms flags and hashalgo. - * cipher/rsa.c (rsa_sign): Add parms and mark them as unused. - * cipher/dsa.c (dsa_sign): Ditto. - * cipher/elgamal.c (elg_sign): Ditto. - * cipher/pubkey.c (dummy_sign): Ditto. - (pubkey_sign): Pass 0 for the new args. - - Fix a special case bug in mpi_powm for e==0. - * mpi/mpi-pow.c (gcry_mpi_powm): For a zero exponent, make sure that - the result has been allocated. - -2013-07-15 Dmitry Eremin-Solenikov - - Fix memory leak in t-mpi-point test. - * tests/t-mpi-point.c (basic_ec_math, basic_ec_math_simplified): add - calls to gcry_ctx_release() to free contexts after they become unused. - -2013-07-10 Jussi Kivilinna - - Fix 'Please include winsock2.h before windows.h' warnings with mingw32. - * random/rndw32.c: include winsock2.h before windows.h. - * src/ath.h [_WIN32]: Ditto. - * tests/benchmark.c [_WIN32]: Ditto. - - Remove duplicate header from mpi/amd64/mpih-mul2.S. - * mpi/amd64/mpih-mul2.S: remove duplicated header. - - Fix i386/amd64 inline assembly "cc" clobbers. - * cipher/bithelp.h [__GNUC__, __i386__] (rol, ror): add "cc" globber - for inline assembly. - * cipher/cast5.c [__GNUC__, __i386__] (rol): Ditto. - * random/rndhw.c [USE_DRNG] (rdrand_long): Ditto. - * src/hmac256.c [__GNUC__, __i386__] (ror): Ditto. - * mpi/longlong.c [__i386__] (add_ssaaaa, sub_ddmmss, umul_ppmm) - (udiv_qrnnd, count_leading_zeros, count_trailing_zeros): Ditto. - - bufhelp: Suppress 'cast increases required alignment' warning. - * cipher/bufhelp.h (buf_xor, buf_xor_2dst, buf_xor_n_copy): Cast - to larger element pointer through (void *) to suppress -Wcast-error. - - mpi: Add __ARM_ARCH for older GCC. - * mpi/longlong.h [__arm__]: Construct __ARM_ARCH if not provided by - compiler. - - mpi: add missing "cc" clobber for ARM assembly. - * mpi/longlong.h [__arm__] (add_ssaaaa, sub_ddmmss): Add __CLOBBER_CC. - [__arm__][__ARM_ARCH <= 3] (umul_ppmm): Ditto. - - Tweak ARM inline assembly for mpi. - mpi/longlong.h [__arm__]: Enable inline assembly if __thumb2__ is - defined. - [__arm__]: Use __ARCH_ARM when defined. - [__arm__] [__ARM_ARCH >= 5] (count_leading_zeros): New. - -2013-06-26 Werner Koch - - Make gpg-error replacement defines more robust. - * configure.ac (AH_BOTTOM): Move GPG_ERR_ replacement defines to ... - * src/gcrypt-int.h: new file. - * src/visibility.h, src/cipher.h: Replace gcrypt.h by gcrypt-int.h. - * tests/: Ditto for all test files. - -2013-06-20 Jussi Kivilinna - - Check if assembler is compatible with AMD64 assembly implementations. - * cipher/blowfish-amd64.S: Enable only if - HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS is defined. - * cipher/camellia-aesni-avx-amd64.S: Ditto. - * cipher/camellia-aesni-avx2-amd64.S: Ditto. - * cipher/cast5-amd64.S: Ditto. - * cipher/rinjdael-amd64.S: Ditto. - * cipher/serpent-avx2-amd64.S: Ditto. - * cipher/serpent-sse2-amd64.S: Ditto. - * cipher/twofish-amd64.S: Ditto. - * cipher/blowfish.c: Use AMD64 assembly implementation only if - HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS is defined - * cipher/camellia-glue.c: Ditto. - * cipher/cast5.c: Ditto. - * cipher/rijndael.c: Ditto. - * cipher/serpent.c: Ditto. - * cipher/twofish.c: Ditto. - * configure.ac: Check gcc/as compatibility with AMD64 assembly - implementations. - -2013-06-09 Jussi Kivilinna - - Optimize _gcry_burn_stack for 32-bit and 64-bit architectures. - * src/misc.c (_gcry_burn_stack): Add optimization for 32-bit and 64-bit - architectures. - - Add Camellia AES-NI/AVX2 implementation. - * cipher/Makefile.am: Add 'camellia-aesni-avx2-amd64.S'. - * cipher/camellia-aesni-avx2-amd64.S: New file. - * cipher/camellia-glue.c (USE_AESNI_AVX2): New macro. - (CAMELLIA_context) [USE_AESNI_AVX2]: Add 'use_aesni_avx2'. - [USE_AESNI_AVX2] (_gcry_camellia_aesni_avx2_ctr_enc) - (_gcry_camellia_aesni_avx2_cbc_dec) - (_gcry_camellia_aesni_avx2_cfb_dec): New prototypes. - (camellia_setkey) [USE_AESNI_AVX2]: Check AVX2+AES-NI capable hardware - and set 'ctx->use_aesni_avx2'. - (_gcry_camellia_ctr_enc) [USE_AESNI_AVX2]: Add AVX2 accelerated code. - (_gcry_camellia_cbc_dec) [USE_AESNI_AVX2]: Add AVX2 accelerated code. - (_gcry_camellia_cfb_dec) [USE_AESNI_AVX2]: Add AVX2 accelerated code. - (selftest_ctr_128, selftest_cbc_128, selftest_cfb_128): Grow 'nblocks' - so that AVX2 codepaths get tested. - * configure.ac (camellia) [avx2support, aesnisupport]: Add - 'camellia-aesni-avx2-amd64.lo'. - - Add Serpent AVX2 implementation. - * cipher/Makefile.am: Add 'serpent-avx2-amd64.S'. - * cipher/serpent-avx2-amd64.S: New file. - * cipher/serpent.c (USE_AVX2): New macro. - (serpent_context_t) [USE_AVX2]: Add 'use_avx2'. - [USE_AVX2] (_gcry_serpent_avx2_ctr_enc, _gcry_serpent_avx2_cbc_dec) - (_gcry_serpent_avx2_cfb_dec): New prototypes. - (serpent_setkey_internal) [USE_AVX2]: Check for AVX2 capable hardware - and set 'use_avx2'. - (_gcry_serpent_ctr_enc) [USE_AVX2]: Use AVX2 accelerated functions. - (_gcry_serpent_cbc_dec) [USE_AVX2]: Use AVX2 accelerated functions. - (_gcry_serpent_cfb_dec) [USE_AVX2]: Use AVX2 accelerated functions. - (selftest_ctr_128, selftest_cbc_128, selftest_cfb_128): Grow 'nblocks' - so that AVX2 codepaths are tested. - * configure.ac (serpent) [avx2support]: Add 'serpent-avx2-amd64.lo'. - - Add detection for Intel AVX2 instruction set. - * configure.ac: Add option --disable-avx2-support. - (HAVE_GCC_INLINE_ASM_AVX2): New. - (ENABLE_AVX2_SUPPORT): New. - * src/g10lib.h (HWF_INTEL_AVX2): New. - * src/global.c (hwflist): Add HWF_INTEL_AVX2. - * src/hwf-x86.c [__i386__] (get_cpuid): Initialize registers to zero - before cpuid. - [__x86_64__] (get_cpuid): Initialize registers to zero before cpuid. - (detect_x86_gnuc): Store maximum cpuid level. - (detect_x86_gnuc) [ENABLE_AVX2_SUPPORT]: Add detection for AVX2. - - twofish: add amd64 assembly implementation. - * cipher/Makefile.am: Add 'twofish-amd64.S'. - * cipher/twofish-amd64.S: New file. - * cipher/twofish.c (USE_AMD64_ASM): New macro. - [USE_AMD64_ASM] (_gcry_twofish_amd64_encrypt_block) - (_gcry_twofish_amd64_decrypt_block, _gcry_twofish_amd64_ctr_enc) - (_gcry_twofish_amd64_cbc_dec, _gcry_twofish_amd64_cfb_dec): New - prototypes. - [USE_AMD64_ASM] (do_twofish_encrypt, do_twofish_decrypt) - (twofish_encrypt, twofish_decrypt): New functions. - (_gcry_twofish_ctr_enc, _gcry_twofish_cbc_dec, _gcry_twofish_cfb_dec) - (selftest_ctr, selftest_cbc, selftest_cfb): New functions. - (selftest): Call new bulk selftests. - * cipher/cipher.c (gcry_cipher_open) [USE_TWOFISH]: Register Twofish - bulk functions for ctr-enc, cbc-dec and cfb-dec. - * configure.ac (twofish) [x86_64]: Add 'twofish-amd64.lo'. - * src/cipher.h (_gcry_twofish_ctr_enc, _gcry_twofish_cbc_dec) - (gcry_twofish_cfb_dec): New prototypes. - -2013-05-29 Jussi Kivilinna - - rinjdael: add amd64 assembly implementation. - * cipher/Makefile.am: Add 'rijndael-amd64.S'. - * cipher/rijndael-amd64.S: New file. - * cipher/rijndael.c (USE_AMD64_ASM): New macro. - [USE_AMD64_ASM] (_gcry_aes_amd64_encrypt_block) - (_gcry_aes_amd64_decrypt_block): New prototypes. - (do_encrypt_aligned) [USE_AMD64_ASM]: Use amd64 assembly function. - (do_encrypt): Disable input/output alignment when USE_AMD64_ASM is set. - (do_decrypt_aligned) [USE_AMD64_ASM]: Use amd64 assembly function. - (do_decrypt): Disable input/output alignment when USE_AMD64_AES is set. - * configure.ac (aes) [x86-64]: Add 'rijndael-amd64.lo'. - - blowfish: add amd64 assembly implementation. - * cipher/Makefile.am: Add 'blowfish-amd64.S'. - * cipher/blowfish-amd64.S: New file. - * cipher/blowfish.c (USE_AMD64_ASM): New macro. - [USE_AMD64_ASM] (_gcry_blowfish_amd64_do_encrypt) - (_gcry_blowfish_amd64_encrypt_block) - (_gcry_blowfish_amd64_decrypt_block, _gcry_blowfish_amd64_ctr_enc) - (_gcry_blowfish_amd64_cbc_dec, _gcry_blowfish_amd64_cfb_dec): New - prototypes. - [USE_AMD64_ASM] (do_encrypt, do_encrypt_block, do_decrypt_block) - (encrypt_block, decrypt_block): New functions. - (_gcry_blowfish_ctr_enc, _gcry_blowfish_cbc_dec) - (_gcry_blowfish_cfb_dec, selftest_ctr, selftest_cbc, selftest_cfb): New - functions. - (selftest): Call new bulk selftests. - * cipher/cipher.c (gcry_cipher_open) [USE_BLOWFISH]: Register Blowfish - bulk functions for ctr-enc, cbc-dec and cfb-dec. - * configure.ac (blowfish) [x86_64]: Add 'blowfish-amd64.lo'. - * src/cipher.h (_gcry_blowfish_ctr_enc, _gcry_blowfish_cbc_dec) - (gcry_blowfish_cfb_dec): New prototypes. - -2013-05-24 Werner Koch - - ecc: Simplify the compliant point generation. - * cipher/ecc.c (generate_key): Use point_snatch_set, replaces unneeded - variable copies, etc. - - ecc: Fix a minor flaw in the generation of K. - * cipher/dsa.c (gen_k): Factor code out to .. - * cipher/dsa-common.c (_gcry_dsa_gen_k): new file and function. Add - arg security_level and re-indent a bit. - * cipher/ecc.c (gen_k): Remove and change callers to _gcry_dsa_gen_k. - * cipher/dsa.c: Include pubkey-internal. - * cipher/Makefile.am (libcipher_la_SOURCES): Add dsa-common.c - -2013-05-24 Jussi Kivilinna - - cast5: add amd64 assembly implementation. - * cipher/Makefile.am: Add 'cast5-amd64.S'. - * cipher/cast5-amd64.S: New file. - * cipher/cast5.c (USE_AMD64_ASM): New macro. - (_gcry_cast5_s1tos4): Merge arrays s1, s2, s3, s4 to single array to - simplify access from assembly implementation. - (s1, s2, s3, s4): New macros pointing to subarrays in - _gcry_cast5_s1tos4. - [USE_AMD64_ASM] (_gcry_cast5_amd64_encrypt_block) - (_gcry_cast5_amd64_decrypt_block, _gcry_cast5_amd64_ctr_enc) - (_gcry_cast5_amd64_cbc_dec, _gcry_cast5_amd64_cfb_dec): New prototypes. - [USE_AMD64_ASM] (do_encrypt_block, do_decrypt_block, encrypt_block) - (decrypt_block): New functions. - (_gcry_cast5_ctr_enc, _gcry_cast5_cbc_dec, _gcry_cast5_cfb_dec) - (selftest_ctr, selftest_cbc, selftest_cfb): New functions. - (selftest): Call new bulk selftests. - * cipher/cipher.c (gcry_cipher_open) [USE_CAST5]: Register CAST5 bulk - functions for ctr-enc, cbc-dec and cfb-dec. - * configure.ac (cast5) [x86_64]: Add 'cast5-amd64.lo'. - * src/cipher.h (_gcry_cast5_ctr_enc, _gcry_cast5_cbc_dec) - (gcry_cast5_cfb_dec): New prototypes. - - cipher-selftest: make selftest work with any block-size. - * cipher/cipher-selftest.c (_gcry_selftest_helper_cbc_128) - (_gcry_selftest_helper_cfb_128, _gcry_selftest_helper_ctr_128): Renamed - functions from '_128' to ''. - (_gcry_selftest_helper_cbc, _gcry_selftest_helper_cfb) - (_gcry_selftest_helper_ctr): Make work with different block sizes. - * cipher/cipher-selftest.h (_gcry_selftest_helper_cbc_128) - (_gcry_selftest_helper_cfb_128, _gcry_selftest_helper_ctr_128): Renamed - prototypes from '_128' to ''. - * cipher/camellia-glue.c (selftest_ctr_128, selftest_cfb_128) - (selftest_ctr_128): Change to use new function names. - * cipher/rijndael.c (selftest_ctr_128, selftest_cfb_128) - (selftest_ctr_128): Change to use new function names. - * cipher/serpent.c (selftest_ctr_128, selftest_cfb_128) - (selftest_ctr_128): Change to use new function names. - -2013-05-23 Jussi Kivilinna - - serpent: add parallel processing for CFB decryption. - * cipher/cipher.c (gcry_cipher_open): Add bulf CFB decryption function - for Serpent. - * cipher/serpent-sse2-amd64.S (_gcry_serpent_sse2_cfb_dec): New - function. - * cipher/serpent.c (_gcry_serpent_sse2_cfb_dec): New prototype. - (_gcry_serpent_cfb_dec) New function. - (selftest_cfb_128) New function. - (selftest) Call selftest_cfb_128. - * src/cipher.h (_gcry_serpent_cfb_dec): New prototype. - - camellia: add parallel processing for CFB decryption. - * cipher/camellia-aesni-avx-amd64.S - (_gcry_camellia_aesni_avx_cfb_dec): New function. - * cipher/camellia-glue.c (_gcry_camellia_aesni_avx_cfb_dec): New - prototype. - (_gcry_camellia_cfb_dec): New function. - (selftest_cfb_128): New function. - (selftest): Call selftest_cfb_128. - * cipher/cipher.c (gry_cipher_open): Add bulk CFB decryption function - for Camellia. - * src/cipher.h (_gcry_camellia_cfb_dec): New prototype. - - rinjdael: add parallel processing for CFB decryption with AES-NI. - * cipher/cipher-selftest.c (_gcry_selftest_helper_cfb_128): New - function for CFB selftests. - * cipher/cipher-selftest.h (_gcry_selftest_helper_cfb_128): New - prototype. - * cipher/rijndael.c [USE_AESNI] (do_aesni_enc_vec4): New function. - (_gcry_aes_cfb_dec) [USE_AESNI]: Add parallelized CFB decryption. - (selftest_cfb_128): New function. - (selftest): Call selftest_cfb_128. - -2013-05-23 Werner Koch - - Avoid compiler warning due to the global symbol setkey. - * cipher/cipher-selftest.c (_gcry_selftest_helper_cbc_128) - (_gcry_selftest_helper_ctr_128): Rename setkey to setkey_func. - -2013-05-23 Jussi Kivilinna - - serpent: add SSE2 accelerated amd64 implementation. - * configure.ac (serpent): Add 'serpent-sse2-amd64.lo'. - * cipher/Makefile.am (EXTRA_libcipher_la_SOURCES): Add - 'serpent-sse2-amd64.S'. - * cipher/cipher.c (gcry_cipher_open) [USE_SERPENT]: Register bulk - functions for CBC-decryption and CTR-mode. - * cipher/serpent.c (USE_SSE2): New macro. - [USE_SSE2] (_gcry_serpent_sse2_ctr_enc, _gcry_serpent_sse2_cbc_dec): - New prototypes to assembler functions. - (serpent_setkey): Set 'serpent_init_done' before calling serpent_test. - (_gcry_serpent_ctr_enc): New function. - (_gcry_serpent_cbc_dec): New function. - (selftest_ctr_128): New function. - (selftest_cbc_128): New function. - (selftest): Call selftest_ctr_128 and selftest_cbc_128. - * cipher/serpent-sse2-amd64.S: New file. - * src/cipher.h (_gcry_serpent_ctr_enc): New prototype. - (_gcry_serpent_cbc_dec): New prototype. - - Serpent: faster S-box implementation. - * cipher/serpent.c (SBOX0, SBOX1, SBOX2, SBOX3, SBOX4, SBOX5, SBOX6) - (SBOX7, SBOX0_INVERSE, SBOX1_INVERSE, SBOX2_INVERSE, SBOX3_INVERSE) - (SBOX4_INVERSE, SBOX5_INVERSE, SBOX6_INVERSE, SBOX7_INVERSE): Replace - with new definitions. - -2013-05-22 Werner Koch - - w32: Fix installing of .def file. - * src/Makefile.am (install-def-file): Create libdir first. - - Add control commands to disable mlock and setuid dropping. - * src/gcrypt.h.in (GCRYCTL_DISABLE_LOCKED_SECMEM): New. - (GCRYCTL_DISABLE_PRIV_DROP): New. - * src/global.c (_gcry_vcontrol): Implement them. - * src/secmem.h (GCRY_SECMEM_FLAG_NO_MLOCK): New. - (GCRY_SECMEM_FLAG_NO_PRIV_DROP): New. - * src/secmem.c (no_mlock, no_priv_drop): New. - (_gcry_secmem_set_flags, _gcry_secmem_get_flags): Set and get them. - (lock_pool): Handle no_mlock and no_priv_drop. - - Fix libtool 2.4.2 to correctly detect .def files. - * ltmain.sh (sed_uncomment_deffile): New. - (orig_export_symbols): Uncomment def file before testing for EXPORTS. - * m4/libtool.m4: Do the same for the generated code. - -2013-05-22 Jussi Kivilinna - - Add AES bulk CBC decryption selftest. - * cipher/rinjdael.c (selftest_cbc_128): New. - (selftest): Call selftest_cbc_128. - - Change AES bulk CTR encryption selftest use new selftest helper function - * cipher/rinjdael.c: (selftest_ctr_128): Change to use new selftest - helper function. - - Convert bulk CTR and CBC selftest functions in Camellia to generic selftest helper functions - * cipher/Makefile.am (libcipher_la_SOURCES): Add cipher-selftest files. - * cipher/camellia-glue.c (selftest_ctr_128, selftest_cbc_128): Change - to use the new selftest helper functions. - * cipher/cipher-selftest.c: New. - * cipher/cipher-selftest.h: New. - - camellia: add bulk CBC decryption selftest. - * cipher/camellia-glue.c: (selftest_cbc_128): New selftest function for - bulk CBC decryption. - (selftest): Add call to selftest_cbc_128. - - camellia: Rename camellia_aesni_avx_x86-64.S to camellia-aesni-avx-amd64.S - * cipher/camellia_aesni_avx_x86-64.S: Remove. - * cipher/camellia-aesni-avx-amd64.S: New. - * cipher/Makefile.am: Use the new filename. - * configure.ac: Use the new filename. - -2013-05-21 Werner Koch - - Fix indentation and save on string space. - * cipher/ecc.c (generate_key): Use the same string for both fatal - messages. - -2013-05-20 Andrey - - cipher: Fix segv in last ECC change. - * cipher/ecc.c (generate_key): Make sure R is initialized. - -2013-05-09 Andrey - - cipher: Generate compliant ECC keys. - * cipher/ecc.c (generate_key): Make sure a key is compliant for - using the compact representation. - -2013-04-18 Werner Koch - - cipher: Fix regression in Padlock support. - * cipher/rijndael.c (do_setkey): Remove dummy padlock key generation case - and use the standard one. - - mpi: Yet another fix to get option flag munging right. - * cipher/Makefile.am (o_flag_munging): Yet another fix. - - mpi: Make using gcc's -Ofast easier. - * cipher/Makefile.am (o_flag_munging): Take -Ofast in account. - - 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. - - 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. - - - (cherry picked from 4cd279556777e02eda79973f68efaa4b741f9175) - -2013-04-18 Vladimir Serbinenko - - 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-16 Werner Koch - - Fix multiply by zero in gcry_mpi_ec_mul. - * mpi/ec.c (_gcry_mpi_ec_mul_point): Handle case of SCALAR == 0. - * tests/t-mpi-point.c (basic_ec_math): Add a test case for this. - -2013-04-15 Werner Koch - - Add macros to return pre-defined MPIs. - * src/gcrypt.h.in (GCRYMPI_CONST_ONE, GCRYMPI_CONST_TWO) - (GCRYMPI_CONST_THREE, GCRYMPI_CONST_FOUR, GCRYMPI_CONST_EIGHT): New. - (_gcry_mpi_get_const): New private function. - * src/visibility.c (_gcry_mpi_get_const): New. - * src/visibility.h: Mark it visible. - - Fix addition of EC points. - * mpi/ec.c (_gcry_mpi_ec_add_points): Fix case of P1 given in affine - coordinates. - -2013-04-12 Werner Koch - - Add hack to allow using an "ecc" key for "ecdsa" or "ecdh". - * cipher/pubkey.c (sexp_to_key): Add optional arg USE. - (gcry_pk_encrypt, gcry_pk_decrypt): Call sexp_to_key with usage sign. - (gcry_pk_sign, gcry_pk_verify): Call sexp_to_key with usage encrypt. - * tests/basic.c (show_sexp): New. - (check_pubkey_sign): Print test number and add cases for ecc. - (check_pubkey_sign_ecdsa): New. - (do_check_one_pubkey): Divert to new function. - -2013-04-11 Werner Koch - - Add gcry_pubkey_get_sexp. - * src/gcrypt.h.in (GCRY_PK_GET_PUBKEY): New. - (GCRY_PK_GET_SECKEY): New. - (gcry_pubkey_get_sexp): New. - * src/visibility.c (gcry_pubkey_get_sexp): New. - * src/visibility.h (gcry_pubkey_get_sexp): Mark visible. - * src/libgcrypt.def, src/libgcrypt.vers: Add new function. - * cipher/pubkey-internal.h: New. - * cipher/Makefile.am (libcipher_la_SOURCES): Add new file. - * cipher/ecc.c: Include pubkey-internal.h - (_gcry_pk_ecc_get_sexp): New. - * cipher/pubkey.c: Include pubkey-internal.h and context.h. - (_gcry_pubkey_get_sexp): New. - * src/context.c (_gcry_ctx_find_pointer): New. - * src/cipher-proto.h: Add _gcry_pubkey_get_sexp. - * tests/t-mpi-point.c (print_sexp): New. - (context_param, basic_ec_math_simplified): Add tests for the new - function. - - * configure.ac (NEED_GPG_ERROR_VERSION): Set to 1.11. - (AH_BOTTOM) Add error codes from gpg-error 1.12 - * src/g10lib.h (fips_not_operational): Use GPG_ERR_NOT_OPERATIONAL. - - * mpi/ec.c (_gcry_mpi_ec_get_mpi): Fix computation of Q. - (_gcry_mpi_ec_get_point): Ditto. - - Remove unused code. - * cipher/pubkey.c (_gcry_pk_module_lookup, _gcry_pk_module_release) - (_gcry_pk_get_elements): Remove. - -2013-04-05 Werner Koch - - Make the Q parameter optional for ECC signing. - * cipher/ecc.c (ecc_sign): Remove the need for Q. - * cipher/pubkey.c (sexp_elements_extract_ecc): Make Q optional for a - private key. - (sexp_to_key): Add optional arg R_IS_ECC. - (gcry_pk_sign): Do not call gcry_pk_get_nbits for ECC keys. - * tests/pubkey.c (die): Make sure to print a LF. - (check_ecc_sample_key): New. - (main): Call new test. - - Add test case for SCRYPT and rework the code. - * tests/t-kdf.c (check_scrypt): New. - (main): Call new test. - - * configure.ac: Support disabling of the scrypt algorithm. Make KDF - enabling similar to the other algorithm classes. Disable scrypt if we - don't have a 64 bit type. - * cipher/memxor.c, cipher/memxor.h: Remove. - * cipher/scrypt.h: Remove. - * cipher/kdf-internal.h: New. - * cipher/Makefile.am: Remove files. Add new file. Move scrypt.c to - EXTRA_libcipher_la_SOURCES. - (GCRYPT_MODULES): Add GCRYPT_KDFS. - * src/gcrypt.h.in (GCRY_KDF_SCRYPT): Change value. - * cipher/kdf.c (pkdf2): Rename to _gcry_kdf_pkdf2. - (_gcry_kdf_pkdf2): Don't bail out for SALTLEN==0. - (gcry_kdf_derive): Allow for a passwordlen of zero for scrypt. Check - for SALTLEN > 0 for GCRY_KDF_PBKDF2. Pass algo to _gcry_kdf_scrypt. - (gcry_kdf_derive) [!USE_SCRYPT]: Return an error. - * cipher/scrypt.c: Replace memxor.h by bufhelp.h. Replace scrypt.h by - kdf-internal.h. Enable code only if HAVE_U64_TYPEDEF is defined. - Replace C99 types uint64_t, uint32_t, and uint8_t by libgcrypt types. - (_SALSA20_INPUT_LENGTH): Remove underscore from identifier. - (_scryptBlockMix): Replace memxor by buf_xor. - (_gcry_kdf_scrypt): Use gcry_malloc and gcry_free. Check for integer - overflow. Add hack to support blocksize of 1 for tests. Return - errors from calls to _gcry_kdf_pkdf2. - - * cipher/kdf.c (openpgp_s2k): Make static. - -2013-04-04 Christian Grothoff - - Add the SCRYPT KDF function. - * scrypt.c, scrypt.h: New files. - * memxor.c, memxor.h: New files. - * cipher/Makefile.am: Add new files. - * cipher/kdf.c (gcry_kdf_derive): Support GCRY_KDF_SCRYPT. - * src/gcrypt.h.in (GCRY_KDF_SCRYPT): New. - -2013-03-22 Werner Koch - - Replace deprecated AM_CONFIG_HEADER macro. - * configure.ac: s/AM_CONFIG_HEADER/AC_CONFIG_HEADER/ - - Disable AES-NI support if as does not support SSSE3. - * configure.ac (HAVE_GCC_INLINE_ASM_SSSE3): New test. - (ENABLE_AESNI_SUPPORT): Do not define without SSSE3 support. - (HAVE_GCC_INLINE_ASM_SSSE3, ENABLE_AVX_SUPPORT): Split up detection - and definition. - -2013-03-21 Werner Koch - - Fix make dependency regression. - * src/Makefile.am (libgcrypt_la_DEPENDENCIES): Add missing backslash. - Reported by LRN. - -2013-03-20 Werner Koch - - Use finer grained on-the-fly helper computations for EC. - * src/ec-context.h (mpi_ec_ctx_s): Replace NEED_SYNC by a bitfield. - * mpi/ec.c (ec_p_sync): Remove. - (ec_get_reset, ec_get_a_is_pminus3, ec_get_two_inv_p): New. - (ec_p_init): Use ec_get_reset. - (_gcry_mpi_ec_set_mpi, _gcry_mpi_ec_dup_point) - (_gcry_mpi_ec_add_points): Replace ec_p_sync by the ec_get_ accessors. - - Allow building with w64-mingw32. - * autogen.sh <--build-w32>: Support the w64-mingw32 toolchain. Also - prepare for 64 bit building. - - Provide GCRYPT_VERSION_NUMBER macro, add build info to the binary. - * src/gcrypt.h.in (GCRYPT_VERSION_NUMBER): New. - * configure.ac (VERSION_NUMBER): New ac_subst. - * src/global.c (_gcry_vcontrol): Move call to above function ... - (gcry_check_version): .. here. - - * configure.ac (BUILD_REVISION, BUILD_FILEVERSION) - (BUILD_TIMESTAMP): Define on all platforms. - * compat/compat.c (_gcry_compat_identification): Include revision and - timestamp. - - Fix a memory leak in the new EC code. - * cipher/ecc.c (point_from_keyparam): Always call mpi_free on A. - -2013-03-19 Werner Koch - - Extend the new EC interface and fix two bugs. - * src/ec-context.h (mpi_ec_ctx_s): Add field NEED_SYNC. - * mpi/ec.c (ec_p_sync): New. - (ec_p_init): Only set NEED_SYNC. - (_gcry_mpi_ec_set_mpi): Set NEED_SYNC for 'p' and 'a'. - (_gcry_mpi_ec_dup_point, _gcry_mpi_ec_add_points) - (_gcry_mpi_ec_mul_point): Call ec_p_sync. - (_gcry_mpi_ec_get_point): Recompute 'q' is needed. - (_gcry_mpi_ec_get_mpi): Ditto. Also allow for names 'q', 'q.x', - 'q.y', and 'g'. - * cipher/ecc.c (_gcry_mpi_ec_ec2os): New. - - * cipher/ecc.c (_gcry_mpi_ec_new): Fix init from parameters 'Q'->'q', - 'G'->'q'. - -2013-03-15 Werner Koch - - mpi: Add functions to manipulate an EC context. - * src/gcrypt.h.in (gcry_mpi_ec_p_new): Remove. - (gcry_mpi_ec_new): New. - (gcry_mpi_ec_get_mpi): New. - (gcry_mpi_ec_get_point): New. - (gcry_mpi_ec_set_mpi): New. - (gcry_mpi_ec_set_point): New. - * src/visibility.c (gcry_mpi_ec_p_new): Remove. - * mpi/ec.c (_gcry_mpi_ec_p_new): Make it an internal function and - change to return an error code. - (_gcry_mpi_ec_get_mpi): New. - (_gcry_mpi_ec_get_point): New. - (_gcry_mpi_ec_set_mpi): New. - (_gcry_mpi_ec_set_point): New. - * src/mpi.h: Add new prototypes. - * src/ec-context.h: New. - * mpi/ec.c: Include that header. - (mpi_ec_ctx_s): Move to ec-context.h, add new fields, and put some - fields into an inner struct. - (point_copy): New. - * cipher/ecc.c (fill_in_curve): Allow passing NULL for R_NBITS. - (mpi_from_keyparam, point_from_keyparam): New. - (_gcry_mpi_ec_new): New. - - * tests/t-mpi-point.c (test-curve): New. - (ec_p_new): New. Use it instead of the removed gcry_mpi_ec_p_new. - (get_and_cmp_mpi, get_and_cmp_point): New. - (context_param): New test. - (basic_ec_math_simplified): New test. - (main): Call new tests. - - * src/context.c (_gcry_ctx_get_pointer): Check for a NULL CTX. - -2013-03-13 Werner Koch - - Add GCRYMPI_FLAG_CONST and make use constants. - * src/gcrypt.h.in (GCRYMPI_FLAG_CONST): New. - * src/mpi.h (mpi_is_const, mpi_const): New. - (enum gcry_mpi_constants, MPI_NUMBER_OF_CONSTANTS): New. - * mpi/mpiutil.c (_gcry_mpi_init): New. - (constants): New. - (_gcry_mpi_free): Do not release a constant flagged MPI. - (gcry_mpi_copy): Clear the const and immutable flags. - (gcry_mpi_set_flag, gcry_mpi_clear_flag, gcry_mpi_get_flag): Support - GCRYMPI_FLAG_CONST. - (_gcry_mpi_const): New. - * src/global.c (global_init): Call _gcry_mpi_init. - * mpi/ec.c (mpi_ec_ctx_s): Remove fields one, two, three, four, and - eight. Change all users to call mpi_const() instead. - - * src/mpiutils.c (gcry_mpi_set_opaque): Check the immutable flag. - - Add GCRYMPI_FLAG_IMMUTABLE to help debugging. - * src/gcrypt.h.in (GCRYMPI_FLAG_IMMUTABLE): New. - * src/mpi.h (mpi_is_immutable): New macro. - * mpi/mpiutil.c (gcry_mpi_set_flag, gcry_mpi_clear_flag) - (gcry_mpi_get_flag): Implement new flag - (_gcry_mpi_immutable_failed): New. - - * mpi/mpiutil.c (_gcry_mpi_clear, _gcry_mpi_free, gcry_mpi_snatch) - (gcry_mpi_set, gcry_mpi_randomize): Act upon the immutable flag. - * mpi/mpi-bit.c (gcry_mpi_set_bit, gcry_mpi_set_highbit) - (gcry_mpi_clear_highbit, gcry_mpi_clear_bit) - (_gcry_mpi_rshift_limbs, gcry_mpi_lshift): Ditto. - * mpi/mpicoder.c (_gcry_mpi_set_buffer): Ditto. - -2013-03-08 Werner Koch - - mpi: Add an API for EC math. - * src/context.c, src/context.h: New. - * src/Makefile.am (libgcrypt_la_SOURCES): Add new files. - * src/gcrypt.h.in (struct gcry_context, gcry_ctx_t): New types. - (gcry_ctx_release): New prototype. - (gcry_mpi_ec_p_new, gcry_mpi_ec_get_affine, gcry_mpi_ec_dup) - (gcry_mpi_ec_add, gcry_mpi_ec_mul): New prototypes. - * mpi/ec.c: Include errno.h and context.h. - (_gcry_mpi_ec_init): Rename to .. - (ec_p_init): this, make static, remove allocation and add arg CTX. - (_gcry_mpi_ec_p_internal_new): New; to replace _gcry_mpi_ec_init. - Change all callers to use this func. - (_gcry_mpi_ec_free): Factor code out to .. - (ec_deinit): New func. - (gcry_mpi_ec_p_new): New. - * src/visibility.c: Include context.h and mpi.h. - (gcry_mpi_ec_p_new, gcry_mpi_ec_get_affine, gcry_mpi_ec_dup) - (gcry_mpi_ec_add, gcry_mpi_ec_mul) - (gcry_ctx_release): New wrapper functions. - * src/visibility.h: Mark new wrapper functions visible. - * src/libgcrypt.def, src/libgcrypt.vers: Add new symbols. - * tests/t-mpi-point.c (print_mpi, hex2mpi, cmp_mpihex): New. - (context_alloc): New. - (make_point, basic_ec_math): New. - - mpi: Add an API for EC point operations. - * mpi/ec.c (gcry_mpi_point_new, gcry_mpi_point_release): New. - (gcry_mpi_point_get, gcry_mpi_point_snatch_get): New. - (gcry_mpi_point_set, gcry_mpi_point_snatch_set): New. - * src/visibility.h, src/visibility.c: Add corresponding macros and - wrappers. - * src/gcrypt.h.in (struct gcry_mpi_point, gcry_mpi_point_t): New. - (gcry_mpi_point_new, gcry_mpi_point_release, gcry_mpi_point_get) - (gcry_mpi_point_snatch_get, gcry_mpi_point_set) - (gcry_mpi_point_snatch_set): New prototypes. - (mpi_point_new, mpi_point_release, mpi_point_get, mpi_point_snatch_get) - (mpi_point_set, mpi_point_snatch_set): New macros. - * src/libgcrypt.vers (gcry_mpi_point_new, gcry_mpi_point_release) - (gcry_mpi_point_get, gcry_mpi_point_snatch_get, gcry_mpi_point_set) - (gcry_mpi_point_snatch_set): New symbols. - * src/libgcrypt.def: Ditto. - * tests/t-mpi-point.c: New. - * tests/Makefile.am (TESTS): Add t-mpi-point - -2013-03-07 Werner Koch - - mpi: Add mpi_snatch and change an internal typedef. - * src/mpi.h (struct mpi_point_s): Rename to struct gcry_mpi_point. - (mpi_point_struct): New typedef. - (mpi_point_t): Change typedef to a pointer. Replace all occurrences - to use mpi_point_struct. - * mpi/ec.c (_gcry_mpi_ec_point_init): Rename to .. - (_gcry_mpi_point_init): this. Change all callers. - (_gcry_mpi_ec_point_free): Rename to .. - (_gcry_mpi_point_free_parts): this. Change all callers. - - * mpi/mpiutil.c (gcry_mpi_snatch): New function. - * src/gcrypt.h.in (gcry_mpi_snatch, mpi_snatch): Add protoype and - macro. - * src/visibility.c (gcry_mpi_snatch): Add wrapper. - * src/visibility.h (gcry_mpi_snatch): Add macro magic. - * src/libgcrypt.def, src/libgcrypt.vers: Add new function. - - Pretty print the configure feedback. - * acinclude.m4 (GNUPG_MSG_PRINT): Remove. - (GCRY_MSG_SHOW, GCRY_MSG_WRAP): New. - * configure.ac: Use new macros for the feedback. - -2013-02-20 Werner Koch - - Fix building of hwf-x86.c. - * src/Makefile.am (AM_CFLAGS): Set to GPG_ERROR_CFLAGS - (AM_CCASFLAGS): Set NOEXECSTACK_FLAGS. - - Remove build hacks for FreeBSD. - * configure.ac [freebsd]: Do not add /usr/local to CPPFLAGS and - LDFLAGS. - -2013-02-19 Jussi Kivilinna - - Rinjdael: Fix use of SSE2 outside USE_AESNI/ctx->use_aesni. - * cipher/rijndael.c (_gcry_aes_cbc_enc): Check if AES-NI is enabled before - calling aesni_prepare() and aesni_cleanup(). - - Add AES-NI/AVX accelerated Camellia implementation. - * configure.ac: Add option --disable-avx-support. - (HAVE_GCC_INLINE_ASM_AVX): New. - (ENABLE_AVX_SUPPORT): New. - (camellia) [ENABLE_AVX_SUPPORT, ENABLE_AESNI_SUPPORT]: Add - camellia_aesni_avx_x86-64.lo. - * cipher/Makefile.am (AM_CCASFLAGS): Add. - (EXTRA_libcipher_la_SOURCES): Add camellia_aesni_avx_x86-64.S - * cipher/camellia-glue.c [ENABLE_AESNI_SUPPORT, ENABLE_AVX_SUPPORT] - [__x86_64__] (USE_AESNI_AVX): Add macro. - (struct Camellia_context) [USE_AESNI_AVX]: Add use_aesni_avx. - [USE_AESNI_AVX] (_gcry_camellia_aesni_avx_ctr_enc) - (_gcry_camellia_aesni_avx_cbc_dec): New prototypes to assembly - functions. - (camellia_setkey) [USE_AESNI_AVX]: Enable AES-NI/AVX if hardware - support both. - (_gcry_camellia_ctr_enc) [USE_AESNI_AVX]: Add AES-NI/AVX code. - (_gcry_camellia_cbc_dec) [USE_AESNI_AVX]: Add AES-NI/AVX code. - * cipher/camellia_aesni_avx_x86-64.S: New. - * src/g10lib.h (HWF_INTEL_AVX): New. - * src/global.c (hwflist): Add HWF_INTEL_AVX. - * src/hwf-x86.c (detect_x86_gnuc) [ENABLE_AVX_SUPPORT]: Add detection - for AVX. - - camellia.c: Prepare for AES-NI/AVX implementation. - * cipher/camellia-glue.c (CAMELLIA_encrypt_stack_burn_size) - (CAMELLIA_decrypt_stack_burn_size): Increase stack burn size. - * cipher/camellia.c (CAMELLIA_ROUNDSM): Move key-material mixing in - the front. - (camellia_setup128, camellia_setup256): Remove now unneeded - key-material mangling. - (camellia_encrypt128, camellia_decrypt128, amellia_encrypt256) - (camellia_decrypt256): Copy block to stack, so that compiler can - optimize it for register usage. - - Camellia, prepare glue code for AES-NI/AVX implementation. - * cipher/camellia-glue.c (ATTR_ALIGNED_16): Add macro. - (CAMELLIA_encrypt_stack_burn_size): Add macro. - (camellia_encrypt): Use macro above for stack burn size. - (CAMELLIA_decrypt_stack_burn_size): Add macro. - (camellia_decrypt): Use macro above for stack burn size. - (_gcry_camellia_ctr_enc): New function. - (_gcry_camellia_cbc_dec): New function. - (selftest_ctr_128): New function. - (selftest): Call function above. - * cipher/cipher.c (gcry_cipher_open) [USE_CAMELLIA]: Register bulk - functions for CBC-decryption and CTR-mode. - * src/cipher.h (_gcry_camellia_ctr_enc): New prototype. - (_gcry_camellia_cbc_dec): New prototype. - -2012-12-21 Werner Koch - - Prepare for hardware feature detection on other platforms. - * configure.ac (GCRYPT_HWF_MODULES): New. - (HAVE_CPU_ARCH_X86, HAVE_CPU_ARCH_ALPHA, HAVE_CPU_ARCH_SPARC) - (HAVE_CPU_ARCH_MIPS, HAVE_CPU_ARCH_M68K, HAVE_CPU_ARCH_PPC) - (HAVE_CPU_ARCH_ARM): New AC_DEFINEs. - * mpi/config.links (mpi_cpu_arch): New. - * src/global.c (print_config): Print new tag "cpu-arch". - * src/Makefile.am (libgcrypt_la_SOURCES): Add hwf-common.h - (EXTRA_libgcrypt_la_SOURCES): New. - (gcrypt_hwf_modules): New. - (libgcrypt_la_DEPENDENCIES, libgcrypt_la_LIBADD): Add that one. - * src/hwfeatures.c: Factor most code out to ... - * src/hwf-x86.c: New file. - (detect_x86_gnuc): Return the feature vector. - (_gcry_hwf_detect_x86): New. - * src/hwf-common.h: New. - * src/hwfeatures.c (_gcry_detect_hw_features): Dispatch using - HAVE_CPU_ARCH_ macros. - -2012-12-21 Jussi Kivilinna - - Clean up i386/x86-64 cpuid usage in hwfeatures.c. - * src/hwfeatures.c [__i386__ && __GNUC__] (detect_ia32_gnuc): Remove. - [__x86_64__ && __GNUC__] (detect_x86_64_gnuc): Remove. - [__i386__ && __GNUC__] (is_cpuid_available, get_cpuid) - (HAS_X86_CPUID): New. - [__x86_64__ && __GNUC__] (is_cpuid_available, get_cpuid) - (HAS_X86_CPUID): New. - [HAS_X86_CPUID] (detect_x86_gnuc): New. - (_gcry_detect_hw_features) [__i386__ && GNUC]: Remove detect_ia32_gnuc - call. - (_gcry_detect_hw_features) [__x86_64__ && GNUC]: Remove - detect_x86_64_gnuc call. - (_gcry_detect_hw_features) [HAS_X86_CPUID]: Add detect_x86_gnuc call. - -2012-12-18 Dmitry Kasatkin - - Add support for using DRNG random number generator. - * configure.ac: Add option --disable-drng-support. - (ENABLE_DRNG_SUPPORT): New. - * random/rndhw.c (USE_DRNG): New. - (rdrand_long, rdrand_nlong, poll_drng): New. - (_gcry_rndhw_poll_fast, _gcry_rndhw_poll_slow): Call poll function. - * src/g10lib.h (HWF_INTEL_RDRAND): New. - * src/global.c (hwflist): Add "intel-rdrand". - * src/hwfeatures.c (detect_x86_64_gnuc) [ENABLE_DRNG_SUPPORT]: Detect - RDRAND. - (detect_ia32_gnuc) [ENABLE_DRNG_SUPPORT]: Detect RDRAND. - -2012-12-03 Werner Koch - - random: Add a RNG selection interface and system RNG wrapper. - * random/random-system.c: New. - * random/Makefile.am (librandom_la_SOURCES): Add new module. - * random/random.c (struct rng_types): New. - (_gcry_set_preferred_rng_type, _gcry_get_rng_type): New. - (_gcry_random_initialize, gcry_random_add_bytes, do_randomize) - (_gcry_set_random_seed_file, _gcry_update_random_seed_file) - (_gcry_fast_random_poll): Dispatch to the actual RNG. - * src/gcrypt.h.in (GCRYCTL_SET_PREFERRED_RNG_TYPE): New. - GCRYCTL_GET_CURRENT_RNG_TYPE): New. - (gcry_rng_types): New. - * src/global.c (print_config): Print the TNG type. - (global_init, _gcry_vcontrol): Implement the new control codes. - * doc/gcrypt.texi (Controlling the library): Document the new control - codes. - - * tests/benchmark.c (main): Add options to test the RNG types. - * tests/random.c (main): Add new options. - (print_hex): Print to stderr. - (progress_cb, rng_type): New. - (check_rng_type_switching, check_early_rng_type_switching): New. - (run_all_rng_tests): New. - - tests: Allow use of random.c under Windows. - * tests/Makefile.am (TESTS): Always include random.c - * tests/random.c [!W32]: Include sys/wait.h. - (inf): New. - (check_forking, check_nonce_forking): Print a notice what will be done. - (main) [W32]: Do not call signal. - - Make random-fips.c work multi-threaded. - * random/random-fips.c (basic_initialization): Fix reversed logic. - - Move nonce creation from csprng backend to random main module. - * random/random-csprng.c (_gcry_rngcsprng_create_nonce): Remove. - (nonce_buffer_lock): Remove. - (initialize_basics): Remove init of nonce_buffer_lock. - * random/random.c: Add a few header files. - (nonce_buffer_lock): New. - (_gcry_random_initialize): Init nonce_buffer_lock. - (gcry_create_nonce): Add code from _gcry_rngcsprng_create_nonce. - - * random/random-daemon.c (_gcry_daemon_create_nonce): Remove. - -2012-12-03 Jussi Kivilinna - - Fix building with CC="gcc -std=c90". - * configure.ac: Add check for missing 'asm' keyword in C90 mode and - replacement with '__asm__'. - -2012-12-03 Werner Koch - - Try to use inttypes.h if stdint.h is not available. - * cipher/bufhelp.h [HAVE_INTTYPES_H]: Include inttypes.h - -2012-12-03 Jussi Kivilinna - - Optimize buffer xoring. - * cipher/Makefile.am (libcipher_la_SOURCES): Add 'bufhelp.h'. - * cipher/bufhelp.h: New. - * cipher/cipher-aeswrap.c (_gcry_cipher_aeswrap_encrypt) - (_gcry_cipher_aeswrap_decrypt): Use 'buf_xor' for buffer xoring. - * cipher/cipher-cbc.c (_gcry_cipher_cbc_encrypt) - (_gcry_cipher_cbc_decrypt): Use 'buf_xor' for buffer xoring and remove - resulting unused variables. - * cipher/cipher-cfb.c (_gcry_cipher_cfb_encrypt) Use 'buf_xor_2dst' - for buffer xoring and remove resulting unused variables. - (_gcry_cipher_cfb_decrypt): Use 'buf_xor_n_copy' for buffer xoring and - remove resulting unused variables. - * cipher/cipher-ctr.c (_gcry_cipher_ctr_encrypt): Use 'buf_xor' for - buffer xoring and remove resulting unused variables. - * cipher/cipher-ofb.c (_gcry_cipher_ofb_encrypt) - (_gcry_cipher_ofb_decrypt): Use 'buf_xor' for buffer xoring and remove - resulting used variables. - * cipher/rijndael.c (_gry_aes_cfb_enc): Use 'buf_xor_2dst' for buffer - xoring and remove resulting unused variables. - (_gry_aes_cfb_dev): Use 'buf_xor_n_copy' for buffer xoring and remove - resulting unused variables. - (_gry_aes_cbc_enc, _gry_aes_ctr_enc, _gry_aes_cbc_dec): Use 'buf_xor' - for buffer xoring and remove resulting unused variables. - -2012-11-29 Jussi Kivilinna - - Optimize AES-NI CTR mode. - * cipher/rijndael.c [USE_AESNI] (do_aesni_ctr, do_aesni_ctr_4): Make - handling of 64-bit overflow and carry conditional. Avoid generic to - vector register passing of value '1'. Generate and use '-1' instead. - -2012-11-28 Werner Koch - - Make a cpp conditional in rijndael.c better readable. - * cipher/rijndael.c (USE_AESNI): Modify cpp conditionals for better - readability. - -2012-11-28 Jussi Kivilinna - - Fix building with Clang on x86-64 and i386. - * cipher/rijndael.c [USE_AESNI] (do_aesni_enc_aligned) - (do_aesni_dec_vec4, do_aesni_cfb, do_aesni_ctr, do_aesni_ctr_4): Add - explicit suffix to 'cmp' instructions. - -2012-11-26 Jussi Kivilinna - - Optimize wipememory2 for i386 and x86-64. - * src/g10lib.h (wipememory2): Add call to fast_wipememory2. - (fast_wipememory2): New macros for i386 and x86-64 architectures. - Empty macro provided for other architectures. - - Fix missing 64bit carry handling in AES-NI CTR mode. - * cipher/rijndael.c [USE_AESNI] (do_aesni_ctr, do_aesni_ctr_4): Add - carry handling to 64-bit addition. - (selftest_ctr_128): New function for testing IV handling in bulk CTR - function. - (selftest): Add call to selftest_ctr_128. - - Add parallelized AES-NI CBC decryption. - * cipher/rijndael.c [USE_AESNI] (aesni_cleanup_5): New macro. - [USE_AESNI] (do_aesni_dec_vec4): New function. - (_gcry_aes_cbc_dec) [USE_AESNI]: Add parallelized CBC loop. - (_gcry_aes_cbc_dec) [USE_AESNI]: Change IV storage register from xmm3 - to xmm5. - - Clear xmm5 after use in AES-NI CTR mode. - * cipher/rijndael.c [USE_AESNI]: Rename aesni_cleanup_2_4 to - aesni_cleanup_2_5. - [USE_AESNI] (aesni_cleanup_2_5): Clear xmm5 register. - (_gcry_aes_ctr_enc, _gcry_aes_cbc_dec) [USE_AESNI]: Use - aesni_cleanup_2_5 instead of aesni_cleanup_2_4. - - Optimize AES-NI CBC encryption. - * cipher/rijndeal.c (_gcry_aes_cbc_enc) [USE_AESNI]: Add AES-NI - spesific loop and use SSE2 assembler for xoring and copying of - blocks. - - Improve parallelizability of CBC decryption for AES-NI. - * cipher/rijndael.c (_gcry_aes_cbc_dec) [USE_AESNI]: Add AES-NI - specific CBC mode loop with temporary block and IV stored in free SSE - registers. - - Extend test of chained modes for 128bit ciphers. - * tests/basic.c (check_one_cipher_core, check_one_cipher): Increase - input and output buffer sizes from 16 bytes to 1024+16=1040 bytes. - (check_one_cipher_core): Add asserts to verify sizes of temporary - buffers. - -2012-11-21 Werner Koch - - Fix for strict aliasing rules. - * cipher/rijndael.c (do_setkey, prepare_decryption): Use u32_a_t for - casting. - - Do not detect AES-NI support if disabled by configure. - * src/hwfeatures.c (detect_ia32_gnuc): Detect AESNI support only if - that support has been enabled. - -2012-11-21 Jussi Kivilinna - - Fix too large burn_stack in camellia-glue.c. - * cipher/camellia-glue.c (camellia_encrypt, camellia_decrypt): Do not - take full array size of KEY_TABLE_TYPE, but argument size instead. - - Add x86_64 support for AES-NI. - * cipher/rijndael.c [ENABLE_AESNI_SUPPORT]: Enable USE_AESNI on x86-64. - (do_setkey) [USE_AESNI_is_disabled_here]: Use %[key] and %[ksch] - directly as registers instead of using temporary register %%esi. - [USE_AESNI] (do_aesni_enc_aligned, do_aesni_dec_aligned, do_aesni_cfb, - do_aesni_ctr, do_aesni_ctr_4): Use %[key] directly as register instead - of using temporary register %%esi. - [USE_AESNI] (do_aesni_cfb, do_aesni_ctr, do_aesni_ctr_4): Change %[key] - from generic "g" type to register "r". - * src/hwfeatures.c (_gcry_detect_hw_features) [__x86_64__]: Do not - clear AES-NI feature flag. - - Fix cpuid vendor-id check for i386 and x86-64. - * src/hwfeatures.c (detect_x86_64_gnuc, detect_ia32_gnuc): Allow - Intel features be detect from CPU by other vendors too. +2001-12-18 Werner Koch + + Released 1.1.5. + + * Makefile.am (dist-hook): Only look in mpi and scripts for + distfiles; this way we don't include those of a stale "make dist" + directory. + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Make it work with the new + automake. + * configure.ac: Don't chmod db2any. + +2001-08-06 Werner Koch + + * configure.ac: Removed cross compiling hacks. + +2001-08-03 Werner Koch + + Released 1.1.4. + + * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Define GNU Source. + + Migrated to autoconf 2.52. + * acinclude.m4: Removed GNUPG_LINK_FILES and converted. + * acconfig.h: Removed + * configure.in: Replaced by... + * configure.ac: and modified for use with autoconf 2.52. Replaced + GNUPG_LINK_FILES with AC_CONFIG_LINKS and moved some informational + messages to the end. Removed --enable-m-debug + + * tests/: New. + * Makefile.am: Included tests directory + + * configure.in (DYNLINK_MOD_CFLAGS): Use -shared with dec-osf. + Reported by Chris Adams. Merged some cases. + +2001-05-31 Werner Koch + + Released 1.1.3. + + * configure.in: Use _gcry_ prefix when creating the cipher constructor. + + * acconfig.h (_GCRYPT_IN_LIBGCRYPT): Define it here. + +2001-05-28 Werner Koch + + * acinclude.m4 (GPH_PROG_DOCBOOK): Removed. + (GPH_PROG_DB2ANY): New. Taken from GPH. + * configure.in: Use it here. + +2000-12-19 Werner Koch + + Major change: + Removed all GnuPG stuff and renamed this piece of software + to gcrypt. The directory gcrypt has been renamed to src. + +2000-11-14 Werner Koch + + Version 1.1.2 released. + +2000-11-13 Werner Koch + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): VPATH build fix. + +2000-10-10 Werner Koch + + * Makefile.am (dist-hook): Create the version file. + * configure.in: Set the libtool version here, removed the need + for the version file. + +Mon Sep 18 16:35:45 CEST 2000 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_MLOCK): Removed that silly mkdir(). + + * configure.in: Changes to allow for Solaris random device. + By Nils Ellmenreich. + (--with-egd-socket): New. + + * configure.in (GNUPG_HOMEDIR): New. + + * configure.in: Check for fstat64 and fopen64 + + * acinclude.m4 (GNUPG_CHECK_FAQPROG): New. + * configure.in: Test for this. + + * configure.in (DYNLINK_MOD_CFLAGS): Fix by David Champion. + +Tue Aug 22 14:31:15 CEST 2000 Werner Koch + + Version 1.1.1 + +Fri Aug 18 14:27:14 CEST 2000 Werner Koch + + * agent/: New. + * Makefile.am, configure.in: Support for the new directory. + +Mon Jul 17 16:35:47 CEST 2000 Werner Koch + + * configure.in (mingw32): Changes to allow for mingw32msvc + +Fri Jul 14 19:38:23 CEST 2000 Werner Koch + + The big merge between this one and the stable branch 1.0. Still need + to merge TNANKS, AUTHORS and such. It probaly does not compile yet. + + * acinclude.m4 (GNUPG_CHECK_MLOCK): Fixed syntax error in C code. + + * configure.in: Add check for termio.h, wait unctiosn and sigaction. + + * acinclude.m4, configure.in (GNUPG_CHECK_GNUMAKE): New. + + * acinclude.m4 (MKDIR_TAKES_ONE_ARG): Check some headers. By Gaël Quéri. + + * configure.in (AM_INIT_AUTOMAKE): Use this now. By Gaël. + + * acinclude.m4 (GNUPG_CHECK_EXPORTDYNAMIC): Replacement for + GNUPG_CHECK_RDYNAMIC which should handle gcc with non GNU ld nicer. + Contributed by Dave Dykstra. + * configure.in (GNYPG_CHECK_RDYNAMIC): Replaced by the new check. + + * configure.in: Add a test for unisgned long long. + + * configure.in (DYNLINK_MOD_CFLAGS): Set different for NetBSD. + + * configure.in: Add check for clock_gettime + + * configure.in (ALL_LINGUAS): Add nl. + * configure.in (ALL_LINGUAS): Add Esperanto. + * configure.in (ALL_LINGUAS): Add sv and ja. + + * configure.in: Use /usr/local for CFLAGS and LDFLAGS when + target is freebsd. By Rémi. + + * configure.in: Do not set development version when the version has + a dash in it. Suggested by Dave Dykstra. + + * configure.in: Removed substitution for doc/gph/Makefile. + Do all the gcc warning only in maintainer mode. + + * configure.in (dlopen): Use CHECK_FUNC for a test of dlopen in libc. + Suggested by Alexandre Oliva. + (-Wall): Moved the settting of gcc warning options near to the end + so that tests don't get confused. Suggested by Paul D. Smith. + + * acinclude.m4 (GNUPG_SYS_NM_PARSE): Added BSDI support. + (GNUPG_CHECK_RDYNAMIC): Ditto. + + * acinclude.m4 (GNUPG_CHECK_MLOCK): Changed the way to test for + librt. Test suggested by Jeff Long. + + * acinclude.m4 (GNUPG_CHECK_MLOCK): Do librt check only when + we can't link a test program. This way GNU systems don't need + to link against linrt. + (GNUPG_CHECK_IPC): Fixed use of TRY_COMPILE macro. From Tim Mooney. + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add support for + DJGPP. + (GNUPG_CHECK_MLOCK): Check whether mlock sits in librt. + + * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Add NetBSD. By Thomas Klausner. + + * acconfig.h (HAVE_MLOCK): Added + +Mon Mar 13 19:22:46 CET 2000 Werner Koch + + * configure.in: Now uses the Docbook M4s from GPH. + +Mon Jan 31 17:46:35 CET 2000 Werner Koch + + * Makefile.am: Re-added tools. By Rémi. + +Mon Jan 31 16:37:34 CET 2000 Werner Koch + + * configure.in: Create a symlink for types.h in gcrypt/. + +Thu Jan 27 18:00:44 CET 2000 Werner Koch + + * configure.in (g10defs.h): Replaced by gnupg-defs.h + +Mon Jan 24 13:04:28 CET 2000 Werner Koch + + * jnlib/ : New. + + * configure.in: Do set development version when the version has + a dash in it. Suggested by Dave Dykstra. + +Thu Dec 9 17:22:27 CET 1999 Werner Koch + + * acinclude.m4 (GNUPG_FIX_HDR_VERSION): New. + * configure.in: Check and fix the version number of gcrypt/gcrypt.h + so that it is always the save as VERSION. + +Thu Oct 28 16:17:46 CEST 1999 Werner Koch + + * Started with development series 1.1 on 1999-10-26 + +Tue Oct 26 14:10:21 CEST 1999 Werner Koch + + * README-alpha: New + + * configure.in: Fixed quoting in test for development version. + + * THANKS: Add entries for Michael, Brenno and J Horacio who did + very nice Howto documents - I apoligize for forgetting to mention them + earlier. + +Fri Sep 17 12:56:42 CEST 1999 Werner Koch + + + * configure.in: Add "-lcap" when capabilities are requested. + Add the conditional CROSS_COMPILING. + * Makefile.am: Don't use checks when CROSS_COMPILING. + + +Wed Sep 15 16:22:17 CEST 1999 Werner Koch + + + * configure.in (ALL_LINGUAS): Add pt_PT. + + * configure.in: Some tweaks for cross compiling under MingW32 + * acconfig.h (USE_STATIC_RNDW32): New. + +Tue Sep 7 17:08:10 CEST 1999 Werner Koch + + + * VERSION: Set to 1.0.0. + +Mon Sep 6 19:59:08 CEST 1999 Werner Koch + + + * configure.in: Create makefile in doc/gph + + * acinclude.m4 (GNUPG_FUNC_MKDIR_TAKES_ONE_ARG): New + * configure.in: use the above. + +Thu Sep 2 16:40:55 CEST 1999 Werner Koch + + + * VERSION: Set to 0.9.11. + +Tue Aug 31 17:20:44 CEST 1999 Werner Koch + + * configure.in: Minor changes to the OS/2 and Mingw32 system labels. + Add a printable name for Hurd. + +Mon Aug 30 20:38:33 CEST 1999 Werner Koch + + * configure.in: Some support for DJGPP (Mark Elbrecht) + +Wed Aug 4 10:34:46 CEST 1999 Werner Koch + + * VERSION: Set to 0.9.10. + +Mon Jul 26 09:34:46 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): remove init of ac_cv_... + + * Makefile.am (DISCLEANFILES): New + +Fri Jul 23 13:53:03 CEST 1999 Werner Koch + + * VERSION: Set to 0.9.9. + + * configure.in: Print a notice when rndunix is used. + +Thu Jul 15 10:15:35 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Fixed last modification. + +Wed Jul 7 13:08:40 CEST 1999 Werner Koch + + * Makefile.am: Support for libtool. + * configure.in: Ditto. + +Tue Jun 29 21:44:25 CEST 1999 Werner Koch + + * configure.in (use_local_zlib): The lost dollar is back. + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add EMX case. + * configure.in: Another variant of the MX vendor string + + * configure.in (--with-capabilities): Some test code (Remi). + +Sat Jun 26 12:15:59 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Support for HPUX and IRIX. + * configure.in (HAVE_DL_SHL_LOAD): New for HPUX (Dave Dykstra). + + * VERSION: Now 0.9.8 + +Wed Jun 16 20:16:21 CEST 1999 Werner Koch + + * configure.in: Add test for docbook-to-man + +Tue Jun 15 12:21:08 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_SYS_NM_PARSE): Support for {net,free}bsd, + +Thu Jun 10 14:18:23 CEST 1999 Werner Koch + + * configure.in (ZLIB,GDBM): Check both, header and lib. + +Sat Jun 5 15:30:33 CEST 1999 Werner Koch + + * pkclist.c (key_present_in_pk_list): New (Michael). + +Tue May 25 19:50:32 CEST 1999 Werner Koch + + * configure.in (IS_DEVELOPMENT_VERSION): Fixed detection. + +Sun May 23 14:20:22 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): assume yes when + cross-compiling. + +Mon May 17 21:54:43 CEST 1999 Werner Koch + + * configure.in (socket): Fix for Unisys by Katsuhiro Kondou. + +Sat May 8 19:28:08 CEST 1999 Werner Koch + + * NEWS: Add a marker line which I forgot to do for 0.9.6. + +Thu May 6 14:18:17 CEST 1999 Werner Koch + + * README: Minor updates + + * VERSION: Now 0.9.6 + +Thu Apr 8 09:35:53 CEST 1999 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Fix for + amiga-openbsd (Peter Reich) + (GNUPG_PROG_NM): Ditto + +Wed Apr 7 20:51:39 CEST 1999 Werner Koch + + * Makefile.am (g10defs.h): Removed. + * configure.in (AC_OUTPUT_COMMANDS): Create g10defs.h + +Sat Mar 20 12:55:33 CET 1999 Werner Koch + + * VERSION: Now 0.9.5 + +Sun Mar 14 19:34:36 CET 1999 Werner Koch + + * acinclude.m4 (AM_SYS_SYMBOL_UNDERSCORE): Removed because it is + now in the latest libtool. + +Thu Mar 11 16:39:46 CET 1999 Werner Koch + + * configure.in: Removed the need for libtool + +Mon Mar 8 20:47:17 CET 1999 Werner Koch + + * configure.in (DLSYM_NEEDS_UNDERSCORE): Replaced. + * acinclude.in (AM_SYS_SYMBOL_UNDERSCORE): New. + + * VERSION: Now 0.9.4 + +Sun Feb 28 19:11:00 CET 1999 Werner Koch + + * configure.in (dld): Test disabled. + +Fri Feb 26 17:55:41 CET 1999 Werner Koch + + * encode.c (encode_simple): temporary fix. + +Wed Feb 24 11:07:27 CET 1999 Werner Koch + + * configure.in: New option --enable-static-rnd. + +Mon Feb 22 20:04:00 CET 1999 Werner Koch + + * BUGS: Now we assign bug numbers. + * OBUGS: New to keep rack o fixed bugs (CVS only) + +Fri Feb 19 18:01:54 CET 1999 Werner Koch + + * VERSION: Released 0.9.3 + +Fri Feb 19 15:49:15 CET 1999 Werner Koch + + * acinclude.m4: Removed gettext macros. + +Tue Feb 16 14:10:02 CET 1999 Werner Koch + + * configure.in (socket): Check for -lsocket and -lnsl. + (osf4): Disable all warnings for DEC's cc. + (-Wall): Add more warning options for gcc + +Sat Feb 13 12:04:43 CET 1999 Werner Koch + + * configure.in: Changed detection of compiler flags. + * intl/ : Removed directory + +Wed Feb 10 17:15:39 CET 1999 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Fix for freebsd 2.2 + + * configure.in: a lot of changes to allow selection of modules. + Add support for OS/2. + + * acinclude.m4: add some more caching + + * README: Spelling and grammar corrections (John A. Martin) + * INSTALL: Ditto. + +Wed Jan 20 21:40:21 CET 1999 Werner Koch + + * configure.in: --enable-m-guard is now default + +Wed Jan 13 12:49:36 CET 1999 Werner Koch + + * INSTALL: Applied new information how to build rpms by Fabio Coatti + * Makefile.in (gnupg.spec): Changed the names. + +Tue Jan 12 11:17:18 CET 1999 Werner Koch + + * config.links (m68k-atari-mint): New + +Tue Jan 12 09:17:19 CET 1999 Gaël Quéri + + * all: Fixed typos all over the place + +Sat Jan 9 16:02:23 CET 1999 Werner Koch + + * configure.in: Add a way to statically link rndunix + +Sun Jan 3 15:28:44 CET 1999 Werner Koch + + * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): New. + * configure.in (DYNLOAD_CFLAGS): Use result from CHECK_RDYNAMIC + +Wed Dec 23 13:18:14 CET 1998 Werner Koch + + * README: Replaced the command overview with a short intro. + +Sat Dec 12 18:40:32 CET 1998 Werner Koch + + * configure.in: Add check for dlopen in libc (Greg Troxel) + and a new define + * acconfig.h (DLSYM_NEEDS_UNDERSCORE): New. + +Thu Dec 10 20:15:36 CET 1998 Werner Koch + + * acinclude.m (GNUPG_CHECK_PIC): New + * configure.in, acinclude.m4: Renamed all WK_ to GNUPG_ + +Tue Dec 8 15:09:29 CET 1998 Werner Koch + + * VERSION: Set to 0.4.5 + +Wed Nov 25 12:38:29 1998 Werner Koch (wk@isil.d.shuttle.de) + + * configure.in (USE_RNDLINUX): New. + +Fri Nov 20 19:34:57 1998 Werner Koch (wk@isil.d.shuttle.de) + + * VERSION: Released 0.4.4 + + * configure.in (try_asm_modules): For option --disable-asm + +Tue Nov 10 19:32:40 1998 Werner Koch (wk@isil.d.shuttle.de) + + * configure.in (MPI_SFLAGS): New. + +Tue Nov 10 13:44:53 1998 Werner Koch (wk@isil.d.shuttle.de) + + * ABOUT-NLS: New + * configure.in (AC_REVISION): New. + +Sun Nov 8 18:20:35 1998 Werner Koch (wk@isil.d.shuttle.de) + + * VERSION: Set to 0.4.3 + +Sun Oct 25 19:49:37 1998 Werner Koch (wk@isil.d.shuttle.de) + + * Makefile.am (g10defs.h): New macro GNUPG_DATADIR. + +Wed Oct 21 17:24:24 1998 Werner Koch (wk@isil.d.shuttle.de) + + * configure.in: Removed gettext kludge + * acinclude.m4: Add patched AM_WITH_NKS macro + +Tue Oct 20 19:03:36 1998 Werner Koch (wk@isil.d.shuttle.de) + + * configure.in: Kludge to make AM_GNU_GETTEXT work, + changed some macors to more modern versions. Also + changeg the all makefiles to remove duplicate ../intl. + * acinclude.m4: Removed the gettext stuff, as this + already comes with automake now. + +Wed Oct 14 12:11:34 1998 Werner Koch (wk@isil.d.shuttle.de) + + * configure.in (NAME_OF_DEV_RANDOM): New. + (DYNLINK_MOD_CFLAGS): New. + +Thu Oct 8 10:55:15 1998 Werner Koch (wk@isil.d.shuttle.de) + + * Makefile.am (g10defs.h): creates include file + * acconfig.h: now includes g10defs.h + * configure.in: Removed G10_LOCALEDIR and GNUPG_LIB + +Thu Sep 17 18:49:40 1998 Werner Koch (wk@(none)) + + * Makefile.am (dist-hook): Now creates RPM file. + * scripts/gnupg.spec: New template file for RPMs + +Thu Jul 30 19:17:07 1998 Werner Koch (wk@(none)) + + * acinclude.h (WK_CHECK_IPC): New + * configure.in : Add checks for SysV IPC - Fix hwdetect assembler clobbers. - * src/hwfeatures.c (detect_x86_64_gnuc): Add missing %ebx assembler - clobbers. - (detect_x86_64_gnuc, detect_ia32_gnuc) [ENABLE_PADLOCK_SUPPORT]: Add - missing %ecx assembler clobbers. +Thu Jun 25 11:18:49 1998 Werner Koch (wk@isil.d.shuttle.de) -2012-11-21 Werner Koch + * configure.in (--disable-dynload): New. - Use configure test for aligned attribute. - * configure.ac (HAVE_GCC_ATTRIBUTE_ALIGNED): New test and ac_define. - * cipher/cipher-internal.h, cipher/rijndael.c, random/rndhw.c: Use new - macro instead of a fixed test for __GNUC__. +Wed Jun 10 07:48:59 1998 Werner Koch,mobil,,, (wk@tobold) - Fix segv with AES-NI on some platforms. - * cipher/rijndael.c (RIJNDAEL_context): Align on 16 bytes. + * configure.in (GNUPG_LIBDIR): New. -2012-11-16 Werner Koch +Mon May 25 19:10:59 1998 Werner Koch (wk@isil.d.shuttle.de) - Improve parsing of the GIT revision number. - * configure.ac (mmm4_revision): Use git rev-parse. + * rand-unix.c (fast_random_poll): fixed syntax bug. -2012-11-08 Werner Koch +Mon May 11 10:21:31 1998 Werner Koch (wk@isil.d.shuttle.de) - Fix extern inline use for gcc > 4.3 in c99 mode. - * mpi/mpi-inline.h [!G10_MPI_INLINE_DECL]: Take care of changed extern - inline semantics in gcc. + * configure.in (PRINTABLE_OS_NAME): Linux is now GNU/Linux -2012-11-07 Werner Koch +Tue Apr 14 19:08:05 1998 Werner Koch (wk@isil.d.shuttle.de) - Fix memory leak in gcry_pk_testkey for ECC. - * cipher/ecc.c (check_secret_key): Restructure for easier allocation - tracking. Fix memory leak. - -2012-11-05 Werner Koch + * [all files]: Applied Matthew Skala's typo and grammar fixes. - Prepare for a backported interface in 1.5.1. - * configure.ac: Bump LT version at C20/A0/R0 to adjust for a planned - API update in 1.5.1. +Wed Mar 4 10:32:40 1998 Werner Koch (wk@isil.d.shuttle.de) - Adjust for stricter autoconf requirements. - * configure.ac: Fix usage of AC_LANG_PROGRAM. + * configure.in (getrusage,gettimeofday): New tests. - Update build helper scripts. - * config.guess, config.sub: Update to version 2012-07-31. - * ltmain.sh: Update to version 2.4.2. - * install-sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4 - * m4/lt~obsolete.m4: Update to autoconf 2.69 versions. +Fri Feb 27 13:14:17 1998 Werner Koch (wk@isil.d.shuttle.de) - Do not distribute a copy of gitlog-to-changelog. - * Makefile.am (GITLOG_TO_CHANGELOG): New. - (gen-ChangeLog): Require an installed gitlog-to-changelog. - * scripts/gitlog-to-changelog: Remove. + * configure.in (--disable-m-guard): New. - * README.SVN: Remove. - * REMOVE.GIT: New. +Thu Feb 26 17:09:27 1998 Werner Koch (wk@isil.d.shuttle.de) - Allow building with w64-mingw32. - * autogen.sh <--build-w32>: Support the w64-mingw32 toolchain. Also - prepare for 64 bit building. - : Remove option -c from chmod. + * configure.in, acinclude.m4, intl/, po/: New macros taken + from GNOME, switched to automake 1.2f - Switch to the new automagic beta numbering scheme. - * configure.ac: Add all the required m4 magic. +Thu Feb 26 09:05:46 1998 Werner Koch (wk@isil.d.shuttle.de) - Avoid dereferencing pointer right after the end. - * mpi/mpicoder.c (do_get_buffer): Check the length before derefing P. + * configure.in (doc/Makefile): New -2012-10-30 Werner Koch +Thu Feb 26 07:40:47 1998 Werner Koch (wk@isil.d.shuttle.de) - Make ancient test program useful again. - * tests/testapi.c (test_sexp): Adjust to current API. Print the - return code. Mark unused args. - (test_genkey): Mark unused args. - (main): Do not pass NULL to printf. + * configure.in: Changed gettext stuff - tests: Add ECC key generation tests. - * tests/keygen.c (check_generated_ecc_key): New. - (check_ecc_keys): New. - (main): Call simple ECC checks. +Wed Feb 25 11:44:10 1998 Werner Koch (wk@isil.d.shuttle.de) -2012-10-30 Milan Broz - - PBKDF2: Allow empty passphrase. - * cipher/kdf.c (gcry_kdf_derive): Allow empty passphrase for PBKDF2. - * tests/t-kdf.c (check_pbkdf2): Add test case for above. + * checks/*test : restructured the directory. -2012-08-16 Xi Wang +Tue Feb 24 15:59:12 1998 Werner Koch (wk@isil.d.shuttle.de) - Replace deliberate division by zero with _gcry_divide_by_zero. - * mpi/mpi-pow.c: Replace 1 / msize. - * mpi/mpih-div.c: Replace 1 / dsize. - * src/misc.c: Add _gcry_divide_by_zero. + * configure.in: Changed the name of the package to GNUPG and + chnaged several other names too. -2012-06-21 Werner Koch +Wed Feb 18 17:36:45 1998 Werner Koch (wk@isil.d.shuttle.de) - Clear AESNI feature flag for x86_64. - * src/hwfeatures.c (_gcry_detect_hw_features) [__x86_64__]: Clear - AESNI feature flag. + * Makefile.am (checks): New. - Beautify last change. - * cipher/rijndael.c: Replace C99 feature from last patch. Keep cpp - lines short. - * random/rndhw.c: Keep cpp lines short. - * src/hwfeatures.c (_gcry_detect_hw_features): Make cpp def chain - better readable. +Sat Feb 14 15:37:55 1998 Werner Koch (wk@isil.d.shuttle.de) -2012-06-21 Rafaël Carré + * configure.in (mpi_config_done): Removed asm links caching. - Enable VIA Padlock on x86_64 platforms. - * cipher/rijndael.c: Duplicate x86 assembly and convert to x86_64. - * random/rndhw.c: Likewise. - * src/hwfeatures.c: Likewise. +Sat Feb 14 14:02:20 1998 Werner Koch (wk@isil.d.shuttle.de) -2012-05-14 Werner Koch + * configure.in (PRINTABLE_OS_NAME): New. + * acconfig.h: Likewise. - Add curve aliases from RFC-5656. - * cipher/ecc.c (curve_aliases): Add "nistp???" entries. +Fri Feb 13 19:43:41 1998 Werner Koch (wk@isil.d.shuttle.de) -2012-04-16 Werner Koch + * configure.in : Fixed zlib stuff + * Makefile.am: Likewise - State new contribution rules. - * doc/DCO: New. - * doc/HACKING: Document new rules. - -2012-04-04 Tomas Mraz - Add GCRYCTL_SET_ENFORCED_FIPS_FLAG command. - * doc/gcrypt.texi: Add documentation of the new command. - * src/fips.c (_gcry_enforced_fips_mode): Report the enforced fips mode - only when fips mode is enabled. - (_gcry_set_enforced_fips_mode): New function. - * src/g10lib.h: Add the _gcry_set_enforced_fips_mode prototype. - * src/gcrypt.h.in: Add the GCRYCTL_SET_ENFORCED_FIPS_FLAG. - * src/global.c (_gcry_vcontrol): Handle the new command. + Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, + 2007, 2008, 2009, 2011 Free Software Foundation, Inc. -2012-02-17 Ulrich Müller - - 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. - -2012-02-16 Werner Koch - - Fix missing prototype. - * src/g10lib.h (_gcry_secmem_module_init): Make it a real prototype. + 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. -2012-02-16 Ulrich Müller - - 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. - -2012-01-09 Werner Koch - - 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. - -2012-01-03 Marcus Brinkmann - - Fix pthread locking and remove defunctional support for static lock init. - * src/ath.c: Include assert.h. - (ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Dereference LOCK. - * src/g10lib.h (_gcry_secmem_module_init): New declaration. - * src/global.c (global_init): Call _gcry_secmem_module_init. - * src/secmem.c (_gcry_secmem_module_init): New function. - -2011-12-16 Werner Koch - - Add alignment tests for the cipher tests. - * tests/basic.c (check_one_cipher): Factor most code out to - check_one_cipher_core. Call that core function several times using - different alignment settings. - (check_one_cipher_core): New. Add extra args to allow alignment - testing. - -2011-12-07 Werner Koch - - tests/prime: Add option to create a well known private key. - * tests/prime.c (print_mpi, create_42prime): New. - (main): Add option --42. - -2011-12-01 Werner Koch - - Do not build the random-daemon by make distcheck. - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Disable building of the - random daemon - - Generate the ChangeLog from commit logs. - * scripts/gitlog-to-changelog: New script. Taken from gnulib. - * scripts/git-log-fix: New file. - * scripts/git-log-footer: New file. - * doc/HACKING: Describe the ChangeLog policy - * ChangeLog: New file. - * Makefile.am (EXTRA_DIST): Add new files. - (gen-ChangeLog): New. - (dist-hook): Run gen-ChangeLog. - - Rename all ChangeLog files to ChangeLog-2011. - -2011-12-01 Werner Koch - - NB: Changes done before December 1st, 2011 are described in - per directory files named ChangeLog-2011. See doc/HACKING for - details. - - ----- - Copyright (C) 2011 Free Software Foundation, Inc. - - Copying and distribution of this file and/or the original GIT - commit log messages, with or without modification, are - permitted provided the copyright notice and this notice are - 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. diff --git a/ChangeLog-2011 b/ChangeLog-2011 deleted file mode 100644 index 3c70a1f..0000000 --- a/ChangeLog-2011 +++ /dev/null @@ -1,1499 +0,0 @@ -2011-12-01 Werner Koch - - NB: ChangeLog files are no longer manually maintained. Starting - on December 1st, 2011 we put change information only in the GIT - commit log, and generate a top-level ChangeLog file from logs at - "make dist". See doc/HACKING for details. - -2011-11-28 Jim Meyering - - accept --with-libgpg-error-prefix as well as --with-gpg-error-prefix - * m4/gpg-error.m4: Update from git master. - -2011-09-16 Werner Koch - - * configure.ac (HAVE_PTHREAD): New. - -2011-09-15 Werner Koch - - * configure.ac: Bump LT version at C19/A0/R0 due to the ABI change. - - * configure.ac (CC_FOR_BUILD): New. - -2011-06-29 Werner Koch - - Release 1.5.0. - - * configure.ac: Keep LT version at C18/A7/R0 because it has - already been bumped up at 2010-07-09. - - * config.guess, config.sub: Update to 2011-06-03. - -2011-04-06 Werner Koch - - * configure.ac (emacs_local_vars_begin): Move more to the top to - avoid Emacs warnings. - -2011-03-30 Werner Koch - - * compat/compat.c (_gcry_compat_identification): Add version string. - -2011-03-08 Werner Koch - - * configure.ac (BUILD_REVISION): Use new git_brevis macro. - -2011-02-23 Werner Koch - - * configure.ac (LIBGCRYPT_CONFIG_HOST): New. - - * acinclude.m4 (AM_PATH_GPG_ERROR): Remove. - -2011-02-21 Werner Koch - - Release 1.5.0-beta1. - -2011-02-18 Werner Koch - - * configure.ac [GCC]: Remove the use of -fno-strict-aliasing. - -2011-02-11 Werner Koch - - * configure.ac: Add option --disbale-aesni-support. - (ENABLE_AESNI_SUPPORT): New macro. - -2011-02-04 Werner Koch - - * autogen.sh: Install the git pre-commit if not yet done. - -2010-12-23 Werner Koch - - * configure.ac (BUILD_REVISION): Use git_revision. - -2010-08-19 Werner Koch - - * configure.ac: Define GPG_ERR_ENABLE_ERRNO_MACROS. Remove - definition of _GNU_SOURCE. - (AC_GNU_SOURCE): New. - -2010-08-16 Werner Koch - - * configure.ac (INSERT_SYS_SELECT_H): New. - -2010-07-09 Werner Koch - - * configure.ac: Bump LT version to C18/A7/R0 to prepare a backport - of a new API to the 1.4 series. - -2010-04-19 Marcus Brinkmann - - * configure.ac: Check for -fno-strict-aliasing. - -2010-04-12 Brad Hards (wk) - - * configure.ac: Print more verbose info at the end. - -2010-03-24 Werner Koch - - * configure.ac (USE_RNDW32CE): New. - -2010-03-15 Werner Koch - - * configure.ac (emacs_local_vars_begin) - (emacs_local_vars_read_only, emacs_local_vars_end): New. - -2010-01-21 Werner Koch - - * compat/Makefile.am: New. - * compat/compat.c: New. - * compat/libcompat.h: New. - * compat/getpid.c, compat/clock.c: New. - - * configure.ac: Require libgpg-error 1.8. - (HAVE_W32CE_SYSTEM): New am_defines and am_conditionals. - (getpid): Check for replacement function. - (AC_CONFIG_LIBOBJ_DIR): New. - (AC_TYPE_PID_T): New. - (AM_INIT_AUTOMAKE): Use modern variant. - (AC_CONFIG_FILES): Add compat/Makfile. - * autogen.sh: Support W32CE. - * ltmain.sh: Update to 2.2.6b - (wrappers_required): Don't set for mingw32ce. - * Makefile.am (DIST_SUBDIRS, SUBDIRS): Add compat. - -2009-12-10 Werner Koch - - * configure.ac: Add option --disable-O-flag-munging. - -2009-12-08 Marcus Brinkmann - - Update to libtool 2.2.6a. - * configure.ac: Invoke AC_CONFIG_MACRO_DIR. - (AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ... - (LT_PREREQ, LT_INIT, LT_LANG): ... these. - * config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4: - Updated to libtool 2.2.6a. - * m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, - m4/lt~obsolete.m4: New files from libtool 2.2.6a. - -2009-08-05 Werner Koch - - * configure.ac: Test for sys/msg.h. - -2009-04-23 Werner Koch - - * README: Add a section on build problems. - -2009-01-22 Werner Koch - - * configure.ac: Bump LT version to C17/A6/R0 to mark the start of - a new development series. - -2009-01-22 Werner Koch - - Release 1.4.4. - - * configure.ac: Bump LT version to C16/A5/R2. - -2008-10-30 Werner Koch - - * configure.ac: Remove option --enable-gcc-warnings. Autodetect - useful gcc warnings in maintainer mode. - -2008-09-18 Werner Koch - - Release 1.4.3. - - * configure.ac: Bump LT version to C16/A5/R1. - -2008-09-15 Werner Koch - - * configure.ac: Cehck for syslog. - -2008-09-08 Werner Koch - - Release 1.4.2. - -2008-09-01 Werner Koch - - Release 1.4.2rc2. - - * configure.ac: Update svn_revision macro. - -2008-08-22 Werner Koch - - * configure.ac: Add option --enable-hmac-binary-check. - (DL_LIBS): Check whether -ldl is required. - -2008-08-19 Werner Koch - - Release 1.4.2rc1. - - * configure.ac: Bump LT version to C16/A5/R0. - -2008-08-18 Werner Koch - - * Makefile.am (EXTRA_DIST): Remove the unused BUGS file. - -2008-08-15 Werner Koch - - * configure.ac (AH_BOTTOM): Define GCRY_GPG_ERR_NOT_OPERATIONAL. - -2008-07-05 Werner Koch - - * random/: New. - * Makefile.am (DIST_SUBDIRS): Add random. - * configure.ac (AC_CONFIG_FILES): Add random/Makefile. - -2008-04-25 Werner Koch - - Release 1.4.1. - - * configure.ac: Bump LT version to C15/A4/R4. - -2008-04-22 Werner Koch - - * configure.ac: Set version to 1.4.1rc1. - -2008-04-18 Werner Koch - - * configure.ac (AH_BOTTOM): Add CAMELLIA_EXT_SYM_PREFIX. - (NAME_OF_DEV_RANDOM): Remove special cases for Solaris etc. This - matches the gnupg 1.4.9 version. - -2008-04-01 Werner Koch - - * configure.ac (AC_INIT): Fix quoting. - -2008-03-19 Werner Koch - - * configure.ac: Fix the tests for USE_ to either define or - undef the macros. Suggested by Dirk Stoecker. - -2008-03-18 Werner Koch - - * configure.ac: Test for uintptr_t. - -2008-02-18 Werner Koch - - * configure.ac (IS_DEVELOPMENT_VERSION): Set depending on the my_svn. - -2007-12-11 Werner Koch - - * configure.ac: We actually require libgpg-error 1.4. Reported by - Tim Mooney. - -2007-12-10 Werner Koch - - Released 1.4.0. - - * configure.ac: Set LT to C15/A4/R3. - -2007-12-05 Werner Koch - - * configure.ac: Add option --disable-padlock-support. - -2007-12-03 Werner Koch - - Released 1.3.2. - - * configure.ac: Set LT to C15/A4/R2. - - * config.sub, config.guess: Update to version 2007-11-19. - -2007-10-30 Werner Koch - - * configure.ac: Protect config.h against double inclusion. - -2007-10-26 Werner Koch - - Released 1.3.1. - - * configure.ac: Set LT to C15/A4/R1. - -2007-08-22 Werner Koch - - * README: Rewrite the license description. - * configure.ac (USE_RNDW32, USE_RNDUNIX): Unmark as GPL modules. - -2007-08-08 Werner Koch - - * configure.ac: Use $host and not $target. - -2007-07-26 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Fix a syntax error - in the test program which lurked there for 4 years. Adjusted name - of libtools global_system_pipe variable and add extra cut stage. - Reported by Gregor Riepl. - -2007-06-15 Werner Koch - - * autogen.sh (FORCE): Use = and not == in test to be POSIXly correct. - -2007-05-30 Werner Koch - - * configure.ac: Camellia is no longer GPL. - -2007-05-24 Werner Koch - - * configure.ac: Try to use -Wpointer-arith. - -2007-05-19 Marcus Brinkmann - - * configure.ac: Fix test for optional UDIV and UDIV_QRNND MPI - modules. - -2007-05-09 Marcus Brinkmann - - * configure.ac (ac_cv_mpi_config_done): Unused variable removed. - (ac_cv_mpi_mod_list, MPI_MOD_LIST_LO, MPI_MOD_LIST_O): Removed. - (MPI_MOD_ASM_MPIH_ADD1, MPI_MOD_ASM_MPIH_SUB1, - MPI_MOD_ASM_MPIH_MUL1, MPI_MOD_ASM_MPIH_MUL2, - MPI_MOD_ASM_MPIH_MUL3, MPI_MOD_ASM_MPIH_LSHIFT, - MPI_MOD_ASM_MPIH_RSHIFT, MPI_MOD_ASM_MPIH_UDIV, - MPI_MOD_ASM_MPIH_UDIV_QRNND, MPI_MOD_C_MPIH_ADD1, - MPI_MOD_C_MPIH_SUB1, MPI_MOD_C_MPIH_MUL1, MPI_MOD_C_MPIH_MUL2, - MPI_MOD_C_MPIH_MUL3, MPI_MOD_C_MPIH_LSHIFT, MPI_MOD_C_MPIH_RSHIFT, - MPI_MOD_C_MPIH_UDIV, MPI_MOD_C_MPIH_UDIV_QRNND): New automake - variables. - -2007-05-04 Werner Koch - - Released 1.3.0. - - * configure.ac: Set LT to C15/A4/R0. - - * configure.ac: Require automake 1.10 - (AM_PROG_CC_C_O): New. - -2007-05-03 Werner Koch - - * configure.ac: Fix detection of GPLed random modules. - -2007-05-02 Werner Koch - - * configure.ac (LIBGCRYPT_DIGESTS, LIBGCRYPT_CIPHERS) - (LIBGCRYPT_PUBKEY_CIPHERS): Ac_define lists of algorithms. - (default_ciphers): Don't make camellia a default. - -2007-05-02 David Shaw - - * NEWS, configure.ac: Add Camellia. - -2007-04-30 Werner Koch - - * README.apichanges: Move to doc/. - * Makefile.am (EXTRA_DIST): Removed that file. - -2007-04-28 Marcus Brinkmann - - * configure.ac: Allow to specify additional search directories - with --enable-mpi-path. - -2007-04-16 Werner Koch - - * configure.ac: Check for sysconf. - * acinclude.m4 (GNUPG_CHECK_MLOCK): Try to use sysconf to get the - page size and use getpagesize only then if available. - -2007-03-22 Werner Koch - - * configure.ac: Add support for ECC. - -2007-02-22 Werner Koch - - * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Use - --enable-random-daemon. - - * configure.ac: New option --enable-random-daemon. - Create versioninfo.rc and provide the build information. - -2007-02-21 Werner Koch - - * Makefile.am, configure.ac: Ignore w32-dll/. - -2007-02-20 Werner Koch - - * configure.ac: Bump LT version to C14/A3/R0 in preparation for a - release. - - * autogen.sh: Add option --force. - * configure.ac: New option --disable-endian-check. Use a real - noexecstack test instead of requiring an option. Add SVN version - magic. - -2007-02-02 Werner Koch - - * configure.ac (FALLBACK_SOCKLEN_T): Special case for mingw32. - -2006-11-15 Werner Koch - - * autogen.sh: Add convenience option --build-amd64. - -2006-10-20 Werner Koch - - * Makefile.am (stowinstall): New convenience target. - -2006-10-12 Marcus Brinkmann - - * configure.ac (FALLBACK_SOCKLEN_T): Third time is a charm. - Define gcry_socklen_t, to avoid conflicts with socklen_t - definitions by autoconf. - -2006-10-11 Marcus Brinkmann - - * configure.ac (FALLBACK_SOCKLEN_T): Rewrite in terms of - socklen.m4. - -2006-10-11 Marcus Brinkmann - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Removed. - * configure.ac: Do not call GNUPG_FIX_HDR_VERSION. - -2006-10-10 Marcus Brinkmann - - * configure.ac: Invoke AC_CHECK_SOCKLEN_TYPE. - (AC_CONFIG_FILES): Add src/gcrypt.h. - (AC_CONFIG_SRCDIR): Change to src/libgcrypt.vers. - -2006-10-02 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Test on HOST and not - TARGET. Hardwire for mingw32. Allow setting via command line when - cross compiling. - -2006-08-29 Werner Koch - - * configure.ac (USE_SEED): New. - -2006-07-26 Werner Koch - - * configure.ac: New options --enable-noexecstack and - --disable-optimization. - -2006-07-04 Marcus Brinkmann - - * configure.ac: Call AC_LIBTOO_WIN32_DLL and AC_LIBTOOL_RC. - - * configure.ac: Call gl_TYPE_SOCKLEN_T instead of the other - socklen_t checks. - -2006-06-08 Marcus Brinkmann - - * configure.ac (PTH_LIBS): Add --all to pth-config invocation. - -2006-03-14 Werner Koch - - * configure.ac: Check for fctnl and ftruncate. - (HAVE_PTH): Check for GNU Pth. - (HAVE_W32_SYSTEM): Define it. - * acinclude.m4 (GNUPG_PTH_VERSION_CHECK): New. Taken from GnuPG 1.4. - -2005-12-08 Werner Koch - - * configure.ac: Changed the random device names for netbsd. From - Christian Biere. - -2005-11-02 Moritz Schulte - - * NEWS: Documented minor API changes. - -2005-09-15 Moritz Schulte - - * Makefile.am (EXTRA_DIST): Depend on README.SVN, not on README.CVS. - -2005-06-25 Moritz Schulte - - * configure.ac: Removed src/libgcrypt.pc from AC_CONFIG_FILES. - -2005-06-10 Werner Koch - - * configure.ac: Move detection of basic stuff to the top. For - example we need to know whether gcc is used before testing for it. - Reported by Ralf Fassel. - -2005-04-23 Moritz Schulte - - * acinclude.m4 (TYPE_SOCKLEN_T): New type definition test; - provided by Albert Chin. - * configure.ac: Don't use $(CMD) as it's not portable; use CMD in - backticks instead. Simpler -lnsl/-lsocket test. Use - TYPE_SOCKLEN_T test. Don't forget to set `random_modules' - correctly. - -2005-04-22 Moritz Schulte - - * configure.ac: Added support for pkgconfig; provided by Albert - Chin. - -2005-04-11 Moritz Schulte - - * configure.ac: Integrate Whirlpool. - -2005-01-04 Werner Koch - - Updated to automake 1.9. - - * acinclude.m4: Updated for use with automake 1.9. - - * configure.ac: Require libgpg-error 1.0; not really needed but - that is the first stable version. - - * Makefile.am (ACLOCAL_AMFLAGS): New for -I m4. - (AUTOMAKE_OPTIONS): New to create a bzip archive. - -2005-02-03 Moritz Schulte - - * THANKS: Updated. - -2004-08-09 Moritz Schulte - - * THANKS: Updated. - -2004-07-04 Moritz Schulte - - * THANKS: Updated. - -2004-04-21 Werner Koch - - * configure.ac: Don't print a warning if GNU make was not found. - -2004-05-07 Moritz Schulte - - * THANKS: Updated. - -2004-04-02 Thomas Schwinge - - * autogen.sh: Added ACLOCAL_FLAGS. - -2004-04-15 Werner Koch - - Released 1.2.0. - - * configure.ac: Set LT to C12/A1/R1. - -2004-04-06 Werner Koch - - * config.guess, config.sub, ltmain.sh: Updated to those from - libtools 1.5.4. - -2004-03-29 Werner Koch - - Released 1.1.94. - - * configure.ac: Set LT to C12/A1/R0. - -2004-03-10 Marcus Brinkmann - - * configure.ac (LIBGCRYPT_CONFIG_LIBS_PTHREAD, - LIBGCRYPT_CONFIG_CFLAGS_PTHREAD, LIBGCRYPT_CONFIG_LIBS_PTH, - LIBGCRYPT_CONFIG_CFLAGS_PTH, have_pth, have_pthread, AC_CHECK_PTH, - AC_CHECK_LIB(pthread), HAVE_PTH, HAVE_PTHREAD): Removed. - -2004-03-06 Werner Koch - - Released 1.1.93. - - * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): Replaced by - LIBGCRYPT_CONPIG_API_VERSION. Set it to 1. Set LT to C11/A0/R1. - -2004-03-05 Werner Koch - - * configure.ac (LIBGCRYPT_CONFIG_SONAME_NUMBER): New. - -2004-02-20 Werner Koch - - Released 1.1.92. - - * configure.ac: Set LT to C11/A0/R0. - -2004-02-11 Werner Koch - - * autogen.sh (check_version): Removed bashism and simplified. - -2004-02-06 Werner Koch - - * configure.ac: Add rfc2268 cipher algorithm. - -2004-01-25 Moritz Schulte - - * THANKS: Updated. - -2003-12-19 Werner Koch - - Released 1.1.91. - - * configure.ac: Bumbed LT version to C10/A3/R1. - -2003-12-08 Werner Koch - - * Makefile.am (dist-hook): Don't distribute stuff from the now - obsolete scripts dir. - (EXTRA_DIST): Remove README_alpha - * README-alpha: Removed. - * configure.ac (AM_CONFIG_AUX_DIR): Removed. - - * COPYING.DOC: Removed. - * Makefile.am (EXTRA_DIST): Added README.CVS and - autogen.sh. Removed COPYING.DOC. - -2003-11-14 Werner Koch - - Released 1.1.90. - - * configure.ac: Bumbed LT version to C10/A3/R0. - - * configure.ac (have_ld_version_script): Set the default in - a separate test. - (PRINTABLE_OS_NAME): Don't handle the Hurd extra, this leads to - conflicts with BSD based GNU systems. The Hurd has now a working - uname. - -2003-11-04 Werner Koch - - * configure.ac (USE_SHA1): Make sure it is always included. - (USE_RMD160): Removed this AM conditional. - -2003-10-31 Werner Koch - - * configure.ac: Bumbed version number to 1.1.90-cvs for futher - development - - Released 1.1.44. - - * acinclude.m4 (AC_CHECK_PTH): Added. - * configure.ac: Use it here instead of the generic lib test. - Bumbed LT vesion to C9/A2/R0. - -2003-10-27 Werner Koch - - * configure.ac: Give a hint on where libgpg-error is available. - Reformatted long lines. Don't include gcrypt-defs.h. - (--enable-gcc-warnings): New option. - -2003-10-24 Moritz Schulte - - * configure.ac: Check for socklen_t. - -2003-10-11 Moritz Schulte - - * acinclude.m4: Update AM_PATH_GPG_ERROR macro. - -2003-09-04 Werner Koch - - Released 1.1.43. - - * configure.ac: Require libgpg-error 0.4 due to the prime interface. - -2003-08-29 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Re-implemented. - * configure.ac: Use it here. - -2003-08-27 Moritz Schulte - - * configure.ac: Substitute: LIBGCRYPT_CONFIG_LIBS_PTHREAD, - LIBGCRYPT_CONFIG_CFLAGS_PTHREAD, LIBGCRYPT_CONFIG_LIBS_PTH, - LIBGCRYPT_CONFIG_CFLAGS_PTH, LIBGCRYPT_THREAD_MODULES. - -2003-08-07 Moritz Schulte - - * configure.ac: Fail, if libgpg-error could not be found. - -2003-07-31 Werner Koch - - Released 1.1.42. - - * configure.ac: Set LT version to 7/0/0. - -2003-07-30 Werner Koch - - * AUTHORS (Maintainer): Assigned Moritz as Maintainer. - -2003-07-30 Moritz Schulte - - * NEWS: Include much more complete list of `Interface changes - relative to the 1.1.12 release'. - -2003-07-14 Moritz Schulte - - * configure.ac: Bumbed version number up to 1.1.42-cvs. - -2003-07-09 Moritz Schulte - - * configure.ac: Reintroduce --disable-asm, since it is needed by - mpi/config.links. - -2003-07-05 Moritz Schulte - - * README: Few changes, mention libgpg-error. - -2003-06-18 Moritz Schulte - - * configure.ac (available_ciphers): Removed Serpent, hrrm. - -2003-06-17 Moritz Schulte - - * acinclude.m4: Removed macro definitions: GNUPG_CHECK_FAQPROG, - GNUPG_CHECK_ENDIAN, GNUPG_CHECK_CACHE, GNUPG_CHECK_PIC, - GNUPG_CHECK_EXPORTDYNAMIC, GNUPG_CHECK_IPC, GNUPG_PROG_NM, - GNUPG_SYS_SYMBOL_UNDERSCORE, GNUPG_FUNC_MKDIR_TAKES_ONE_ARG, - GPH_PROG_DB2ANY. - Added macro definitions: AM_PATH_GPG_ERROR. - - * configure.ac: Use alternative approach for building based on - conditional sources, which does not make automake eat all your - memory, etc. - Removed unused tests. - Renamed --enable-static-rnd to --enable-random. - Use Autoconf's AC_C_BIGENDIAN macro instead of our own. - Re-organized the whole file. - -2003-06-16 Moritz Schulte - - * configure.ac (AC_CONFIG_FILES): Removed doc/version.sgml. - -2003-06-11 Moritz Schulte - - * configure.ac: Remove --enable-libgpg-error flag. - Ue AC_PATH_GPG_ERROR. - -2003-06-09 Moritz Schulte - - * NEWS: Mention API changes and libgpg-error. - -2003-05-25 Moritz Schulte - - * configure.ac (USE_LIBGPG_ERROR): Implementation of the - --enable-libgpg-error switch. - Define USE_LIBGPG_ERROR in LIBGCRYPT_CONFIG_FLAGS, in case - libgpg-error is used. - -2003-05-22 Moritz Schulte - - * configure.ac (AC_CHECK_HEADERS): Removed unused headers: - termio.h, langinfo.h. - (AC_CHECK_FUNCS): Removed unused functions: strsep, strlwr, - tcgetattr, setrlimit, strftime, nl_langinfo, sigaction, - sigprocmask, fopen64, fstat64. - -2003-04-27 Moritz Schulte - - * README: Documented new configure switches. - Mention the --enable-maintainer-switch. - - * configure.ac: Merged some code from GnuPG's configure.ac for - disabling sha512/tiger in case no 64 data types are available. - -2003-04-17 Moritz Schulte - - * configure.ac: Include support for sha512. - -2003-04-17 Moritz Schulte - - * AUTHORS: Updated. - -2003-04-16 Moritz Schulte - - * configure.ac: Implement command line switches: --enable-ciphers, - --enable-pubkey-ciphers and --enable-digests. - Set Automake conditionals and config.h symbols depending on the - selected ciphers, pubkey-ciphers, digests and random-modules. - - * acinclude.m4 (LIST_MEMBER): New macro. - - * configure.ac: Simplified, removed code for parsing - EXTRA_PROGRAMS from Makefile.am. - -2003-04-08 Moritz Schulte - - * configure.ac: Merged random-module selection code from GnuPG's - configure.ac. - -2003-04-07 Moritz Schulte - - * configure.ac: Removed code for generating contruct.c. - Remove digest modules from the static_modules list, only handle - random module selection. - - -2003-03-24 Moritz Schulte - - * NEWS: Mention new CBC_MAC flag. - - * AUTHORS (Maintainer): Update entry for Simon Josefsson. - -2003-03-04 Moritz Schulte - - * TODO: Remove item about resetting handles, since - gcry_cipher_reset is implemented by now. - - * NEWS: Mentioned gcry_cipher_reset. - -2003-01-21 Werner Koch - - * README (Configure options): New. - * configure.ac (have_ld_version_script): New option - --enable-ld-version-script. - -2003-01-20 Simon Josefsson - - * configure.ac (MODULES_IN_CIPHER): Add crc. - -2003-01-20 Werner Koch - - Released 1.1.12. - - * configure.ac (LIBGCRYPT_LT_REVISION): Bumbed up. - -2002-12-21 Werner Koch - - Released 1.1.11. - - * configure.ac (LIBGCRYPT_LT_CURRENT: Bumbed to 6/5/0 due to a new - interface - -2002-12-19 Werner Koch - - * configure.ac (have_pthread): Check for pthreads in libc. - (have_ld_version_script): New. - -2002-11-10 Werner Koch - - * configure.ac (MODULES_IN_CIPHER): Add md4.c. By Simon Josefsson. - -2002-09-20 Werner Koch - - Released 1.1.10. - - * configure.ac (HAVE_DEV_RANDOM_IOCTL): Don't check for it; it is - not used. - (AS_CHECK_HEADERS): Check for sys/select.h. - * Makefile.am (DIST_SUBDIRS): New to include the w32-dll directory - -2002-09-18 Timo Schulz - - * configure.ac: Added makefile for the W32 DLL. - -2002-09-17 Werner Koch - - * configure.ac: Check for Pth and Pthreads. - -2002-08-23 Werner Koch - - Released 1.1.9. - - * configure.ac (LIBGCRYPT_CONFIG_CFLAGS): Renamed from - LIBGCRYPT_CFLAGS and removed the libpath because it is set by the - config script. - (LIBGCRYPT_LT_REVISION): Set LT version to 5/4/1. - -2002-06-25 Werner Koch - - Released 1.1.8. - - * configure.ac: Set LT version to 5/4/0. - -2002-05-21 Werner Koch - - Released 1.1.7. - - * configure.ac: Set LT version to 4/3/0. - -2002-05-17 Werner Koch - - * configure.ac: Removed all the dynamic loading stuff. - -2002-05-16 Werner Koch - - * configure.ac: Reordered the C_CHECK_FUNCS. - -2002-05-15 Werner Koch - - * configure.ac: Adjusted for new MPI module stuff. - -2002-05-14 Werner Koch - - Changed license to the LGPL. - -2002-05-02 Werner Koch - - * jnlib/: Removed. - * Makefile.am (SUBDIRS): Removed jnlib. - * configure.ac (jnlib/Makefile): Removed. - - * configure.ac: Define _REENTRANT. - -2002-02-18 Werner Koch - - * configure.ac (MPI_EXTRA_ASM_OBJS): Use .lo suffix. - (AC_CANONICAL_TARGET): Added. - -2002-02-07 Werner Koch - - Released 1.1.6. - -2002-01-24 Werner Koch - - * jnlib/: Replaced by a fresh copy from GnuPG (actually the NewPG - development branch). Adjusted Makefile.am and jnlib-config.h - accordingly. - -2001-12-18 Werner Koch - - Released 1.1.5. - - * Makefile.am (dist-hook): Only look in mpi and scripts for - distfiles; this way we don't include those of a stale "make dist" - directory. - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): Make it work with the new - automake. - * configure.ac: Don't chmod db2any. - -2001-08-06 Werner Koch - - * configure.ac: Removed cross compiling hacks. - -2001-08-03 Werner Koch - - Released 1.1.4. - - * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Define GNU Source. - - Migrated to autoconf 2.52. - * acinclude.m4: Removed GNUPG_LINK_FILES and converted. - * acconfig.h: Removed - * configure.in: Replaced by... - * configure.ac: and modified for use with autoconf 2.52. Replaced - GNUPG_LINK_FILES with AC_CONFIG_LINKS and moved some informational - messages to the end. Removed --enable-m-debug - - * tests/: New. - * Makefile.am: Included tests directory - - * configure.in (DYNLINK_MOD_CFLAGS): Use -shared with dec-osf. - Reported by Chris Adams. Merged some cases. - -2001-05-31 Werner Koch - - Released 1.1.3. - - * configure.in: Use _gcry_ prefix when creating the cipher constructor. - - * acconfig.h (_GCRYPT_IN_LIBGCRYPT): Define it here. - -2001-05-28 Werner Koch - - * acinclude.m4 (GPH_PROG_DOCBOOK): Removed. - (GPH_PROG_DB2ANY): New. Taken from GPH. - * configure.in: Use it here. - -2000-12-19 Werner Koch - - Major change: - Removed all GnuPG stuff and renamed this piece of software - to gcrypt. The directory gcrypt has been renamed to src. - -2000-11-14 Werner Koch - - Version 1.1.2 released. - -2000-11-13 Werner Koch - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): VPATH build fix. - -2000-10-10 Werner Koch - - * Makefile.am (dist-hook): Create the version file. - * configure.in: Set the libtool version here, removed the need - for the version file. - -Mon Sep 18 16:35:45 CEST 2000 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_MLOCK): Removed that silly mkdir(). - - * configure.in: Changes to allow for Solaris random device. - By Nils Ellmenreich. - (--with-egd-socket): New. - - * configure.in (GNUPG_HOMEDIR): New. - - * configure.in: Check for fstat64 and fopen64 - - * acinclude.m4 (GNUPG_CHECK_FAQPROG): New. - * configure.in: Test for this. - - * configure.in (DYNLINK_MOD_CFLAGS): Fix by David Champion. - -Tue Aug 22 14:31:15 CEST 2000 Werner Koch - - Version 1.1.1 - -Fri Aug 18 14:27:14 CEST 2000 Werner Koch - - * agent/: New. - * Makefile.am, configure.in: Support for the new directory. - -Mon Jul 17 16:35:47 CEST 2000 Werner Koch - - * configure.in (mingw32): Changes to allow for mingw32msvc - -Fri Jul 14 19:38:23 CEST 2000 Werner Koch - - The big merge between this one and the stable branch 1.0. Still need - to merge TNANKS, AUTHORS and such. It probaly does not compile yet. - - * acinclude.m4 (GNUPG_CHECK_MLOCK): Fixed syntax error in C code. - - * configure.in: Add check for termio.h, wait unctiosn and sigaction. - - * acinclude.m4, configure.in (GNUPG_CHECK_GNUMAKE): New. - - * acinclude.m4 (MKDIR_TAKES_ONE_ARG): Check some headers. By Gaël Quéri. - - * configure.in (AM_INIT_AUTOMAKE): Use this now. By Gaël. - - * acinclude.m4 (GNUPG_CHECK_EXPORTDYNAMIC): Replacement for - GNUPG_CHECK_RDYNAMIC which should handle gcc with non GNU ld nicer. - Contributed by Dave Dykstra. - * configure.in (GNYPG_CHECK_RDYNAMIC): Replaced by the new check. - - * configure.in: Add a test for unisgned long long. - - * configure.in (DYNLINK_MOD_CFLAGS): Set different for NetBSD. - - * configure.in: Add check for clock_gettime - - * configure.in (ALL_LINGUAS): Add nl. - * configure.in (ALL_LINGUAS): Add Esperanto. - * configure.in (ALL_LINGUAS): Add sv and ja. - - * configure.in: Use /usr/local for CFLAGS and LDFLAGS when - target is freebsd. By Rémi. - - * configure.in: Do not set development version when the version has - a dash in it. Suggested by Dave Dykstra. - - * configure.in: Removed substitution for doc/gph/Makefile. - Do all the gcc warning only in maintainer mode. - - * configure.in (dlopen): Use CHECK_FUNC for a test of dlopen in libc. - Suggested by Alexandre Oliva. - (-Wall): Moved the settting of gcc warning options near to the end - so that tests don't get confused. Suggested by Paul D. Smith. - - * acinclude.m4 (GNUPG_SYS_NM_PARSE): Added BSDI support. - (GNUPG_CHECK_RDYNAMIC): Ditto. - - * acinclude.m4 (GNUPG_CHECK_MLOCK): Changed the way to test for - librt. Test suggested by Jeff Long. - - * acinclude.m4 (GNUPG_CHECK_MLOCK): Do librt check only when - we can't link a test program. This way GNU systems don't need - to link against linrt. - (GNUPG_CHECK_IPC): Fixed use of TRY_COMPILE macro. From Tim Mooney. - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add support for - DJGPP. - (GNUPG_CHECK_MLOCK): Check whether mlock sits in librt. - - * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Add NetBSD. By Thomas Klausner. - - * acconfig.h (HAVE_MLOCK): Added - -Mon Mar 13 19:22:46 CET 2000 Werner Koch - - * configure.in: Now uses the Docbook M4s from GPH. - -Mon Jan 31 17:46:35 CET 2000 Werner Koch - - * Makefile.am: Re-added tools. By Rémi. - -Mon Jan 31 16:37:34 CET 2000 Werner Koch - - * configure.in: Create a symlink for types.h in gcrypt/. - -Thu Jan 27 18:00:44 CET 2000 Werner Koch - - * configure.in (g10defs.h): Replaced by gnupg-defs.h - -Mon Jan 24 13:04:28 CET 2000 Werner Koch - - * jnlib/ : New. - - * configure.in: Do set development version when the version has - a dash in it. Suggested by Dave Dykstra. - -Thu Dec 9 17:22:27 CET 1999 Werner Koch - - * acinclude.m4 (GNUPG_FIX_HDR_VERSION): New. - * configure.in: Check and fix the version number of gcrypt/gcrypt.h - so that it is always the save as VERSION. - -Thu Oct 28 16:17:46 CEST 1999 Werner Koch - - * Started with development series 1.1 on 1999-10-26 - -Tue Oct 26 14:10:21 CEST 1999 Werner Koch - - * README-alpha: New - - * configure.in: Fixed quoting in test for development version. - - * THANKS: Add entries for Michael, Brenno and J Horacio who did - very nice Howto documents - I apoligize for forgetting to mention them - earlier. - -Fri Sep 17 12:56:42 CEST 1999 Werner Koch - - - * configure.in: Add "-lcap" when capabilities are requested. - Add the conditional CROSS_COMPILING. - * Makefile.am: Don't use checks when CROSS_COMPILING. - - -Wed Sep 15 16:22:17 CEST 1999 Werner Koch - - - * configure.in (ALL_LINGUAS): Add pt_PT. - - * configure.in: Some tweaks for cross compiling under MingW32 - * acconfig.h (USE_STATIC_RNDW32): New. - -Tue Sep 7 17:08:10 CEST 1999 Werner Koch - - - * VERSION: Set to 1.0.0. - -Mon Sep 6 19:59:08 CEST 1999 Werner Koch - - - * configure.in: Create makefile in doc/gph - - * acinclude.m4 (GNUPG_FUNC_MKDIR_TAKES_ONE_ARG): New - * configure.in: use the above. - -Thu Sep 2 16:40:55 CEST 1999 Werner Koch - - - * VERSION: Set to 0.9.11. - -Tue Aug 31 17:20:44 CEST 1999 Werner Koch - - * configure.in: Minor changes to the OS/2 and Mingw32 system labels. - Add a printable name for Hurd. - -Mon Aug 30 20:38:33 CEST 1999 Werner Koch - - * configure.in: Some support for DJGPP (Mark Elbrecht) - -Wed Aug 4 10:34:46 CEST 1999 Werner Koch - - * VERSION: Set to 0.9.10. - -Mon Jul 26 09:34:46 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): remove init of ac_cv_... - - * Makefile.am (DISCLEANFILES): New - -Fri Jul 23 13:53:03 CEST 1999 Werner Koch - - * VERSION: Set to 0.9.9. - - * configure.in: Print a notice when rndunix is used. - -Thu Jul 15 10:15:35 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Fixed last modification. - -Wed Jul 7 13:08:40 CEST 1999 Werner Koch - - * Makefile.am: Support for libtool. - * configure.in: Ditto. - -Tue Jun 29 21:44:25 CEST 1999 Werner Koch - - * configure.in (use_local_zlib): The lost dollar is back. - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add EMX case. - * configure.in: Another variant of the MX vendor string - - * configure.in (--with-capabilities): Some test code (Remi). - -Sat Jun 26 12:15:59 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Support for HPUX and IRIX. - * configure.in (HAVE_DL_SHL_LOAD): New for HPUX (Dave Dykstra). - - * VERSION: Now 0.9.8 - -Wed Jun 16 20:16:21 CEST 1999 Werner Koch - - * configure.in: Add test for docbook-to-man - -Tue Jun 15 12:21:08 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_SYS_NM_PARSE): Support for {net,free}bsd, - -Thu Jun 10 14:18:23 CEST 1999 Werner Koch - - * configure.in (ZLIB,GDBM): Check both, header and lib. - -Sat Jun 5 15:30:33 CEST 1999 Werner Koch - - * pkclist.c (key_present_in_pk_list): New (Michael). - -Tue May 25 19:50:32 CEST 1999 Werner Koch - - * configure.in (IS_DEVELOPMENT_VERSION): Fixed detection. - -Sun May 23 14:20:22 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): assume yes when - cross-compiling. - -Mon May 17 21:54:43 CEST 1999 Werner Koch - - * configure.in (socket): Fix for Unisys by Katsuhiro Kondou. - -Sat May 8 19:28:08 CEST 1999 Werner Koch - - * NEWS: Add a marker line which I forgot to do for 0.9.6. - -Thu May 6 14:18:17 CEST 1999 Werner Koch - - * README: Minor updates - - * VERSION: Now 0.9.6 - -Thu Apr 8 09:35:53 CEST 1999 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Fix for - amiga-openbsd (Peter Reich) - (GNUPG_PROG_NM): Ditto - -Wed Apr 7 20:51:39 CEST 1999 Werner Koch - - * Makefile.am (g10defs.h): Removed. - * configure.in (AC_OUTPUT_COMMANDS): Create g10defs.h - -Sat Mar 20 12:55:33 CET 1999 Werner Koch - - * VERSION: Now 0.9.5 - -Sun Mar 14 19:34:36 CET 1999 Werner Koch - - * acinclude.m4 (AM_SYS_SYMBOL_UNDERSCORE): Removed because it is - now in the latest libtool. - -Thu Mar 11 16:39:46 CET 1999 Werner Koch - - * configure.in: Removed the need for libtool - -Mon Mar 8 20:47:17 CET 1999 Werner Koch - - * configure.in (DLSYM_NEEDS_UNDERSCORE): Replaced. - * acinclude.in (AM_SYS_SYMBOL_UNDERSCORE): New. - - * VERSION: Now 0.9.4 - -Sun Feb 28 19:11:00 CET 1999 Werner Koch - - * configure.in (dld): Test disabled. - -Fri Feb 26 17:55:41 CET 1999 Werner Koch - - * encode.c (encode_simple): temporary fix. - -Wed Feb 24 11:07:27 CET 1999 Werner Koch - - * configure.in: New option --enable-static-rnd. - -Mon Feb 22 20:04:00 CET 1999 Werner Koch - - * BUGS: Now we assign bug numbers. - * OBUGS: New to keep rack o fixed bugs (CVS only) - -Fri Feb 19 18:01:54 CET 1999 Werner Koch - - * VERSION: Released 0.9.3 - -Fri Feb 19 15:49:15 CET 1999 Werner Koch - - * acinclude.m4: Removed gettext macros. - -Tue Feb 16 14:10:02 CET 1999 Werner Koch - - * configure.in (socket): Check for -lsocket and -lnsl. - (osf4): Disable all warnings for DEC's cc. - (-Wall): Add more warning options for gcc - -Sat Feb 13 12:04:43 CET 1999 Werner Koch - - * configure.in: Changed detection of compiler flags. - * intl/ : Removed directory - -Wed Feb 10 17:15:39 CET 1999 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Fix for freebsd 2.2 - - * configure.in: a lot of changes to allow selection of modules. - Add support for OS/2. - - * acinclude.m4: add some more caching - - * README: Spelling and grammar corrections (John A. Martin) - * INSTALL: Ditto. - -Wed Jan 20 21:40:21 CET 1999 Werner Koch - - * configure.in: --enable-m-guard is now default - -Wed Jan 13 12:49:36 CET 1999 Werner Koch - - * INSTALL: Applied new information how to build rpms by Fabio Coatti - * Makefile.in (gnupg.spec): Changed the names. - -Tue Jan 12 11:17:18 CET 1999 Werner Koch - - * config.links (m68k-atari-mint): New - -Tue Jan 12 09:17:19 CET 1999 Gaël Quéri - - * all: Fixed typos all over the place - -Sat Jan 9 16:02:23 CET 1999 Werner Koch - - * configure.in: Add a way to statically link rndunix - -Sun Jan 3 15:28:44 CET 1999 Werner Koch - - * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): New. - * configure.in (DYNLOAD_CFLAGS): Use result from CHECK_RDYNAMIC - -Wed Dec 23 13:18:14 CET 1998 Werner Koch - - * README: Replaced the command overview with a short intro. - -Sat Dec 12 18:40:32 CET 1998 Werner Koch - - * configure.in: Add check for dlopen in libc (Greg Troxel) - and a new define - * acconfig.h (DLSYM_NEEDS_UNDERSCORE): New. - -Thu Dec 10 20:15:36 CET 1998 Werner Koch - - * acinclude.m (GNUPG_CHECK_PIC): New - * configure.in, acinclude.m4: Renamed all WK_ to GNUPG_ - -Tue Dec 8 15:09:29 CET 1998 Werner Koch - - * VERSION: Set to 0.4.5 - -Wed Nov 25 12:38:29 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (USE_RNDLINUX): New. - -Fri Nov 20 19:34:57 1998 Werner Koch (wk@isil.d.shuttle.de) - - * VERSION: Released 0.4.4 - - * configure.in (try_asm_modules): For option --disable-asm - -Tue Nov 10 19:32:40 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (MPI_SFLAGS): New. - -Tue Nov 10 13:44:53 1998 Werner Koch (wk@isil.d.shuttle.de) - - * ABOUT-NLS: New - * configure.in (AC_REVISION): New. - -Sun Nov 8 18:20:35 1998 Werner Koch (wk@isil.d.shuttle.de) - - * VERSION: Set to 0.4.3 - -Sun Oct 25 19:49:37 1998 Werner Koch (wk@isil.d.shuttle.de) - - * Makefile.am (g10defs.h): New macro GNUPG_DATADIR. - -Wed Oct 21 17:24:24 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in: Removed gettext kludge - * acinclude.m4: Add patched AM_WITH_NKS macro - -Tue Oct 20 19:03:36 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in: Kludge to make AM_GNU_GETTEXT work, - changed some macors to more modern versions. Also - changeg the all makefiles to remove duplicate ../intl. - * acinclude.m4: Removed the gettext stuff, as this - already comes with automake now. - -Wed Oct 14 12:11:34 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (NAME_OF_DEV_RANDOM): New. - (DYNLINK_MOD_CFLAGS): New. - -Thu Oct 8 10:55:15 1998 Werner Koch (wk@isil.d.shuttle.de) - - * Makefile.am (g10defs.h): creates include file - * acconfig.h: now includes g10defs.h - * configure.in: Removed G10_LOCALEDIR and GNUPG_LIB - -Thu Sep 17 18:49:40 1998 Werner Koch (wk@(none)) - - * Makefile.am (dist-hook): Now creates RPM file. - * scripts/gnupg.spec: New template file for RPMs - -Thu Jul 30 19:17:07 1998 Werner Koch (wk@(none)) - - * acinclude.h (WK_CHECK_IPC): New - * configure.in : Add checks for SysV IPC - -Thu Jun 25 11:18:49 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (--disable-dynload): New. - -Wed Jun 10 07:48:59 1998 Werner Koch,mobil,,, (wk@tobold) - - * configure.in (GNUPG_LIBDIR): New. - -Mon May 25 19:10:59 1998 Werner Koch (wk@isil.d.shuttle.de) - - * rand-unix.c (fast_random_poll): fixed syntax bug. - -Mon May 11 10:21:31 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (PRINTABLE_OS_NAME): Linux is now GNU/Linux - -Tue Apr 14 19:08:05 1998 Werner Koch (wk@isil.d.shuttle.de) - - * [all files]: Applied Matthew Skala's typo and grammar fixes. - -Wed Mar 4 10:32:40 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (getrusage,gettimeofday): New tests. - -Fri Feb 27 13:14:17 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (--disable-m-guard): New. - -Thu Feb 26 17:09:27 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in, acinclude.m4, intl/, po/: New macros taken - from GNOME, switched to automake 1.2f - -Thu Feb 26 09:05:46 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (doc/Makefile): New - -Thu Feb 26 07:40:47 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in: Changed gettext stuff - -Wed Feb 25 11:44:10 1998 Werner Koch (wk@isil.d.shuttle.de) - - * checks/*test : restructured the directory. - -Tue Feb 24 15:59:12 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in: Changed the name of the package to GNUPG and - chnaged several other names too. - -Wed Feb 18 17:36:45 1998 Werner Koch (wk@isil.d.shuttle.de) - - * Makefile.am (checks): New. - -Sat Feb 14 15:37:55 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (mpi_config_done): Removed asm links caching. - -Sat Feb 14 14:02:20 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in (PRINTABLE_OS_NAME): New. - * acconfig.h: Likewise. - -Fri Feb 13 19:43:41 1998 Werner Koch (wk@isil.d.shuttle.de) - - * configure.in : Fixed zlib stuff - * Makefile.am: Likewise - - - Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, - 2007, 2008, 2009, 2011 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. - - -Local Variables: -buffer-read-only: t -End: diff --git a/LICENSES b/LICENSES deleted file mode 100644 index 8594cfd..0000000 --- a/LICENSES +++ /dev/null @@ -1,134 +0,0 @@ -Additional license notices for Libgcrypt. -*- org -*- - -This file contains the copying permission notices for various files in -the Libgcrypt distribution which are not covered by the GNU Lesser -General Public License (LGPL) or the GNU General Public License (GPL). - -These notices all require that a copy of the notice be included -in the accompanying documentation and be distributed with binary -distributions of the code, so be sure to include this file along -with any binary distributions derived from the GNU C Library. - -* BSD_3Clause - - For files: - - cipher/sha256-ssse3-amd64.S - - cipher/sha512-avx-amd64.S - - cipher/sha512-avx2-bmi2-amd64.S - - cipher/sha512-ssse3-amd64.S - -#+begin_quote - Copyright (c) 2012, Intel Corporation - - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the - distribution. - - * Neither the name of the Intel Corporation nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - - THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#+end_quote - -* Simple permissive licenses - - For files: - - cipher/crc.c - -#+begin_quote - Copyright (c) 1996 L. Peter Deutsch - - Permission is granted to copy and distribute this document for - any purpose and without charge, including translations into - other languages and incorporation into compilations, provided - that the copyright notice and this notice are preserved, and - that any substantive changes or deletions from the original are - clearly marked. -#+end_quote - -* IETF permissive licenses - - For files: - - cipher/crc.c - -#+begin_quote - Copyright (C) The Internet Society (1998). All Rights Reserved. - - This document and translations of it may be copied and furnished - to others, and derivative works that comment on or otherwise - explain it or assist in its implementation may be prepared, - copied, published and distributed, in whole or in part, without - restriction of any kind, provided that the above copyright notice - and this paragraph are included on all such copies and derivative - works. However, this document itself may not be modified in any - way, such as by removing the copyright notice or references to - the Internet Society or other Internet organizations, except as - needed for the purpose of developing Internet standards in which - case the procedures for copyrights defined in the Internet - Standards process must be followed, or as required to translate - it into languages other than English. - - The limited permissions granted above are perpetual and will not be - revoked by the Internet Society or its successors or assigns. - - This document and the information contained herein is provided on - an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET - ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE - OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY - IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR - PURPOSE. -#+end_quote - -* X License - - For files: - - install.sh - -#+begin_quote - Copyright (C) 1994 X Consortium - - 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 THE - X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- - TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - Except as contained in this notice, the name of the X Consortium shall not - be used in advertising or otherwise to promote the sale, use or other deal- - ings in this Software without prior written authorization from the X Consor- - tium. -#+end_quote diff --git a/Makefile.am b/Makefile.am index 937bdaf..fbb5744 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,28 +19,19 @@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-bzip2 -DISTCHECK_CONFIGURE_FLAGS = --disable-random-daemon \ +DISTCHECK_CONFIGURE_FLAGS = --enable-random-daemon \ --enable-ciphers=arcfour:blowfish:cast5:des:aes:twofish:serpent:rfc2268:seed:camellia -# (A suitable gitlog-to-changelog script can be found in GnuPG master.) -GITLOG_TO_CHANGELOG=gitlog-to-changelog - DIST_SUBDIRS = m4 compat mpi cipher random src doc tests SUBDIRS = compat mpi cipher random src doc tests - -EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES \ - ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011 \ - m4/ChangeLog-2011 cipher/ChangeLog-2011 src/ChangeLog-2011 \ - random/ChangeLog-2011 tests/ChangeLog-2011 mpi/ChangeLog-2011 \ - build-aux/git-log-footer build-aux/git-log-fix - +EXTRA_DIST = autogen.sh README.SVN DISTCLEANFILES = # Add all the files listed in "distfiles" files to the distribution, # apply version number s to some files and create a VERSION file which # we need for the Prereq: patch file trick. -dist-hook: gen-ChangeLog +dist-hook: @set -e; \ for file in `cd $(top_srcdir); \ find mpi -type f -name distfiles`; do \ @@ -53,21 +44,5 @@ dist-hook: gen-ChangeLog @set -e; \ echo "$(VERSION)" > $(distdir)/VERSION - -gen_start_date = 2011-12-01T14:00:00 -.PHONY: gen-ChangeLog -gen-ChangeLog: - if test -d $(top_srcdir)/.git; then \ - (cd $(top_srcdir) && \ - $(GITLOG_TO_CHANGELOG) --append-dot --tear-off \ - --amend=build-aux/git-log-fix \ - --since=$(gen_start_date) ) > $(distdir)/cl-t; \ - cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ - rm -f $(distdir)/ChangeLog; \ - mv $(distdir)/cl-t $(distdir)/ChangeLog; \ - fi - - - stowinstall: $(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libgcrypt diff --git a/Makefile.in b/Makefile.in index 605bf5b..77a3e3e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in 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. @@ -33,23 +33,6 @@ # License along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -72,34 +55,24 @@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \ - INSTALL NEWS THANKS TODO build-aux/compile \ - build-aux/config.guess build-aux/config.rpath \ - build-aux/config.sub build-aux/depcomp build-aux/install-sh \ - build-aux/ltmain.sh build-aux/mdate-sh build-aux/missing \ - build-aux/texinfo.tex mkinstalldirs + INSTALL NEWS THANKS TODO compile config.guess config.rpath \ + config.sub depcomp install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gpg-error.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/noexecstack.m4 $(top_srcdir)/m4/onceonly.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ - $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -109,11 +82,6 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ @@ -125,11 +93,9 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ @@ -158,12 +124,9 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -178,7 +141,6 @@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -198,8 +160,6 @@ FALLBACK_SOCKLEN_T = @FALLBACK_SOCKLEN_T@ FGREP = @FGREP@ GCRYPT_CIPHERS = @GCRYPT_CIPHERS@ GCRYPT_DIGESTS = @GCRYPT_DIGESTS@ -GCRYPT_HWF_MODULES = @GCRYPT_HWF_MODULES@ -GCRYPT_KDFS = @GCRYPT_KDFS@ GCRYPT_PUBKEY_CIPHERS = @GCRYPT_PUBKEY_CIPHERS@ GCRYPT_RANDOM = @GCRYPT_RANDOM@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ @@ -225,19 +185,14 @@ LIBGCRYPT_LT_CURRENT = @LIBGCRYPT_LT_CURRENT@ LIBGCRYPT_LT_REVISION = @LIBGCRYPT_LT_REVISION@ LIBGCRYPT_PUBKEY_CIPHERS = @LIBGCRYPT_PUBKEY_CIPHERS@ LIBGCRYPT_THREAD_MODULES = @LIBGCRYPT_THREAD_MODULES@ -LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ -LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MPI_SFLAGS = @MPI_SFLAGS@ NM = @NM@ @@ -260,19 +215,16 @@ PTH_CONFIG = @PTH_CONFIG@ PTH_LIBS = @PTH_LIBS@ RANLIB = @RANLIB@ RC = @RC@ -RUN_LARGE_DATA_TESTS = @RUN_LARGE_DATA_TESTS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_SOCKET_H = @SYS_SOCKET_H@ VERSION = @VERSION@ -VERSION_NUMBER = @VERSION_NUMBER@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -308,6 +260,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -325,27 +278,18 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-bzip2 -DISTCHECK_CONFIGURE_FLAGS = --disable-random-daemon \ +DISTCHECK_CONFIGURE_FLAGS = --enable-random-daemon \ --enable-ciphers=arcfour:blowfish:cast5:des:aes:twofish:serpent:rfc2268:seed:camellia - -# (A suitable gitlog-to-changelog script can be found in GnuPG master.) -GITLOG_TO_CHANGELOG = gitlog-to-changelog DIST_SUBDIRS = m4 compat mpi cipher random src doc tests SUBDIRS = compat mpi cipher random src doc tests -EXTRA_DIST = autogen.sh autogen.rc README.GIT LICENSES \ - ChangeLog-2011 build-aux/ChangeLog-2011 doc/ChangeLog-2011 \ - m4/ChangeLog-2011 cipher/ChangeLog-2011 src/ChangeLog-2011 \ - random/ChangeLog-2011 tests/ChangeLog-2011 mpi/ChangeLog-2011 \ - build-aux/git-log-footer build-aux/git-log-fix - +EXTRA_DIST = autogen.sh README.SVN DISTCLEANFILES = -gen_start_date = 2011-12-01T14:00:00 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -am--refresh: Makefile +am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ @@ -381,8 +325,10 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): config.h: stamp-h1 - @if test ! -f $@; then rm -f stamp-h1; else :; fi - @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 @@ -573,10 +519,13 @@ distdir: $(DISTFILES) done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -610,11 +559,7 @@ dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir @@ -622,7 +567,7 @@ dist-lzma: distdir $(am__remove_distdir) dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir @@ -640,7 +585,7 @@ dist-zip: distdir dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -654,8 +599,6 @@ distcheck: dist bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -665,7 +608,7 @@ distcheck: dist *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod u+w $(distdir) + chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) @@ -675,7 +618,6 @@ distcheck: dist && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ @@ -704,16 +646,8 @@ distcheck: dist list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ @@ -744,15 +678,10 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: @@ -841,25 +770,24 @@ uninstall-am: .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-lzip dist-lzma dist-shar dist-tarZ \ - dist-xz dist-zip distcheck distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distcleancheck \ - distdir distuninstallcheck dvi dvi-am html html-am info \ - info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am # Add all the files listed in "distfiles" files to the distribution, # apply version number s to some files and create a VERSION file which # we need for the Prereq: patch file trick. -dist-hook: gen-ChangeLog +dist-hook: @set -e; \ for file in `cd $(top_srcdir); \ find mpi -type f -name distfiles`; do \ @@ -871,17 +799,6 @@ dist-hook: gen-ChangeLog done @set -e; \ echo "$(VERSION)" > $(distdir)/VERSION -.PHONY: gen-ChangeLog -gen-ChangeLog: - if test -d $(top_srcdir)/.git; then \ - (cd $(top_srcdir) && \ - $(GITLOG_TO_CHANGELOG) --append-dot --tear-off \ - --amend=build-aux/git-log-fix \ - --since=$(gen_start_date) ) > $(distdir)/cl-t; \ - cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ - rm -f $(distdir)/ChangeLog; \ - mv $(distdir)/cl-t $(distdir)/ChangeLog; \ - fi stowinstall: $(MAKE) $(AM_MAKEFLAGS) install prefix=/usr/local/stow/libgcrypt diff --git a/NEWS b/NEWS index 074e9f2..32fb6de 100644 --- a/NEWS +++ b/NEWS @@ -1,169 +1,3 @@ -Noteworthy changes in version 1.6.1 (2014-01-29) ------------------------------------------------- - - * Added emulation for broken Whirlpool code prior to 1.6.0. - - * Improved performance of KDF functions. - - * Improved ECDSA compliance. - - * Fixed locking for Windows and non-ELF Pthread systems (regression - in 1.6.0) - - * Fixed message digest lookup by OID (regression in 1.6.0). - - * Fixed a build problem on NetBSD. - - * Fixed memory leaks in ECC code. - - * Fixed some asm build problems and feature detection bugs. - - * Interface changes relative to the 1.6.0 release: - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - GCRY_MD_FLAG_BUGEMU1 NEW (minor API change). - - -Noteworthy changes in version 1.6.0 (2013-12-16) ------------------------------------------------- - - * Removed the long deprecated gcry_ac interface. Thus Libgcrypt is - not anymore ABI compatible to previous versions if they used the ac - interface. - - * Removed the module register subsystem. - - * The deprecated message digest debug macros have been removed. Use - gcry_md_debug instead. - - * Removed deprecated control codes. - - * Improved performance of most cipher algorithms as well as for the - SHA family of hash functions. - - * Added support for the IDEA cipher algorithm. - - * Added support for the Salsa20 and reduced Salsa20/12 stream ciphers. - - * Added limited support for the GOST 28147-89 cipher algorithm. - - * Added support for the GOST R 34.11-94 and R 34.11-2012 (Stribog) - hash algorithms. - - * Added a random number generator to directly use the system's RNG. - Also added an interface to prefer the use of a specified RNG. - - * Added support for the SCRYPT algorithm. - - * Mitigated the Yarom/Falkner flush+reload side-channel attack on RSA - secret keys. See [CVE-2013-4242]. - - * Added support for Deterministic DSA as per RFC-6969. - - * Added support for curve Ed25519. - - * Added a scatter gather hash convenience function. - - * Added several MPI amd SEXP helper functions. - - * Added support for negative numbers to gcry_mpi_print, - gcry_mpi_aprint and gcry_mpi_scan. - - * The algorithm ids GCRY_PK_ECDSA and GCRY_PK_ECDH are now - deprecated. Use GCRY_PK_ECC if you need an algorithm id. - - * Changed gcry_pk_genkey for "ecc" to only include the curve name and - not the parameters. The flag "param" may be used to revert this. - - * Added a feature to globally disable selected hardware features. - - * Added debug helper functions. - - * Interface changes relative to the 1.5.0 release: - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - gcry_ac_* REMOVED. - GCRY_AC_* REMOVED. - gcry_module_t REMOVED. - gcry_cipher_register REMOVED. - gcry_cipher_unregister REMOVED. - gcry_cipher_list REMOVED. - gcry_pk_register REMOVED. - gcry_pk_unregister REMOVED. - gcry_pk_list REMOVED. - gcry_md_register REMOVED. - gcry_md_unregister REMOVED. - gcry_md_list REMOVED. - gcry_md_start_debug REMOVED (macro). - gcry_md_stop_debug REMOVED (macro). - GCRYCTL_SET_KEY REMOVED. - GCRYCTL_SET_IV REMOVED. - GCRYCTL_SET_CTR REMOVED. - GCRYCTL_DISABLE_ALGO CHANGED: Not anymore thread-safe. - gcry_pk_genkey CHANGED: ECC curve params not returned. - gcry_md_hash_buffers NEW. - gcry_buffer_t NEW. - GCRYCTL_SET_ENFORCED_FIPS_FLAG NEW. - GCRYCTL_SET_PREFERRED_RNG_TYPE NEW. - GCRYCTL_GET_CURRENT_RNG_TYPE NEW. - GCRYCTL_CLOSE_RANDOM_DEVICE NEW. - GCRY_RNG_TYPE_STANDARD NEW. - GCRY_RNG_TYPE_FIPS NEW. - GCRY_RNG_TYPE_SYSTEM NEW. - gcry_mpi_is_neg NEW. - gcry_mpi_neg NEW. - gcry_mpi_abs NEW. - gcry_mpi_snatch NEW. - gcry_mpi_set_opaque_copy NEW. - gcry_mpi_point_t NEW. - gcry_mpi_point_new NEW. - gcry_mpi_point_release NEW. - gcry_mpi_point_get NEW. - gcry_mpi_point_snatch_get NEW. - gcry_mpi_point_set NEW. - gcry_mpi_point_snatch_set NEW. - gcry_ctx_t NEW. - gcry_ctx_release NEW. - gcry_mpi_ec_new NEW. - gcry_mpi_ec_get_mpi NEW. - gcry_mpi_ec_get_point NEW. - gcry_mpi_ec_set_mpi NEW. - gcry_mpi_ec_set_point NEW. - gcry_mpi_ec_get_affine NEW. - gcry_mpi_ec_dup NEW. - gcry_mpi_ec_add NEW. - gcry_mpi_ec_mul NEW. - gcry_mpi_ec_curve_point NEW. - GCRYMPI_FLAG_IMMUTABLE NEW. - GCRYMPI_FLAG_CONST NEW. - GCRYMPI_FLAG_USER1 NEW. - GCRYMPI_FLAG_USER2 NEW. - GCRYMPI_FLAG_USER3 NEW. - GCRYMPI_FLAG_USER4 NEW. - GCRYMPI_CONST_ONE NEW. - GCRYMPI_CONST_TWO NEW. - GCRYMPI_CONST_THREE NEW. - GCRYMPI_CONST_FOUR NEW. - GCRYMPI_CONST_EIGHT NEW. - GCRYMPI_FMT_OPAQUE NEW. - GCRYPT_VERSION_NUMBER NEW. - GCRY_KDF_SCRYPT NEW. - gcry_pubkey_get_sexp NEW. - GCRYCTL_DISABLE_LOCKED_SECMEM NEW. - GCRYCTL_DISABLE_PRIV_DROP NEW. - GCRY_CIPHER_SALSA20 NEW. - gcry_sexp_nth_buffer NEW. - gcry_sexp_extract_param NEW. - GCRY_CIPHER_SALSA20R12 NEW. - GCRY_CIPHER_GOST28147 NEW. - GCRY_MD_GOSTR3411_94 NEW. - GCRY_MD_STRIBOG256 NEW. - GCRY_MD_STRIBOG512 NEW. - GCRY_PK_ECC NEW. - gcry_log_debug NEW. - gcry_log_debughex NEW. - gcry_log_debugmpi NEW. - gcry_log_debugpnt NEW. - - Noteworthy changes in version 1.5.0 (2011-06-29) ------------------------------------------------ @@ -831,7 +665,6 @@ Noteworthy changes in version 1.1.3 (2001-05-31) Copyright 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. -Copyright 2013 g10 Code GmbH This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without diff --git a/README b/README index 25ed18a..a3abfa1 100644 --- a/README +++ b/README @@ -1,14 +1,18 @@ Libgcrypt - The GNU Crypto Library ------------------------------------ - Version 1.6 + Version 1.5 - Copyright (C) 1989,1991-2012 Free Software Foundation, Inc. - Copyright (C) 2012-2014 g10 Code GmbH - Copyright (C) 2013-2014 Jussi Kivilinna + Copyright 2000, 2002, 2003, 2004, 2007, 2008, 2009, + 2011 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. - Libgcrypt is free software. See the file AUTHORS for full copying - notices, and LICENSES for notices about contributions that require - these additional notices to be distributed. Overview @@ -35,7 +39,7 @@ You should get the latest versions of course. After building and installing the libgpg-error package, you may - continue with Libgcrypt installation as with allmost all GNU + continue with Libgcrypt installation As with allmost all GNU packages, you just have to do ./configure @@ -82,10 +86,6 @@ Here is a list of configure options which are sometimes useful for installation. - --enable-large-data-tests - With this option a "make check" will take really - long due to extra checks for the hash algorithms. - --enable-m-guard Enable the integrated malloc checking code. Please note that this feature does not work on all CPUs @@ -239,8 +239,7 @@ actual terms. The helper programs (e.g. gcryptrnd and getrandom) as well as the documentation are distributed under the terms of the GNU General Public License (GPL); see the file COPYING for the - actual terms. The file LICENSES has notices about contributions - that require these additional notices are distributed. + actual terms. This library used to be available under the GPL - this was changed with version 1.1.7 with the rationale that there are now many free @@ -266,14 +265,6 @@ Commercial grade support for Libgcrypt is available; please see http://www.gnupg.org/service.html . - Commercial grade support for Libgcrypt is available; for a listing - of offers see http://www.gnupg.org/service.html . The driving - force behind the development of Libgcrypt is the company of its - principal author, Werner Koch. Maintenance and improvement of - Libgcrypt takes up a lot resources. To allow him to continue his - work, he asks to either purchase a support contract, engage them - for custom enhancements, or to donate money. See http://g10code.com . - This file is Free Software; as a special exception the authors gives unlimited permission to copy and/or distribute it, with or without diff --git a/README.GIT b/README.SVN similarity index 82% rename from README.GIT rename to README.SVN index ee2c638..ae17923 100644 --- a/README.GIT +++ b/README.SVN @@ -1,11 +1,9 @@ -If you are building from GIT, run the script +If you are building from CVS, run the script ./autogen.sh first, to make sure that you have all the necessary maintainer tools -are installed and to build the actual configuration files. If you -have just checked out from GIT, you should add the option "--force" to -autogen.sh so that meta data is noticed by autom4te.cache. Then run +are installed and to build the actual configuration files. Then run ./configure --enable-maintainer-mode @@ -16,7 +14,7 @@ tools, or the tools are not installed, you may use environment variables to override the default tool names: AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake - package. For example + package. For example AUTOMAKE_SUFFIX="-1.7" ./autogen.sh uses "automake-1.7" and "aclocal-1.7. AUTOMAKE_PREFIX is used as a prefix for all tools from the automake @@ -37,13 +35,17 @@ It is also possible to use the variable name AUTOMAKE, AUTOCONF, ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name of the programs to run. It is however better to use the suffix and prefix forms as described above because that does not require -knowledge about the actual tools used by autogen.sh. +knowledge about the actual tools used by autgen.sh. Please don't use autopoint, libtoolize or autoreconf unless you are the current maintainer and want to update the standard configuration -files. All those files should be in GIT and only updated manually +files. All those files should be in the CVS and only updated manually if the maintainer decides that newer versions are required. The maintainer should also make sure that the required version of automake et al. are properly indicated at the top of configure.ac and take care to copy the files and not merely use symlinks. + + + + diff --git a/THANKS b/THANKS index 6a44ead..41f4c77 100644 --- a/THANKS +++ b/THANKS @@ -130,12 +130,10 @@ Stephan Müller smueller at atsec com Stephane Corthesy stephane@sente.ch Stefan Karrmann S.Karrmann@gmx.net Stefan Keller dres@cs.tu-berlin.de -Stefan Krüger stadtkind2 at gmx de Steffen Ullrich ccrlphr@xensei.com Steffen Zahn zahn@berlin.snafu.de Steven Bakker steven@icoe.att.com Susanne Schultz schultz@hsp.de -Sven Bjorn Szakats Istvan szaki.ms@gmail.com Thiago Jung Bauermann jungmann@cwb.matrix.com.br Thomas Roessler roessler@guug.de diff --git a/VERSION b/VERSION index 9c6d629..bc80560 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6.1 +1.5.0 diff --git a/acinclude.m4 b/acinclude.m4 index fdb2d17..e69291a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,7 +1,6 @@ dnl macros to configure Libgcrypt dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, dnl 2003 Free Software Foundation, Inc. -dnl Copyright (C) 2013 g10 Code GmbH dnl dnl This file is part of Libgcrypt. dnl @@ -19,43 +18,13 @@ dnl You should have received a copy of the GNU Lesser General Public dnl License along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -dnl GCRY_MSG_SHOW(PREFIX,STRING) -dnl Print a message with a prefix. +dnl GNUPG_MSG_PRINT(STRING) +dnl print a message dnl -define([GCRY_MSG_SHOW], - [ - echo " $1 $2" 1>&AS_MESSAGE_FD([]) - ]) - -dnl GCRY_MSG_WRAP(PREFIX, ALGOLIST) -dnl Print a nicely formatted list of algorithms -dnl with an approriate line wrap. -dnl -define([GCRY_MSG_WRAP], - [ - tmp=" $1" - tmpi="abc" - if test "${#tmpi}" -ne 3 >/dev/null 2>&1 ; then - dnl Without a POSIX shell, we don't botter to wrap it - echo "$tmp $2" 1>&AS_MESSAGE_FD([]) - else - tmpi=`echo "$tmp"| sed 's/./ /g'` - echo $2 EOF | tr ' ' '\n' | \ - while read word; do - if test "${#tmp}" -gt 70 ; then - echo "$tmp" 1>&AS_MESSAGE_FD([]) - tmp="$tmpi" - fi - if test "$word" = "EOF" ; then - echo "$tmp" 1>&AS_MESSAGE_FD([]) - else - tmp="$tmp $word" - fi - done - fi +define([GNUPG_MSG_PRINT], + [ echo $ac_n "$1"" $ac_c" 1>&AS_MESSAGE_FD([]) ]) - dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME) dnl Check whether a typedef exists and create a #define $2 if it exists dnl diff --git a/aclocal.m4 b/aclocal.m4 index 1ef2244..e409c1f 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,8 +1,7 @@ -# generated automatically by aclocal 1.11.6 -*- Autoconf -*- +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, -# Inc. +# 2005, 2006, 2007, 2008, 2009 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. @@ -14,21 +13,18 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, +[m4_warning([this file was generated for autoconf 2.64. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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 1 - # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been @@ -38,7 +34,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.6], [], +m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -54,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.6])dnl +[AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -83,14 +79,12 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 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 1 - # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. @@ -172,14 +166,14 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, -# 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# 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 12 +# serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -219,7 +213,6 @@ AC_CACHE_CHECK([dependency style of $depcc], # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. - rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. @@ -284,7 +277,7 @@ AC_CACHE_CHECK([dependency style of $depcc], break fi ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) + msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. @@ -349,13 +342,10 @@ AC_DEFUN([AM_DEP_TRACK], if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' - am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -438,6 +428,18 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [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, @@ -577,15 +579,12 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2001, 2003, 2005, 2008 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 1 - # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. @@ -625,8 +624,8 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -646,7 +645,7 @@ AC_DEFUN([AM_MAINTAINER_MODE], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful @@ -792,15 +791,12 @@ else fi ]) -# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, -# Inc. +# Copyright (C) 2003, 2004, 2005, 2006 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 1 - # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. @@ -823,14 +819,13 @@ esac # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008 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 5 +# serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -838,13 +833,13 @@ AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) -# -------------------- +# ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) -# ------------------------ +# ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) @@ -920,71 +915,12 @@ Check your system clock]) fi AC_MSG_RESULT(yes)]) -# Copyright (C) 2009, 2011 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 2 - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few `make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using `$V' instead of `$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# Copyright (C) 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 1 - # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't @@ -1007,13 +943,13 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. +# Copyright (C) 2006, 2008 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 3 +# serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- @@ -1022,13 +958,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- +# --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1050,11 +986,10 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) @@ -1125,7 +1060,6 @@ AC_SUBST([am__untar]) m4_include([m4/gpg-error.m4]) m4_include([m4/libtool.m4]) -m4_include([m4/lock.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) @@ -1134,5 +1068,4 @@ m4_include([m4/noexecstack.m4]) m4_include([m4/onceonly.m4]) m4_include([m4/socklen.m4]) m4_include([m4/sys_socket_h.m4]) -m4_include([m4/threadlib.m4]) m4_include([acinclude.m4]) diff --git a/autogen.rc b/autogen.rc deleted file mode 100644 index 09a9b9c..0000000 --- a/autogen.rc +++ /dev/null @@ -1,17 +0,0 @@ -# autogen.sh configuration for Libgcrypt -*- sh -*- - -case "$myhost" in - w32) - configure_opts=" - --with-gpg-error-prefix=@SYSROOT@ - " - ;; - - amd64) - configure_opts=" - --with-gpg-error-prefix=@SYSROOT@ - " - ;; -esac - -final_info="./configure --enable-maintainer-mode && make" diff --git a/autogen.sh b/autogen.sh index 471193c..d9a6586 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,6 +1,7 @@ #! /bin/sh -# autogen.sh -# Copyright (C) 2003, 2014 g10 Code GmbH +# Run this to generate all the initial makefiles, etc. +# +# Copyright (C) 2003 g10 Code GmbH # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without @@ -9,13 +10,6 @@ # This program 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. -# -# This is a generic script to create the configure script and handle cross -# build environments. It requires the presence of a autogen.rc file to -# configure it for the respective package. It is maintained as part of -# GnuPG and source copied by other packages. -# -# Version: 2014-01-10 configure_ac="configure.ac" @@ -24,7 +18,7 @@ cvtver () { } check_version () { - if [ $(( `("$1" --version || echo "0") | cvtver` >= $2 )) = 1 ]; then + if [ `("$1" --version || echo "0") | cvtver` -ge "$2" ]; then return 0 fi echo "**Error**: "\`$1\'" not installed or too old." >&2 @@ -34,176 +28,79 @@ check_version () { return 1 } -fatal () { - echo "autogen.sh:" "$*" >&2 - DIE=yes -} - -info () { - if [ -z "${SILENT}" ]; then - echo "autogen.sh:" "$*" - fi -} - -die_p () { - if [ "$DIE" = "yes" ]; then - echo "autogen.sh: Stop." >&2 - exit 1 - fi -} - -replace_sysroot () { - configure_opts=$(echo $configure_opts | sed "s#@SYSROOT@#${w32root}#g") - extraoptions=$(echo $extraoptions | sed "s#@SYSROOT@#${w32root}#g") -} - -# Allow to override the default tool names -AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX} -AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX} - -AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX} -ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX} - -GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX} -MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX} DIE=no FORCE= -SILENT= -tmp=$(dirname "$0") -tsdir=$(cd "${tmp}"; pwd) - -if [ -n "${AUTOGEN_SH_SILENT}" ]; then - SILENT=" --silent" -fi -if test x"$1" = x"--help"; then - echo "usage: ./autogen.sh [--silent] [--force] [--build-TYPE] [ARGS]" - exit 0 -fi -if test x"$1" = x"--silent"; then - SILENT=" --silent" - shift -fi if test x"$1" = x"--force"; then FORCE=" --force" shift fi - -# Reject unsafe characters in $HOME, $tsdir and cwd. We consider spaces -# as unsafe because it is too easy to get scripts wrong in this regard. -am_lf=' -' -case `pwd` in - *[\;\\\"\#\$\&\'\`$am_lf\ \ ]*) - fatal "unsafe working directory name" ;; -esac -case $tsdir in - *[\;\\\"\#\$\&\'\`$am_lf\ \ ]*) - fatal "unsafe source directory: \`$tsdir'" ;; -esac -case $HOME in - *[\;\\\"\#\$\&\'\`$am_lf\ \ ]*) - fatal "unsafe home directory: \`$HOME'" ;; -esac -die_p - - -# List of variables sourced from autogen.rc. The strings '@SYSROOT@' in -# these variables are replaced by the actual system root. -configure_opts= -extraoptions= -# List of optional variables sourced from autogen.rc and ~/.gnupg-autogen.rc +# Begin list of optional variables sourced from ~/.gnupg-autogen.rc w32_toolprefixes= w32_extraoptions= w32ce_toolprefixes= w32ce_extraoptions= -w64_toolprefixes= -w64_extraoptions= amd64_toolprefixes= # End list of optional variables sourced from ~/.gnupg-autogen.rc # What follows are variables which are sourced but default to # environment variables or lacking them hardcoded values. #w32root= #w32ce_root= -#w64root= #amd64root= +if [ -f "$HOME/.gnupg-autogen.rc" ]; then + echo "sourcing extra definitions from $HOME/.gnupg-autogen.rc" + . "$HOME/.gnupg-autogen.rc" +fi + # Convenience option to use certain configure options for some hosts. myhost="" myhostsub="" case "$1" in --build-w32) myhost="w32" - shift ;; --build-w32ce) myhost="w32" myhostsub="ce" - shift - ;; - --build-w64) - myhost="w32" - myhostsub="64" - shift ;; --build-amd64) myhost="amd64" - shift ;; --build*) - fatal "**Error**: invalid build option $1" - shift + echo "**Error**: invalid build option $1" >&2 + exit 1 ;; - *) + *) ;; esac -die_p -# Source our configuration -if [ -f "${tsdir}/autogen.rc" ]; then - . "${tsdir}/autogen.rc" -fi - -# Source optional site specific configuration -if [ -f "$HOME/.gnupg-autogen.rc" ]; then - info "sourcing extra definitions from $HOME/.gnupg-autogen.rc" - . "$HOME/.gnupg-autogen.rc" -fi - -# ****************** -# W32 build script -# ****************** +# ***** W32 build script ******* +# Used to cross-compile for Windows. if [ "$myhost" = "w32" ]; then - if [ ! -f "$tsdir/build-aux/config.guess" ]; then - fatal "$tsdir/build-aux/config.guess not found" + tmp=`dirname $0` + tsdir=`cd "$tmp"; pwd` + shift + if [ ! -f $tsdir/config.guess ]; then + echo "$tsdir/config.guess not found" >&2 exit 1 fi - build=`$tsdir/build-aux/config.guess` + build=`$tsdir/config.guess` case $myhostsub in ce) w32root="$w32ce_root" [ -z "$w32root" ] && w32root="$HOME/w32ce_root" - toolprefixes="$w32ce_toolprefixes arm-mingw32ce" - extraoptions="$extraoptions $w32ce_extraoptions" - ;; - 64) - w32root="$w64root" - [ -z "$w32root" ] && w32root="$HOME/w64root" - toolprefixes="$w64_toolprefixes x86_64-w64-mingw32" - extraoptions="$extraoptions $w64_extraoptions" + toolprefixes="arm-mingw32ce" ;; *) [ -z "$w32root" ] && w32root="$HOME/w32root" - toolprefixes="$w32_toolprefixes i686-w64-mingw32 i586-mingw32msvc" - toolprefixes="$toolprefixes i386-mingw32msvc mingw32" - extraoptions="$extraoptions $w32_extraoptions" + toolprefixes="i586-mingw32msvc i386-mingw32msvc" ;; esac - info "Using $w32root as standard install directory" - replace_sysroot + echo "Using $w32root as standard install directory" >&2 # Locate the cross compiler crossbindir= @@ -215,49 +112,48 @@ if [ "$myhost" = "w32" ]; then fi done if [ -z "$crossbindir" ]; then - fatal "cross compiler kit not installed" - if [ -z "$myhostsub" ]; then - info "Under Debian GNU/Linux, you may install it using" - info " apt-get install mingw32 mingw32-runtime mingw32-binutils" + echo "Cross compiler kit not installed" >&2 + if [ -z "$sub" ]; then + echo "Under Debian GNU/Linux, you may install it using" >&2 + echo " apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2 fi - die_p + echo "Stop." >&2 + exit 1 fi if [ -f "$tsdir/config.log" ]; then if ! head $tsdir/config.log | grep "$host" >/dev/null; then - fatal "Please run a 'make distclean' first" - die_p + echo "Pease run a 'make distclean' first" >&2 + exit 1 fi fi - $tsdir/configure --enable-maintainer-mode ${SILENT} \ - --prefix=${w32root} \ - --host=${host} --build=${build} \ - ${configure_opts} ${extraoptions} "$@" - rc=$? - exit $rc + $tsdir/configure --enable-maintainer-mode --prefix=${w32root} \ + --host=${host} --build=${build} \ + --with-gpg-error-prefix=${w32root} + exit $? fi # ***** end W32 build script ******* + # ***** AMD64 cross build script ******* # Used to cross-compile for AMD64 (for testing) if [ "$myhost" = "amd64" ]; then + tmp=`dirname $0` + tsdir=`cd "$tmp"; pwd` shift - if [ ! -f $tsdir/build-aux/config.guess ]; then - echo "$tsdir/build-aux/config.guess not found" >&2 + if [ ! -f $tsdir/config.guess ]; then + echo "$tsdir/config.guess not found" >&2 exit 1 fi - build=`$tsdir/build-aux/config.guess` + build=`$tsdir/config.guess` [ -z "$amd64root" ] && amd64root="$HOME/amd64root" - info "Using $amd64root as standard install directory" - replace_sysroot - - toolprefixes="$amd64_toolprefixes x86_64-linux-gnu amd64-linux-gnu" + echo "Using $amd64root as standard install directory" >&2 # Locate the cross compiler crossbindir= - for host in $toolprefixes ; do + for host in x86_64-linux-gnu amd64-linux-gnu; do if ${host}-gcc --version >/dev/null 2>&1 ; then crossbindir=/usr/${host}/bin conf_CC="CC=${host}-gcc" @@ -277,16 +173,15 @@ if [ "$myhost" = "amd64" ]; then fi fi - $tsdir/configure --enable-maintainer-mode ${SILENT} \ - --prefix=${amd64root} \ + $tsdir/configure --enable-maintainer-mode --prefix=${amd64root} \ --host=${host} --build=${build} \ - ${configure_opts} ${extraoptions} "$@" + --with-gpg-error-prefix=${amd64root} + rc=$? exit $rc fi # ***** end AMD64 cross build script ******* - # Grep the required versions from configure.ac autoconf_vers=`sed -n '/^AC_PREREQ(/ { s/^.*(\(.*\))/\1/p @@ -300,22 +195,29 @@ q }' ${configure_ac}` automake_vers_num=`echo "$automake_vers" | cvtver` -if [ -d "${tsdir}/po" ]; then - gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ { -s/^.*\[\(.*\)])/\1/p -q -}' ${configure_ac}` - gettext_vers_num=`echo "$gettext_vers" | cvtver` -else - gettext_vers="n/a" -fi +#gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ { +#s/^.*(\(.*\))/\1/p +#q +#}' ${configure_ac}` +#gettext_vers_num=`echo "$gettext_vers" | cvtver` -if [ -z "$autoconf_vers" -o -z "$automake_vers" -o -z "$gettext_vers" ] + +if [ -z "$autoconf_vers" -o -z "$automake_vers" ] then echo "**Error**: version information not found in "\`${configure_ac}\'"." >&2 exit 1 fi +# Allow to override the default tool names +AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX} +AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX} + +AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX} +ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX} + +#GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX} +#MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX} + if check_version $AUTOCONF $autoconf_vers_num $autoconf_vers ; then check_version $AUTOHEADER $autoconf_vers_num $autoconf_vers autoconf @@ -323,71 +225,45 @@ fi if check_version $AUTOMAKE $automake_vers_num $automake_vers; then check_version $ACLOCAL $automake_vers_num $autoconf_vers automake fi -if [ "$gettext_vers" != "n/a" ]; then - if check_version $GETTEXT $gettext_vers_num $gettext_vers; then - check_version $MSGMERGE $gettext_vers_num $gettext_vers gettext - fi -fi +#if check_version $GETTEXT $gettext_vers_num $gettext_vers; then +# check_version $MSGMERGE $gettext_vers_num $gettext_vers gettext +#fi -if [ "$DIE" = "yes" ]; then +if test "$DIE" = "yes"; then cat <&2 *** Activating trailing whitespace git pre-commit hook. *** For more information see this thread: http://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00084html To deactivate this pre-commit hook again move .git/hooks/pre-commit and .git/hooks/pre-commit.sample out of the way. EOF - $CP .git/hooks/pre-commit.sample .git/hooks/pre-commit - chmod +x .git/hooks/pre-commit - fi - - if [ "$gettext_vers" != "n/a" ]; then - tmp=$(git config --get filter.cleanpo.clean) - if [ "$tmp" != \ - "awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'" ] - then - info "*** Adding GIT filter.cleanpo.clean configuration." - git config --add filter.cleanpo.clean \ - "awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'" - fi - fi - if [ -f build-aux/git-hooks/commit-msg -a ! -f .git/hooks/commit-msg ] ; then - [ -z "${SILENT}" ] && cat < - - NB: ChangeLog files are no longer manually maintained. Starting - on December 1st, 2011 we put change information only in the GIT - commit log, and generate a top-level ChangeLog file from logs at - "make dist". See doc/HACKING for details. - -2003-12-08 Werner Koch - - * autogen.sh, config.sub, install-sh, mkinstalldirs, config.guess, - * missing: Removed - -2003-10-31 Werner Koch - - * autogen.sh: Allow to override the tool name. Do not run - libtoolize. Update required version numbers. - -2003-07-30 Werner Koch - - * config.guess, config.sub: Updated from ftp.gnu.org/gnu/config/ - -2003-07-07 Moritz Schulte - - * autogen.sh: Undo last change. - * autogen.sh: Remove -a argument for automake. - -2003-03-06 Moritz Schulte - - * autogen.sh (run): New function. - Let automake run with -a for adding missing files automatically - -2002-11-12 Werner Koch - - * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config - to version 2002-11-08. - -2002-05-14 Werner Koch - - * autogen.sh: Require version 2.53 of autoconf - -2001-12-18 Werner Koch - - * distfiles: Remove files which are automatically added by automake. - -2001-08-06 Werner Koch - - * autogen.sh: Added --build-w32 option. - -2001-05-28 Werner Koch - - * db2html.in: Removed. - * db2any: New. Taken from GPH - -Mon Jul 17 16:35:47 CEST 2000 Werner Koch - - * config.gues, config.sub: Support for s390-ibm-linux-gnu; thanks - to Holger Smolinski. Add support for QNX; by Sam Roberts. - -Tue Oct 26 14:10:21 CEST 1999 Werner Koch - - * commit: Remove leading and trailing empty lines when copying - Changes to Changelog - -Wed Sep 15 16:22:17 CEST 1999 Werner Koch - - * gnupg.spec: Add Portuguese description - -Thu Sep 2 16:40:55 CEST 1999 Werner Koch - - * mkdiff: changed format of diff file name and made script more - general. - -Wed Aug 4 10:34:18 CEST 1999 Werner Koch - - * config.guess: Updated from gnu/common and applied my emx patch again. - * config.sub: Updated from gnu/common. - -Wed Jul 14 19:42:08 CEST 1999 Werner Koch - - * ltmain.sh, ltconfig.sh : Updated to libtool 1.3.3 - -Mon Jul 12 14:55:34 CEST 1999 Werner Koch - - * autogen.sh: Run libtoolize - -Sat May 22 22:47:26 CEST 1999 Werner Koch - - * autogen.sh: Fixed the error message for a missing libtool. - -Sat May 8 19:28:08 CEST 1999 Werner Koch - - * mkinstalldirs, install-sh: New from GNU repository - * config.sub, config.guess: Merged with rep version. - -Sun Mar 14 19:34:36 CET 1999 Werner Koch - - * autogen.sh: Add a check for libtool because some autoconf macros - are needed. - -Mon Feb 22 20:04:00 CET 1999 Werner Koch - - * autogen.sh: Enhanced the version testing code (Philippe Laliberte) - - * mkwebpage: Edits the buglist. - -Sat Feb 13 12:04:43 CET 1999 Werner Koch - - * autogen.sh: Now uses gettextize - -Wed Feb 10 17:15:39 CET 1999 Werner Koch - - * config.sub, config.guess: Support i386-emx-os2 - -Sun Jan 17 11:04:33 CET 1999 Werner Koch - - * autogen.sh: Now checks for installed gettext - -Sat Jan 16 09:27:30 CET 1999 Werner Koch - - * config.guess (m68k-atari-mint): New. - * config.sub: Add support for atarist-MiNT - -Wed Jan 13 12:49:36 CET 1999 Werner Koch - - * gnupg.spec.in: New - * gnupg.spec: Removed - -Wed Dec 23 13:18:14 CET 1998 Werner Koch - - * gnupg.spec: Updated version by Fabio Coatti - -Thu Dec 17 18:31:15 CET 1998 Werner Koch - - * gnupg.spec: New version by Reuben Sumner and did some more - changes. - -Fri Nov 27 12:39:29 CET 1998 Werner Koch - - - * commit: New - - -Fri Nov 20 12:01:57 1998 Werner Koch (wk@isil.d.shuttle.de) - - * mkdiff: signs the patch file - -Sat Oct 17 16:10:16 1998 Werner Koch (wk@isil.d.shuttle.de) - - * autogen.sh: New. - -Wed Oct 14 09:55:25 1998 Werner Koch (wk@isil.d.shuttle.de) - - * config.guess (FreeBSD): Changes from Jun Kuriyama to support ELF - * config.sub: (freebsd): Add to maybe_os - - - Copyright 1998,1999,2000,2001,2002 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. - -Local Variables: -buffer-read-only: t -End: diff --git a/build-aux/git-log-fix b/build-aux/git-log-fix deleted file mode 100644 index 3e3fd95..0000000 --- a/build-aux/git-log-fix +++ /dev/null @@ -1,14 +0,0 @@ -# This file is expected to be used via gitlog-to-changelog's --amend=FILE -# option. It specifies what changes to make to each given SHA1's commit -# log and metadata, using Perl-eval'able expressions. - -eb4937914db3fb7317502e97e4f0e40c1857f59d -# Fix bad formatted entry dated 2013-05-20 -s/(?s)mpi_sub.*$/cipher: Fix segv in last ECC change. -* cipher\/ecc.c (generate_key): Make sure R is initialized./ - -296f38a2bd2e25788643a42e4881faed00884a40 -# Fix bad formatted entry dated 2013-05-09 -s/(?s)Generate ECC.*$/cipher: Generate compliant ECC keys. -* cipher\/ecc.c (generate_key): Make sure a key is compliant for -using the compact representation./ diff --git a/build-aux/git-log-footer b/build-aux/git-log-footer deleted file mode 100644 index c31fe93..0000000 --- a/build-aux/git-log-footer +++ /dev/null @@ -1,14 +0,0 @@ - -2011-12-01 Werner Koch - - NB: Changes done before December 1st, 2011 are described in - per directory files named ChangeLog-2011. See doc/HACKING for - details. - - ----- - Copyright (C) 2011 Free Software Foundation, Inc. - - Copying and distribution of this file and/or the original GIT - commit log messages, with or without modification, are - permitted provided the copyright notice and this notice are - preserved. diff --git a/cipher/ChangeLog-2011 b/cipher/ChangeLog similarity index 99% rename from cipher/ChangeLog-2011 rename to cipher/ChangeLog index 1ce6bd1..16632f0 100644 --- a/cipher/ChangeLog-2011 +++ b/cipher/ChangeLog @@ -1,43 +1,3 @@ -2011-12-01 Werner Koch - - NB: ChangeLog files are no longer manually maintained. Starting - on December 1st, 2011 we put change information only in the GIT - commit log, and generate a top-level ChangeLog file from logs at - "make dist". See doc/HACKING for details. - -2011-09-16 Werner Koch - - * primegen.c (_gcry_primegen_init): New. - -2011-09-15 Werner Koch - - * cipher-cbc.c, cipher-cfb.c, cipher-ofb.c, cipher-ctr.c: New. - * cipher-aeswrap.c: New. - * cipher-internal.h: New. - * cipher.c (cipher_context_alignment_t, struct gcry_cipher_handle) - (CTX_MAGIC_NORMAL, CTX_MAGIC_SECURE, NEED_16BYTE_ALIGNED_CONTEXT) - (MAX_BLOCKSIZE): Move to cipher-internal.h. - (do_aeswrap_encrypt, do_aeswrap_encrypt) - (do_cbc_encrypt, do_cbc_decrypt, do_ctr_encrypt, do_ctr_decrypt) - (do_ofb_encrypt, do_ofb_decrypt, do_ctr_encrypt): Move to the - respective new cipher-foo.c files. - (do_ctr_decrypt): Remove. - -2011-09-15 Werner Koch - - * pubkey.c (gcry_pk_list): Remove. - (gcry_pk_unregister): Remove. - * md.c (gcry_md_list): Remove. - (gcry_md_unregister): Remove. - * cipher.c (gcry_cipher_list): Remove. - (gcry_cipher_unregister): Remove. - * ac.c: Remove. - -2011-06-29 Werner Koch - - * cipher.c (cipher_get_keylen): Return zero for an invalid algorithm. - (cipher_get_blocksize): Ditto. - 2011-06-13 Werner Koch * dsa.c (selftest_sign_1024): Use the raw and not the pkcs1 flag. @@ -3459,7 +3419,7 @@ 2000-12-19 Werner Koch - Major change: + Major change: Removed all GnuPG stuff and renamed this piece of software to gcrypt. @@ -4273,7 +4233,3 @@ Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de) 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. - -Local Variables: -buffer-read-only: t -End: diff --git a/cipher/Makefile.am b/cipher/Makefile.am index 0a62d3c..cbeace8 100644 --- a/cipher/Makefile.am +++ b/cipher/Makefile.am @@ -26,71 +26,49 @@ EXTRA_DIST = Manifest AM_CPPFLAGS = -I../src -I$(top_srcdir)/src AM_CFLAGS = $(GPG_ERROR_CFLAGS) -AM_CCASFLAGS = $(NOEXECSTACK_FLAGS) - noinst_LTLIBRARIES = libcipher.la -GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ \ - @GCRYPT_DIGESTS@ @GCRYPT_KDFS@ +GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ @GCRYPT_DIGESTS@ libcipher_la_DEPENDENCIES = $(GCRYPT_MODULES) libcipher_la_LIBADD = $(GCRYPT_MODULES) libcipher_la_SOURCES = \ -cipher.c cipher-internal.h \ -cipher-cbc.c cipher-cfb.c cipher-ofb.c cipher-ctr.c cipher-aeswrap.c \ -cipher-ccm.c cipher-cmac.c cipher-gcm.c \ -cipher-selftest.c cipher-selftest.h \ -pubkey.c pubkey-internal.h pubkey-util.c \ -md.c \ -mac.c mac-internal.h \ -mac-hmac.c mac-cmac.c mac-gmac.c \ -kdf.c kdf-internal.h \ +cipher.c pubkey.c ac.c md.c kdf.c \ hmac-tests.c \ bithelp.h \ -bufhelp.h \ primegen.c \ hash-common.c hash-common.h \ -dsa-common.c rsa-common.c \ rmd.h EXTRA_libcipher_la_SOURCES = \ arcfour.c \ -blowfish.c blowfish-amd64.S blowfish-arm.S \ -cast5.c cast5-amd64.S cast5-arm.S \ +blowfish.c \ +cast5.c \ crc.c \ des.c \ dsa.c \ elgamal.c \ -ecc.c ecc-curves.c ecc-misc.c ecc-common.h \ -ecc-ecdsa.c ecc-eddsa.c ecc-gost.c \ -idea.c \ -gost28147.c gost.h \ -gostr3411-94.c \ +ecc.c \ md4.c \ md5.c \ -rijndael.c rijndael-tables.h rijndael-amd64.S rijndael-arm.S \ +rijndael.c rijndael-tables.h \ rmd160.c \ rsa.c \ -salsa20.c salsa20-amd64.S salsa20-armv7-neon.S \ -scrypt.c \ seed.c \ -serpent.c serpent-sse2-amd64.S serpent-avx2-amd64.S serpent-armv7-neon.S \ -sha1.c sha1-ssse3-amd64.S \ -sha256.c sha256-ssse3-amd64.S \ -sha512.c sha512-ssse3-amd64.S sha512-avx-amd64.S sha512-avx2-bmi2-amd64.S \ - sha512-armv7-neon.S \ -stribog.c \ +serpent.c \ +sha1.c \ +sha256.c \ +sha512.c \ tiger.c \ whirlpool.c \ -twofish.c twofish-amd64.S twofish-arm.S \ +twofish.c \ rfc2268.c \ -camellia.c camellia.h camellia-glue.c camellia-aesni-avx-amd64.S \ - camellia-aesni-avx2-amd64.S camellia-arm.S +camellia.c camellia.h camellia-glue.c if ENABLE_O_FLAG_MUNGING -o_flag_munging = sed -e 's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g' +o_flag_munging = sed -e 's/-O[2-9s]*/-O1/g' else o_flag_munging = cat endif diff --git a/cipher/Makefile.in b/cipher/Makefile.in index e9f20b0..d935dbe 100644 --- a/cipher/Makefile.in +++ b/cipher/Makefile.in @@ -1,9 +1,9 @@ -# Makefile.in generated by automake 1.11.6 from Makefile.am. +# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. # This Makefile.in 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. @@ -37,23 +37,6 @@ # Process this file with automake to produce Makefile.in VPATH = @srcdir@ -am__make_dryrun = \ - { \ - am__dry=no; \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ - | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ - *) \ - for am__flg in $$MAKEFLAGS; do \ - case $$am__flg in \ - *=*|--*) ;; \ - *n*) am__dry=yes; break;; \ - esac; \ - done;; \ - esac; \ - test $$am__dry = yes; \ - } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -73,82 +56,46 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = cipher -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gpg-error.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/noexecstack.m4 $(top_srcdir)/m4/onceonly.m4 \ $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sys_socket_h.m4 \ - $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = -am_libcipher_la_OBJECTS = cipher.lo cipher-cbc.lo cipher-cfb.lo \ - cipher-ofb.lo cipher-ctr.lo cipher-aeswrap.lo cipher-ccm.lo \ - cipher-cmac.lo cipher-gcm.lo cipher-selftest.lo pubkey.lo \ - pubkey-util.lo md.lo mac.lo mac-hmac.lo mac-cmac.lo \ - mac-gmac.lo kdf.lo hmac-tests.lo primegen.lo hash-common.lo \ - dsa-common.lo rsa-common.lo +am_libcipher_la_OBJECTS = cipher.lo pubkey.lo ac.lo md.lo kdf.lo \ + hmac-tests.lo primegen.lo hash-common.lo libcipher_la_OBJECTS = $(am_libcipher_la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f -CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CCASFLAGS) $(CCASFLAGS) -AM_V_CPPAS = $(am__v_CPPAS_@AM_V@) -am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@) -am__v_CPPAS_0 = @echo " CPPAS " $@; -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_@AM_V@) -am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) -am__v_CC_0 = @echo " CC " $@; +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_@AM_V@) -am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ SOURCES = $(libcipher_la_SOURCES) $(EXTRA_libcipher_la_SOURCES) DIST_SOURCES = $(libcipher_la_SOURCES) $(EXTRA_libcipher_la_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ @@ -163,7 +110,6 @@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ -CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -183,8 +129,6 @@ FALLBACK_SOCKLEN_T = @FALLBACK_SOCKLEN_T@ FGREP = @FGREP@ GCRYPT_CIPHERS = @GCRYPT_CIPHERS@ GCRYPT_DIGESTS = @GCRYPT_DIGESTS@ -GCRYPT_HWF_MODULES = @GCRYPT_HWF_MODULES@ -GCRYPT_KDFS = @GCRYPT_KDFS@ GCRYPT_PUBKEY_CIPHERS = @GCRYPT_PUBKEY_CIPHERS@ GCRYPT_RANDOM = @GCRYPT_RANDOM@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ @@ -210,19 +154,14 @@ LIBGCRYPT_LT_CURRENT = @LIBGCRYPT_LT_CURRENT@ LIBGCRYPT_LT_REVISION = @LIBGCRYPT_LT_REVISION@ LIBGCRYPT_PUBKEY_CIPHERS = @LIBGCRYPT_PUBKEY_CIPHERS@ LIBGCRYPT_THREAD_MODULES = @LIBGCRYPT_THREAD_MODULES@ -LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ -LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ -LTLIBTHREAD = @LTLIBTHREAD@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MPI_SFLAGS = @MPI_SFLAGS@ NM = @NM@ @@ -245,19 +184,16 @@ PTH_CONFIG = @PTH_CONFIG@ PTH_LIBS = @PTH_LIBS@ RANLIB = @RANLIB@ RC = @RC@ -RUN_LARGE_DATA_TESTS = @RUN_LARGE_DATA_TESTS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SYS_SOCKET_H = @SYS_SOCKET_H@ VERSION = @VERSION@ -VERSION_NUMBER = @VERSION_NUMBER@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ @@ -293,6 +229,7 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -314,71 +251,49 @@ EXTRA_DIST = Manifest # a built header. AM_CPPFLAGS = -I../src -I$(top_srcdir)/src AM_CFLAGS = $(GPG_ERROR_CFLAGS) -AM_CCASFLAGS = $(NOEXECSTACK_FLAGS) noinst_LTLIBRARIES = libcipher.la -GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ \ - @GCRYPT_DIGESTS@ @GCRYPT_KDFS@ - +GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ @GCRYPT_DIGESTS@ libcipher_la_DEPENDENCIES = $(GCRYPT_MODULES) libcipher_la_LIBADD = $(GCRYPT_MODULES) libcipher_la_SOURCES = \ -cipher.c cipher-internal.h \ -cipher-cbc.c cipher-cfb.c cipher-ofb.c cipher-ctr.c cipher-aeswrap.c \ -cipher-ccm.c cipher-cmac.c cipher-gcm.c \ -cipher-selftest.c cipher-selftest.h \ -pubkey.c pubkey-internal.h pubkey-util.c \ -md.c \ -mac.c mac-internal.h \ -mac-hmac.c mac-cmac.c mac-gmac.c \ -kdf.c kdf-internal.h \ +cipher.c pubkey.c ac.c md.c kdf.c \ hmac-tests.c \ bithelp.h \ -bufhelp.h \ primegen.c \ hash-common.c hash-common.h \ -dsa-common.c rsa-common.c \ rmd.h EXTRA_libcipher_la_SOURCES = \ arcfour.c \ -blowfish.c blowfish-amd64.S blowfish-arm.S \ -cast5.c cast5-amd64.S cast5-arm.S \ +blowfish.c \ +cast5.c \ crc.c \ des.c \ dsa.c \ elgamal.c \ -ecc.c ecc-curves.c ecc-misc.c ecc-common.h \ -ecc-ecdsa.c ecc-eddsa.c ecc-gost.c \ -idea.c \ -gost28147.c gost.h \ -gostr3411-94.c \ +ecc.c \ md4.c \ md5.c \ -rijndael.c rijndael-tables.h rijndael-amd64.S rijndael-arm.S \ +rijndael.c rijndael-tables.h \ rmd160.c \ rsa.c \ -salsa20.c salsa20-amd64.S salsa20-armv7-neon.S \ -scrypt.c \ seed.c \ -serpent.c serpent-sse2-amd64.S serpent-avx2-amd64.S serpent-armv7-neon.S \ -sha1.c sha1-ssse3-amd64.S \ -sha256.c sha256-ssse3-amd64.S \ -sha512.c sha512-ssse3-amd64.S sha512-avx-amd64.S sha512-avx2-bmi2-amd64.S \ - sha512-armv7-neon.S \ -stribog.c \ +serpent.c \ +sha1.c \ +sha256.c \ +sha512.c \ tiger.c \ whirlpool.c \ -twofish.c twofish-amd64.S twofish-arm.S \ +twofish.c \ rfc2268.c \ -camellia.c camellia.h camellia-glue.c camellia-aesni-avx-amd64.S \ - camellia-aesni-avx2-amd64.S camellia-arm.S +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][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g' +@ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 's/-O[2-9s]*/-O1/g' all: all-am .SUFFIXES: -.SUFFIXES: .S .c .lo .o .obj +.SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -418,8 +333,8 @@ clean-noinstLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done -libcipher.la: $(libcipher_la_OBJECTS) $(libcipher_la_DEPENDENCIES) $(EXTRA_libcipher_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(libcipher_la_OBJECTS) $(libcipher_la_LIBADD) $(LIBS) +libcipher.la: $(libcipher_la_OBJECTS) $(libcipher_la_DEPENDENCIES) + $(LINK) $(libcipher_la_OBJECTS) $(libcipher_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -427,128 +342,59 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ac.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arcfour.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blowfish-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blowfish-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blowfish.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camellia-aesni-avx-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camellia-aesni-avx2-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camellia-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camellia-glue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/camellia.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cast5-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cast5-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cast5.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-aeswrap.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-cbc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-ccm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-cfb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-cmac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-ctr.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-gcm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-ofb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher-selftest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/des.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsa-common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc-curves.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc-ecdsa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc-eddsa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc-gost.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc-misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elgamal.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gost28147.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gostr3411-94.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)/mac-cmac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac-gmac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac-hmac.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mac.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@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/primegen.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pubkey-util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pubkey.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc2268.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rijndael-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rijndael-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rijndael.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmd160.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsa-common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsa.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/salsa20-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/salsa20-armv7-neon.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/salsa20.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scrypt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seed.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serpent-armv7-neon.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serpent-avx2-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serpent-sse2-amd64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serpent.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1-ssse3-amd64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256-ssse3-amd64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512-armv7-neon.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512-avx-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512-avx2-bmi2-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512-ssse3-amd64.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stribog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tiger.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twofish-amd64.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twofish-arm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twofish.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/whirlpool.Plo@am__quote@ -.S.o: -@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $< - -.S.obj: -@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.S.lo: -@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(LTCPPASCOMPILE) -c -o $@ $< - .c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -652,15 +498,10 @@ install-am: all-am installcheck: installcheck-am install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: diff --git a/cipher/ac.c b/cipher/ac.c new file mode 100644 index 0000000..f5e946a --- /dev/null +++ b/cipher/ac.c @@ -0,0 +1,3301 @@ +/* ac.c - Alternative interface for asymmetric cryptography. + Copyright (C) 2003, 2004, 2005, 2006 + 2007, 2008 Free Software Foundation, Inc. + + This file is part of Libgcrypt. + + Libgcrypt is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser general Public License as + published by the Free Software Foundation; either version 2.1 of + the License, or (at your option) any later version. + + Libgcrypt 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this program; if not, see . + */ + +#include +#include +#include +#include +#include +#include + +#include "g10lib.h" +#include "cipher.h" +#include "mpi.h" + + + +/* At the moment the ac interface is a wrapper around the pk + interface, but this might change somewhen in the future, depending + on how many people prefer the ac interface. */ + +/* Mapping of flag numbers to the according strings as it is expected + for S-expressions. */ +static struct number_string +{ + int number; + const char *string; +} ac_flags[] = + { + { GCRY_AC_FLAG_NO_BLINDING, "no-blinding" }, + }; + +/* The positions in this list correspond to the values contained in + the gcry_ac_key_type_t enumeration list. */ +static const char *ac_key_identifiers[] = + { + "private-key", + "public-key" + }; + +/* These specifications are needed for key-pair generation; the caller + is allowed to pass additional, algorithm-specific `specs' to + gcry_ac_key_pair_generate. This list is used for decoding the + provided values according to the selected algorithm. */ +struct gcry_ac_key_generate_spec +{ + int algorithm; /* Algorithm for which this flag is + relevant. */ + const char *name; /* Name of this flag. */ + size_t offset; /* Offset in the cipher-specific spec + structure at which the MPI value + associated with this flag is to be + found. */ +} ac_key_generate_specs[] = + { + { GCRY_AC_RSA, "rsa-use-e", offsetof (gcry_ac_key_spec_rsa_t, e) }, + { 0 } + }; + +/* Handle structure. */ +struct gcry_ac_handle +{ + int algorithm; /* Algorithm ID associated with this + handle. */ + const char *algorithm_name; /* Name of the algorithm. */ + unsigned int flags; /* Flags, not used yet. */ + gcry_module_t module; /* Reference to the algorithm + module. */ +}; + +/* A named MPI value. */ +typedef struct gcry_ac_mpi +{ + char *name; /* Self-maintained copy of name. */ + gcry_mpi_t mpi; /* MPI value. */ + unsigned int flags; /* Flags. */ +} gcry_ac_mpi_t; + +/* A data set, that is simply a list of named MPI values. */ +struct gcry_ac_data +{ + gcry_ac_mpi_t *data; /* List of named values. */ + unsigned int data_n; /* Number of values in DATA. */ +}; + +/* A single key. */ +struct gcry_ac_key +{ + gcry_ac_data_t data; /* Data in native ac structure. */ + gcry_ac_key_type_t type; /* Type of the key. */ +}; + +/* A key pair. */ +struct gcry_ac_key_pair +{ + gcry_ac_key_t public; + gcry_ac_key_t secret; +}; + + + +/* + * Functions for working with data sets. + */ + +/* Creates a new, empty data set and store it in DATA. */ +gcry_error_t +_gcry_ac_data_new (gcry_ac_data_t *data) +{ + gcry_ac_data_t data_new; + gcry_error_t err; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + data_new = gcry_malloc (sizeof (*data_new)); + if (! data_new) + { + err = gcry_error_from_errno (errno); + goto out; + } + + data_new->data = NULL; + data_new->data_n = 0; + *data = data_new; + err = 0; + + out: + + return err; +} + +/* Destroys all the entries in DATA, but not DATA itself. */ +static void +ac_data_values_destroy (gcry_ac_data_t data) +{ + unsigned int i; + + for (i = 0; i < data->data_n; i++) + if (data->data[i].flags & GCRY_AC_FLAG_DEALLOC) + { + gcry_mpi_release (data->data[i].mpi); + gcry_free (data->data[i].name); + } +} + +/* Destroys the data set DATA. */ +void +_gcry_ac_data_destroy (gcry_ac_data_t data) +{ + if (data) + { + ac_data_values_destroy (data); + gcry_free (data->data); + gcry_free (data); + } +} + +/* This function creates a copy of the array of named MPIs DATA_MPIS, + which is of length DATA_MPIS_N; the copy is stored in + DATA_MPIS_CP. */ +static gcry_error_t +ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, + gcry_ac_mpi_t **data_mpis_cp) +{ + gcry_ac_mpi_t *data_mpis_new; + gcry_error_t err; + unsigned int i; + gcry_mpi_t mpi; + char *label; + + data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); + if (! data_mpis_new) + { + err = gcry_error_from_errno (errno); + goto out; + } + memset (data_mpis_new, 0, sizeof (*data_mpis_new) * data_mpis_n); + + err = 0; + for (i = 0; i < data_mpis_n; i++) + { + /* Copy values. */ + + label = gcry_strdup (data_mpis[i].name); + mpi = gcry_mpi_copy (data_mpis[i].mpi); + if (! (label && mpi)) + { + err = gcry_error_from_errno (errno); + gcry_mpi_release (mpi); + gcry_free (label); + break; + } + + data_mpis_new[i].flags = GCRY_AC_FLAG_DEALLOC; + data_mpis_new[i].name = label; + data_mpis_new[i].mpi = mpi; + } + if (err) + goto out; + + *data_mpis_cp = data_mpis_new; + err = 0; + + out: + + if (err) + if (data_mpis_new) + { + for (i = 0; i < data_mpis_n; i++) + { + gcry_mpi_release (data_mpis_new[i].mpi); + gcry_free (data_mpis_new[i].name); + } + gcry_free (data_mpis_new); + } + + return err; +} + +/* Create a copy of the data set DATA and store it in DATA_CP. */ +gcry_error_t +_gcry_ac_data_copy (gcry_ac_data_t *data_cp, gcry_ac_data_t data) +{ + gcry_ac_mpi_t *data_mpis = NULL; + gcry_ac_data_t data_new; + gcry_error_t err; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + /* Allocate data set. */ + data_new = gcry_malloc (sizeof (*data_new)); + if (! data_new) + { + err = gcry_error_from_errno (errno); + goto out; + } + + err = ac_data_mpi_copy (data->data, data->data_n, &data_mpis); + if (err) + goto out; + + data_new->data_n = data->data_n; + data_new->data = data_mpis; + *data_cp = data_new; + + out: + + if (err) + gcry_free (data_new); + + return err; +} + +/* Returns the number of named MPI values inside of the data set + DATA. */ +unsigned int +_gcry_ac_data_length (gcry_ac_data_t data) +{ + return data->data_n; +} + + +/* Add the value MPI to DATA with the label NAME. If FLAGS contains + GCRY_AC_FLAG_COPY, the data set will contain copies of NAME + and MPI. If FLAGS contains GCRY_AC_FLAG_DEALLOC or + GCRY_AC_FLAG_COPY, the values contained in the data set will + be deallocated when they are to be removed from the data set. */ +gcry_error_t +_gcry_ac_data_set (gcry_ac_data_t data, unsigned int flags, + const char *name, gcry_mpi_t mpi) +{ + gcry_error_t err; + gcry_mpi_t mpi_cp; + char *name_cp; + unsigned int i; + + name_cp = NULL; + mpi_cp = NULL; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + if (flags & ~(GCRY_AC_FLAG_DEALLOC | GCRY_AC_FLAG_COPY)) + { + err = gcry_error (GPG_ERR_INV_ARG); + goto out; + } + + if (flags & GCRY_AC_FLAG_COPY) + { + /* Create copies. */ + + flags |= GCRY_AC_FLAG_DEALLOC; + name_cp = gcry_strdup (name); + mpi_cp = gcry_mpi_copy (mpi); + if (! (name_cp && mpi_cp)) + { + err = gcry_error_from_errno (errno); + goto out; + } + } + + /* Search for existing entry. */ + for (i = 0; i < data->data_n; i++) + if (! strcmp (name, data->data[i].name)) + break; + if (i < data->data_n) + { + /* An entry for NAME does already exist. */ + if (data->data[i].flags & GCRY_AC_FLAG_DEALLOC) + { + gcry_mpi_release (data->data[i].mpi); + gcry_free (data->data[i].name); + } + } + else + { + /* Create a new entry. */ + + gcry_ac_mpi_t *ac_mpis; + + ac_mpis = gcry_realloc (data->data, + sizeof (*data->data) * (data->data_n + 1)); + if (! ac_mpis) + { + err = gcry_error_from_errno (errno); + goto out; + } + + if (data->data != ac_mpis) + data->data = ac_mpis; + data->data_n++; + } + + data->data[i].name = name_cp ? name_cp : ((char *) name); + data->data[i].mpi = mpi_cp ? mpi_cp : mpi; + data->data[i].flags = flags; + err = 0; + + out: + + if (err) + { + gcry_mpi_release (mpi_cp); + gcry_free (name_cp); + } + + return err; +} + +/* Stores the value labelled with NAME found in the data set DATA in + MPI. The returned MPI value will be released in case + gcry_ac_data_set is used to associate the label NAME with a + different MPI value. */ +gcry_error_t +_gcry_ac_data_get_name (gcry_ac_data_t data, unsigned int flags, + const char *name, gcry_mpi_t *mpi) +{ + gcry_mpi_t mpi_return; + gcry_error_t err; + unsigned int i; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + if (flags & ~(GCRY_AC_FLAG_COPY)) + { + err = gcry_error (GPG_ERR_INV_ARG); + goto out; + } + + for (i = 0; i < data->data_n; i++) + if (! strcmp (name, data->data[i].name)) + break; + if (i == data->data_n) + { + err = gcry_error (GPG_ERR_NOT_FOUND); + goto out; + } + + if (flags & GCRY_AC_FLAG_COPY) + { + mpi_return = gcry_mpi_copy (data->data[i].mpi); + if (! mpi_return) + { + err = gcry_error_from_errno (errno); /* FIXME? */ + goto out; + } + } + else + mpi_return = data->data[i].mpi; + + *mpi = mpi_return; + err = 0; + + out: + + return err; +} + +/* Stores in NAME and MPI the named MPI value contained in the data + set DATA with the index IDX. NAME or MPI may be NULL. The + returned MPI value will be released in case gcry_ac_data_set is + used to associate the label NAME with a different MPI value. */ +gcry_error_t +_gcry_ac_data_get_index (gcry_ac_data_t data, unsigned int flags, + unsigned int idx, + const char **name, gcry_mpi_t *mpi) +{ + gcry_error_t err; + gcry_mpi_t mpi_cp; + char *name_cp; + + name_cp = NULL; + mpi_cp = NULL; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + if (flags & ~(GCRY_AC_FLAG_COPY)) + { + err = gcry_error (GPG_ERR_INV_ARG); + goto out; + } + + if (idx >= data->data_n) + { + err = gcry_error (GPG_ERR_INV_ARG); + goto out; + } + + if (flags & GCRY_AC_FLAG_COPY) + { + /* Return copies to the user. */ + if (name) + { + name_cp = gcry_strdup (data->data[idx].name); + if (! name_cp) + { + err = gcry_error_from_errno (errno); + goto out; + } + } + if (mpi) + { + mpi_cp = gcry_mpi_copy (data->data[idx].mpi); + if (! mpi_cp) + { + err = gcry_error_from_errno (errno); + goto out; + } + } + } + + if (name) + *name = name_cp ? name_cp : data->data[idx].name; + if (mpi) + *mpi = mpi_cp ? mpi_cp : data->data[idx].mpi; + err = 0; + + out: + + if (err) + { + gcry_mpi_release (mpi_cp); + gcry_free (name_cp); + } + + return err; +} + +/* Convert the data set DATA into a new S-Expression, which is to be + stored in SEXP, according to the identifiers contained in + IDENTIFIERS. */ +gcry_error_t +_gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, + const char **identifiers) +{ + gcry_sexp_t sexp_new; + gcry_error_t err; + char *sexp_buffer; + size_t sexp_buffer_n; + size_t identifiers_n; + const char *label; + gcry_mpi_t mpi; + void **arg_list; + size_t data_n; + unsigned int i; + + sexp_buffer_n = 1; + sexp_buffer = NULL; + arg_list = NULL; + err = 0; + + if (fips_mode ()) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + /* Calculate size of S-expression representation. */ + + i = 0; + if (identifiers) + while (identifiers[i]) + { + /* For each identifier, we add "()". */ + sexp_buffer_n += 1 + strlen (identifiers[i]) + 1; + i++; + } + identifiers_n = i; + + if (! identifiers_n) + /* If there are NO identifiers, we still add surrounding braces so + that we have a list of named MPI value lists. Otherwise it + wouldn't be too much fun to process these lists. */ + sexp_buffer_n += 2; + + data_n = _gcry_ac_data_length (data); + for (i = 0; i < data_n; i++) + { + err = gcry_ac_data_get_index (data, 0, i, &label, NULL); + if (err) + break; + /* For each MPI we add "(