From: Laszlo Boszormenyi (GCS) Date: Sat, 12 Feb 2022 09:39:14 +0000 (+0000) Subject: Import libcrypto++_8.6.0-3.debian.tar.xz X-Git-Tag: archive/raspbian/8.7.0+git220824-1+rpi1~1^2~4^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=28f6fa90c65904044a4b0d9212be556cf0b02f16;p=libcrypto%2B%2B.git Import libcrypto++_8.6.0-3.debian.tar.xz [dgit import tarball libcrypto++ 8.6.0-3 libcrypto++_8.6.0-3.debian.tar.xz] --- 28f6fa90c65904044a4b0d9212be556cf0b02f16 diff --git a/changelog b/changelog new file mode 100644 index 0000000..1becf25 --- /dev/null +++ b/changelog @@ -0,0 +1,712 @@ +libcrypto++ (8.6.0-3) unstable; urgency=medium + + * Fix armhf FTBFS (closes: #1001995). + + -- Laszlo Boszormenyi (GCS) Sat, 12 Feb 2022 10:39:14 +0100 + +libcrypto++ (8.6.0-2) unstable; urgency=medium + + * Fix armel and armhf link breakage. + * Update Standards-Version to 4.6.0 . + + -- Laszlo Boszormenyi (GCS) Sat, 25 Sep 2021 19:44:37 +0200 + +libcrypto++ (8.6.0-1) unstable; urgency=high + + * New upstream release. + * Fix CVE-2021-40530: ElGamal encryption using a work estimate to size + encryption exponents instead subgroup order (closes: #993841). + + -- Laszlo Boszormenyi (GCS) Sat, 25 Sep 2021 11:23:06 +0200 + +libcrypto++ (8.5.0-1) unstable; urgency=medium + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Tue, 07 Sep 2021 22:41:51 +0200 + +libcrypto++ (8.4.0-1) unstable; urgency=medium + + * New upstream release. + * Update patches. + + -- Laszlo Boszormenyi (GCS) Sat, 02 Jan 2021 08:22:09 +0100 + +libcrypto++ (8.3.0-3) unstable; urgency=medium + + * Upload to Sid. + + -- Laszlo Boszormenyi (GCS) Fri, 25 Dec 2020 18:16:54 +0100 + +libcrypto++ (8.3.0-2) experimental; urgency=medium + + * Backport upstream fix for SIGILL on PowerPC. + + -- Laszlo Boszormenyi (GCS) Tue, 22 Dec 2020 20:38:25 +0100 + +libcrypto++ (8.3.0-1) experimental; urgency=medium + + * New upstream release. + * Update debhelper level to 13 . + * Update Standards-Version to 4.5.1 . + + -- Laszlo Boszormenyi (GCS) Sun, 20 Dec 2020 17:35:29 +0100 + +libcrypto++ (8.2.0-2) experimental; urgency=medium + + * Fix CVE-2019-14318: timing side channel in ECDSA signature generation + (closes: #934326). + + -- Laszlo Boszormenyi (GCS) Sun, 11 Aug 2019 16:57:18 +0000 + +libcrypto++ (8.2.0-1) experimental; urgency=medium + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Mon, 29 Apr 2019 17:00:27 +0000 + +libcrypto++ (8.1.0-2) experimental; urgency=medium + + * Backport upstream fix of remove early NEON qualification tests. + + -- Laszlo Boszormenyi (GCS) Sat, 02 Mar 2019 20:11:43 +0000 + +libcrypto++ (8.1.0-1) experimental; urgency=medium + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Wed, 27 Feb 2019 00:39:55 +0000 + +libcrypto++ (8.0.0-1) experimental; urgency=medium + + * New upstream release. + * Use upstream build system. + * Library transition to version 8 of soname. + * Update Standards-Version to 4.3.0 . + + -- Laszlo Boszormenyi (GCS) Fri, 28 Dec 2018 12:18:20 +0000 + +libcrypto++ (7.0.0-1) experimental; urgency=medium + + * New upstream release. + * Library transition to version 2 of soname. + + -- Laszlo Boszormenyi (GCS) Sun, 08 Apr 2018 12:04:05 +0000 + +libcrypto++ (6.1.0-2) experimental; urgency=medium + + * Update library compatibility symlink (closes: #891662). + * Remove debug_info from libcrypto++.a library (closes: #880637). + * Make the package multiarch (closes: #879822). + + -- Laszlo Boszormenyi (GCS) Tue, 27 Feb 2018 21:31:37 +0000 + +libcrypto++ (6.1.0-1) experimental; urgency=medium + + * New upstream release. + * Library transition to version 1 of soname. + * Update debhelper level to 11 . + * Update Standards-Version to 4.1.3: + - remove libcrypto++6-dbg package and use the auto-generated one. + + -- Laszlo Boszormenyi (GCS) Thu, 22 Feb 2018 16:51:10 +0000 + +libcrypto++ (5.6.4-8) unstable; urgency=medium + + * Install all headers (closes: #866100). + * Update watch file (closes: #862876). + * Update Standards-Version to 4.0.0 and debhelper level to 10 . + + -- Laszlo Boszormenyi (GCS) Tue, 27 Jun 2017 19:04:20 +0000 + +libcrypto++ (5.6.4-7) unstable; urgency=high + + * Backport security fix for out-of-bounds read in zinflate. + + -- Laszlo Boszormenyi (GCS) Mon, 05 Jun 2017 06:55:28 +0000 + +libcrypto++ (5.6.4-6) unstable; urgency=medium + + * Backport additional ASN.1 validations. + + -- Laszlo Boszormenyi (GCS) Sun, 25 Dec 2016 08:46:52 +0000 + +libcrypto++ (5.6.4-5) unstable; urgency=high + + * Fix CVE-2016-9939: possible DoS in ASN.1 decoders (closes: #848009). + + -- Laszlo Boszormenyi (GCS) Fri, 23 Dec 2016 20:54:36 +0000 + +libcrypto++ (5.6.4-4) unstable; urgency=medium + + * Apply upstream fix for Integer class ABI break (closes: #845460). + + -- Laszlo Boszormenyi (GCS) Fri, 02 Dec 2016 17:00:47 +0000 + +libcrypto++ (5.6.4-3) unstable; urgency=medium + + * Backport upstream fix for potential zeroizer removal. + * Backport upstream fix for Hurd build. + + -- Laszlo Boszormenyi (GCS) Tue, 01 Nov 2016 11:27:35 +0000 + +libcrypto++ (5.6.4-2) unstable; urgency=low + + * Add missed headers to libcrypto++-dev (closes: #841443). + + -- Laszlo Boszormenyi (GCS) Sun, 23 Oct 2016 16:46:44 +0200 + +libcrypto++ (5.6.4-1) unstable; urgency=low + + * New upstream release. + * Remove cryptest-data-files-location.diff as applied upstream. + * Remove backported patches as this release contains those. + + -- Laszlo Boszormenyi (GCS) Sat, 08 Oct 2016 16:27:30 +0000 + +libcrypto++ (5.6.3-8) unstable; urgency=high + + * Fix CVE-2016-7420 with compiling -DNDEBUG to prevent sensitive information + leakage to core dumps when an assert() happens. + + -- Laszlo Boszormenyi (GCS) Fri, 16 Sep 2016 15:42:32 +0000 + +libcrypto++ (5.6.3-7) unstable; urgency=low + + * Prevent binary testing when only architecture independent packages are + built (closes: #821176). + + -- Laszlo Boszormenyi (GCS) Fri, 15 Jul 2016 20:11:19 +0000 + +libcrypto++ (5.6.3-6) unstable; urgency=high + + * Backport last bit of CVE-2016-3995 fix, the Rijndael timing attack + counter measure. + + -- Laszlo Boszormenyi (GCS) Wed, 13 Apr 2016 16:40:13 +0000 + +libcrypto++ (5.6.3-5) unstable; urgency=medium + + * Fix the Rijndael timing attack counter measure. + * Fix FTBFS on M68k machines. + * Update Standards-Version to 3.9.8 . + + -- Laszlo Boszormenyi (GCS) Sun, 10 Apr 2016 09:14:31 +0000 + +libcrypto++ (5.6.3-4) unstable; urgency=low + + * Start the transition with upload to Sid. + * Builds on x32 (closes: #813659). + * Update Standards-Version to 3.9.7 . + + -- Laszlo Boszormenyi (GCS) Sun, 03 Apr 2016 11:33:16 +0000 + +libcrypto++ (5.6.3-3) experimental; urgency=low + + * Backport upstream fixes: + - fixed hang on ARM platforms in Integer::DivideThreeWordsByTwo, + - work around issue on ARMEL in MultiplyTop and GCC, + - increase range for GCC workaround on ARMEL, + - fixed SecBlock append. + + -- Laszlo Boszormenyi (GCS) Sat, 09 Jan 2016 09:15:35 +0100 + +libcrypto++ (5.6.3-2) experimental; urgency=low + + * Only fix -doc package HTML path if it's built. + + -- Laszlo Boszormenyi (GCS) Sat, 21 Nov 2015 13:27:54 +0100 + +libcrypto++ (5.6.3-1) experimental; urgency=low + + * New major upstream release (closes: #739157). + * Keep rebuildable. + + -- Laszlo Boszormenyi (GCS) Sat, 21 Nov 2015 09:25:03 +0100 + +libcrypto++ (5.6.3~rc6-1) experimental; urgency=low + + * New major upstream release candidate version. + * Add CRYPTOPP_NO_UNALIGNED_DATA_ACCESS preprocessor flag to CXXFLAGS . + * Add rdrand.cpp to library sources to compile. + + -- Laszlo Boszormenyi (GCS) Thu, 29 Oct 2015 19:44:06 +0100 + +libcrypto++ (5.6.3~rc4-1) experimental; urgency=low + + * New major upstream release candidate version. + + -- Laszlo Boszormenyi (GCS) Mon, 21 Sep 2015 20:10:14 +0200 + +libcrypto++ (5.6.3~rc3-1) experimental; urgency=low + + * New major upstream release candidate version. + + -- Laszlo Boszormenyi (GCS) Wed, 16 Sep 2015 19:47:57 +0200 + +libcrypto++ (5.6.3~rc2-2) experimental; urgency=low + + * Make co-installable with older versions. + * Run doxygen only in the indep target. + + -- Laszlo Boszormenyi (GCS) Mon, 14 Sep 2015 20:06:20 +0200 + +libcrypto++ (5.6.3~rc2-1) experimental; urgency=low + + * New major upstream release release candidate version. + * ABI transition from libcrypto++9v5 to libcrypto++6 . + * Rewrite packaging and copyright. + * Build with CRYPTOPP_INIT_PRIORITY=250 . + * Symlink jquery.js to the packaged one. + * Add watch file. + + -- Laszlo Boszormenyi (GCS) Sun, 13 Sep 2015 15:55:30 +0200 + +libcrypto++ (5.6.1-9) unstable; urgency=low + + * Compile integer.cpp with -O1 on armel to prevent FTBFS (closes: #796297). + + -- Laszlo Boszormenyi (GCS) Sat, 12 Sep 2015 10:17:29 +0200 + +libcrypto++ (5.6.1-8) unstable; urgency=medium + + * Rename library to libcrypto++9v5 and the debug one to libcrypto++9-dbg + for GCC 5 transition. + + -- Laszlo Boszormenyi (GCS) Wed, 12 Aug 2015 18:43:04 +0200 + +libcrypto++ (5.6.1-7) unstable; urgency=high + + * Fix CVE-2015-2141. + * Update Standards-Version to 3.9.6 and debhelper level to 9 . + + -- Laszlo Boszormenyi (GCS) Sun, 28 Jun 2015 12:34:20 +0000 + +libcrypto++ (5.6.1-6) unstable; urgency=low + + * Fix build failure with gcc-4.7 (closes: #668700) by adding missing 'this' + references. Thanks to Matthias Klose . + * Update packaging bits. + + -- Laszlo Boszormenyi (GCS) Sat, 14 Apr 2012 20:21:41 +0200 + +libcrypto++ (5.6.1-5) unstable; urgency=low + + * New maintainer (closes: #628935). + * salsa.patch from upstream to fix testcase FTBFS (closes: #628298). + + -- Laszlo Boszormenyi (GCS) Sat, 04 Jun 2011 20:15:34 +0200 + +libcrypto++ (5.6.1-4) unstable; urgency=low + + * Fix Pananma so that it works on armel, thanks to Wei Dai. + (Closes: #619856) + + -- Jens Peter Secher Mon, 25 Apr 2011 21:13:50 +0200 + +libcrypto++ (5.6.1-3) unstable; urgency=low + + * Make debug packages conflict with each other because they all include + usr/bin/cryptest. + (Closes: #619527) + * Removed obsolete README.source now that the package is in dpkg format + 3.0 (quilt). + + -- Jens Peter Secher Sun, 27 Mar 2011 23:56:51 +0200 + +libcrypto++ (5.6.1-2) unstable; urgency=low + + * Build for Wheezy, no change. + (Closes: #599639) + + -- Jens Peter Secher Tue, 22 Mar 2011 04:51:04 +0100 + +libcrypto++ (5.6.1-1) experimental; urgency=low + + * New release, which changes the API of the library, so bumping the SO + version to 9. + * Patch for sha256 assembly is now included upstream. + * Bumped Standards-Version to 3.9.1, no change. + + -- Jens Peter Secher Tue, 10 Aug 2010 21:26:54 +0200 + +libcrypto++ (5.6.0-6) unstable; urgency=low + + * Fix sha256 assembly problem with signed address comparison, thanks to + Ken Raeburn. + (Closes: #585930) + * Converted to dpkg-source format 3.0 (quilt). + * Use mercurial-buildpackage for repository maintenance, so old + repository does not exist any more. + * Bumped Standards-Version to 3.8.4, no change. + * Use misc:Depends debhelper macro for all packages. + * Introduced a realclean target in debian/rules for cleaning up an + interrupted build. + * Build-depend on a proper quilt-handling version of dpkg-source instead + of quilt itself. + + -- Jens Peter Secher Wed, 16 Jun 2010 23:50:50 +0200 + +libcrypto++ (5.6.0-5) unstable; urgency=low + + * Fix build failure on Hurd by using POSIX threads, thanks to Samuel + Thibault. + (Closes: #550786) + + -- Jens Peter Secher Fri, 16 Oct 2009 20:06:13 +0200 + +libcrypto++ (5.6.0-4) unstable; urgency=low + + * Inlcude missing testvector for AES, thanks to Nelson A. de Oliveira. + (Closes: #549150) + * Do not include .la file per request from Kartik Mistry. + + -- Jens Peter Secher Thu, 01 Oct 2009 22:08:44 +0200 + +libcrypto++ (5.6.0-3) unstable; urgency=low + + * Depend on generic automake package (at the time of writing version 11). + (Closes: #543028) + * Update the various package descriptions. + (Closes: #531814) + * Upgrate to debhelper version 7, using dh_prep instead of dh_clean -k. + * Updated Standards-Version to 3.8.3, but retaining GNU style variables + because they are passed to automake scripts. Also correct + "hppa-linux" to "hppa-linux-gnu". + + -- Jens Peter Secher Sat, 22 Aug 2009 19:55:04 +0200 + +libcrypto++ (5.6.0-2) unstable; urgency=low + + * Added a package with debug symbols. + * Drop the DCRYPTOPP_DISABLE_ASM flag to avoid segfault in amule on + i386. + (Closes: #525071) + + -- Jens Peter Secher Tue, 28 Apr 2009 23:23:21 +0200 + +libcrypto++ (5.6.0-1) unstable; urgency=low + + * New upstream version. + + Includes incompatible changes, so bumping the shared library number to 8 + (libtool version info 8:0:0). + + The test data is now in its own directory, so this TestData directory + is handled in debian/rules the same way that TestVectors is. + * Link with pthread to avoid warning from dpkg-shlibdeps. + * Avoid running the test suite twice by giving it its own target: check. + + -- Jens Peter Secher Tue, 07 Apr 2009 02:52:06 +0200 + +libcrypto++ (5.5.2-3) unstable; urgency=low + + * Use quilt instead of dpatch for patches, and describe how to use + quilt in Debian.source (thanks to Russ Allbery). + * Added a Vcs-Hg control filed to indicate the location of the public + repository. + * Bumped Standards-Version to 3.8.1. + + -- Jens Peter Secher Tue, 07 Apr 2009 00:51:49 +0200 + +libcrypto++ (5.5.2-2) unstable; urgency=low + + * Produce a pkg-config file for the development package. + (Closes: #473090) + * Use doc-bas section Programming. + + -- Jens Peter Secher Sat, 29 Mar 2008 17:37:32 +0100 + +libcrypto++ (5.5.2-1) unstable; urgency=low + + * New upstream version. + * Increased SONAME from 6 to 7 because of API changes. + * Fixed GCC 4.3 header include problem. + (Closes: #455627) + * Created symlinks from libcryptopp* to libcrypto++*, as requested in + bug #448766. + * Bumped debhelper version to 5. + * Bumped Standards-Version to 3.7.3. + + -- Jens Peter Secher Tue, 11 Dec 2007 19:06:15 +0100 + +libcrypto++ (5.5-5) unstable; urgency=low + + * Create a symlink to /usr/include/cryptopp -> crypto++ to aid + portability of client code. + (Closes: #448766) + * Bumped automake to 1.10 instead of 1.9 . + + -- Jens Peter Secher Sun, 11 Nov 2007 21:51:53 +0100 + +libcrypto++ (5.5-4) unstable; urgency=low + + * Use POSIX threads on GNU/kFreeBSD, thanks to Petr Salinger. + (Closes: #433672) + + -- Jens Peter Secher Sun, 19 Aug 2007 10:02:37 +0200 + +libcrypto++ (5.5-3) unstable; urgency=high + + * Do not compile with -msse2 to avoid crash on Pentium II, thanks + to Adeodato Simó. Hence the high urgency. + (Closes: #428150) + * Use ${binary:Version} instead of ${Source-Version} to facilitate + binNMU. + * Do not ignore 'make clean' errors. + + -- Jens Peter Secher Sat, 30 Jun 2007 16:39:14 +0200 + +libcrypto++ (5.5-2) unstable; urgency=low + + * Use CURDIR throughout debian/rules to avoid buildd failures. + + -- Jens Peter Secher Tue, 29 May 2007 20:29:08 +0200 + +libcrypto++ (5.5-1) unstable; urgency=low + + * New upstream release. + * Bumped SO name to 6.0.0 because of new namespaces and removed algorithms. + * Updated man page and build scripts. + * Only use header files to generate documentation because Doxygen + otherwise chokes. + + -- Jens Peter Secher Sat, 12 May 2007 12:50:30 +0200 + +libcrypto++ (5.4-1) experimental; urgency=low + + * New upstream release. + * Removed all patches that have now been included upstream. + * Now that things are stable with both Crypto++ and GCC, the shared + library has a proper SO name. + + -- Jens Peter Secher Fri, 15 Dec 2006 23:32:46 +0100 + +libcrypto++ (5.2.1c2a-3) unstable; urgency=low + + * Patch source so that it compiles with GCC 4.1 . More specifically, + avoid mixing implicit calls to base classes and free-standing + functions. + (Closes: #356170) + * Use LDFLAGS=-pthread to fix linking errors. + + -- Jens Peter Secher Thu, 16 Mar 2006 23:08:48 +0100 + +libcrypto++ (5.2.1c2a-2) unstable; urgency=low + + * Build-depend on a version of g++ that fixes PR c++/21123 which + resulted in internal compiler errors on m68k, arm, and hppa + (Closes: #343003) + * Include an override to stop Lintian complaining about the name of the + shared library. + * Removed link in main headline of Doxygen generated documentaion since + Doxygen insists on escaping it. + + -- Jens Peter Secher Tue, 13 Dec 2005 20:40:25 +0100 + +libcrypto++ (5.2.1c2a-1) unstable; urgency=low + + * Rebuild and name change due to libstdc++6 mt-allocator transition. + (Closes: #339201) + + -- Jens Peter Secher Sat, 19 Nov 2005 23:56:27 +0100 + +libcrypto++ (5.2.1c2-8) unstable; urgency=low + + * Force autoreconf to use automake1.9 so that it is possible to have + several automake versions installed. + + -- Jens Peter Secher Sat, 1 Oct 2005 16:11:18 +0200 + +libcrypto++ (5.2.1c2-7) unstable; urgency=low + + * Use the upstream-provided way of doing manual template instantiation + on architectures where it is necessary to use GCC3.4. + + -- Jens Peter Secher Mon, 26 Sep 2005 19:08:30 +0200 + +libcrypto++ (5.2.1c2-6) unstable; urgency=low + + * Circumvent GCC4 internal compiler error on m68k, arm, and hppa by + using GCC3.4 on those architectures, thanks to Adeodato Simó. + (Closes: #328975) + + -- Jens Peter Secher Tue, 20 Sep 2005 20:46:29 +0200 + +libcrypto++ (5.2.1c2-5) unstable; urgency=low + + * Fixed the debian/rules so that the binary-arch target can be built in + isolation. + (Closes: #323161) + * Added a doc-base file for the libcrypto++-doc package. + + -- Jens Peter Secher Mon, 15 Aug 2005 22:18:05 +0200 + +libcrypto++ (5.2.1c2-4) unstable; urgency=low + + * Really take care of endianess this time by letting config.status + manipulate config.h . + * Split the documentation into a libcrypto++-doc package. + + -- Jens Peter Secher Wed, 10 Aug 2005 23:47:51 +0200 + +libcrypto++ (5.2.1c2-3) unstable; urgency=low + + * Take care of architecture endianess by using AC_C_BIGENDIAN in + configure.ac . Should fix building for s390 and mipsel. + + -- Jens Peter Secher Mon, 8 Aug 2005 21:25:50 +0200 + +libcrypto++ (5.2.1c2-2) unstable; urgency=low + + * Stopped including autotools generated scripts, and instead + build-depends on automaken to avoid strange problems with libtool that + causes problems for the build daemons. + * Fix cryptest so that it always can find its data files, and put it in + the libcrypto++-utils package again. + + -- Jens Peter Secher Sat, 6 Aug 2005 16:34:56 +0200 + +libcrypto++ (5.2.1c2-1) unstable; urgency=low + + * New maintainer. + (Closes: #288433) + * Complete re-autotoolising of the package to retain pristine upstream + source and to only build-depend on libtool. + * The crypto++-util package has been merged into the crypto++-dev + package and is thus dead. + * Applied patches from Ben Hutchings to avoid compile warnings + (Closes: #286114) + * Circumvented anonymous-enum and template-instantiations problems with + GCC 4. Thanks to Florian Weimer and Jozef Matula for guiding me in + the right direction. + (Closes: #318518) + * Started using dpatch since some of the above patches probably could + make it upstream. + + -- Jens Peter Secher Sun, 31 Jul 2005 02:07:29 +0200 + +libcrypto++ (5.2.1a-1) unstable; urgency=high + + * Urgency set to high because lastest upload was unclean + * Rename libcrypto++-5.2.1.orig.tar.gz in libcrypto++-5.2.1a.orig.tar.gz + + -- Pierre Machard Fri, 27 Aug 2004 12:35:05 +0200 + +libcrypto++ (5.2.1-2) unstable; urgency=high + + * Added TestVectors to example dir + * Add symlink from cryptopp_config.h to config.h (closes: #244980) + * Hack configure.in to fit with new upstream version. This hack is + far from being complete and quite uggly. + * Update manpage + * Automaticaly update config.{sub,guess} + + -- Pierre Machard Sat, 21 Aug 2004 08:59:37 +0200 + +libcrypto++ (5.2.1-1) unstable; urgency=high + + * Adding myself as package uploaders + * Urgency set to high because of #244892 + * New upstream release (closes: #244892, #247922, #245921, #261074) + + -- Pierre Machard Fri, 20 Aug 2004 05:22:28 +0200 + +libcrypto++ (5.1-5) unstable; urgency=low + + * Remove the final arch specific (rather than feature specifc) tests in + crypto_config.h, + Closes: #238220 + * Add symlinks libcrypto++.{a,la,so} pointing to + libcrypto++5.1.{a,la,so} so that users can act like the ABI of this + library doesn't change with every major release, + Closes: #241148 + + -- Stephen Zander Mon, 19 Apr 2004 18:10:28 -0700 + +libcrypto++ (5.1-4) unstable; urgency=low + + * Build with -fno-strict-aliasing. This should fix the segfaults on + non-i386 architectures. + * Add -ffunction-sections for hppa build, + Closes: #238220 + + -- Stephen Zander Fri, 19 Mar 2004 02:06:08 -0800 + +libcrypto++ (5.1-3) unstable; urgency=low + + * Move datatest.cpp from libcrypto++5.1.so to the cryptest source to + really fix the GlobalRNG bug, + Closes: #236539 + + -- Stephen Zander Sun, 14 Mar 2004 20:23:16 -0800 + +libcrypto++ (5.1-2) unstable; urgency=low + + * Remove validate.h from the libcrypto++5.1.so headers; it should only + be used by cryptest, + Closes: #236539 + * Include test.cpp as an example of how to invoke the various Crypto++ + routines, + Closes: #236844 + * Allow cryptest to look for validation files in the current directory + as well as /usr/share/crypto++, + Closes: #236968 + + -- Stephen Zander Sat, 13 Mar 2004 00:59:54 -0800 + +libcrypto++ (5.1-1) unstable; urgency=low + + * Drop the gcc-3.2 dependency as gcc-3.2 should be everywhere by now. This + also fixes the build failure on ARM. + * Rename the library from libcrypto++.so.5 to libcrypto++5.1.so.0 as + upstream does not maintain binary compatibility and having the 5.1 + package provide libcrypto++.so.6 strikes me as too confusing. + * New upstream version, + Closes: #213953 + * Include full paths to data files used by the cryptest validation + routines, + Closes: #198696 + * Add MD4 to the output of 'cryptest b' and segregate the hashing + algorithms from the encryption algorithms, + Closes: #198698 + * Include Doxygen generated documents in the libcrypto++-dev package, + Closes: #211725 + + -- Stephen Zander Tue, 17 Feb 2004 12:41:29 -0800 + +libcrypto++ (5.0-3) unstable; urgency=low + + * Add generic 64bit arch support, rather than hard-coded alpha supoprt, + Closes: #181457 + + -- Stephen Zander Sat, 15 Mar 2003 17:47:27 -0800 + +libcrypto++ (5.0-2) unstable; urgency=low + + * Convert the gcc-3.2 build depends to a g++-3.2, they way it should be + Closes: #175085 + * Clean up cryptlib.h slightly so it's not so noisy under -Wall, + Closes: #175180 + + -- Stephen Zander Tue, 7 Jan 2003 01:24:07 -0800 + +libcrypto++ (5.0-1) unstable; urgency=low + + * Package moved to main. + * New upstream version, + Closes: #174217 + * All files now have appropriate copyright entries and debian/copyright + accurately reflects the contents of this package, + Closes: #153926 + * cryptest now successfully runs to completion, + Closes: #153929 + * Fix a typo in the cryptest manpage, + Closes: #153932 + + -- Stephen Zander Fri, 27 Dec 2002 11:23:06 -0800 + +libcrypto++ (4.2-1) unstable; urgency=low + + * New package, + Closes: #79131 + + -- Stephen Zander Fri, 5 Jul 2002 09:45:26 -0700 diff --git a/clean b/clean new file mode 100644 index 0000000..d87bc97 --- /dev/null +++ b/clean @@ -0,0 +1,19 @@ +Makefile.am +Makefile.in +aclocal.m4 +compile +config.guess +config.sub +config.status +configure +configure.ac +depcomp +install-sh +local.h.in +ltmain.sh +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 +missing diff --git a/control b/control new file mode 100644 index 0000000..8da4a9c --- /dev/null +++ b/control @@ -0,0 +1,131 @@ +Source: libcrypto++ +Section: libs +Priority: optional +Maintainer: Laszlo Boszormenyi (GCS) +Standards-Version: 4.6.0 +Build-Depends: debhelper-compat (= 13), automake, autoconf, libtool +Build-Depends-Indep: doxygen +Homepage: https://www.cryptopp.com +Rules-Requires-Root: no + +Package: libcrypto++8 +Architecture: any +Multi-Arch: same +Section: libs +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: General purpose cryptographic library - shared library + General purpose cryptographic library for C++. + . + This package contains the shared libraries and should only be + installed if other packages depend on it. + +Package: libcrypto++-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Depends: libcrypto++8 (= ${binary:Version}), ${misc:Depends} +Description: General purpose cryptographic library - C++ development + Crypto++ is library for creating C++ programs which use cryptographic + algorithms. The library uses a Pipes & Filters architecture with heavy + use of templates and abstract base classes. The cryptographic + tools include: + * Authenticated encryption schemes (GCM, CCM, EAX), + * High speed stream ciphers (Panama, Sosemanuk, Salsa20, XSalsa20), + * AES and candidates (Rijndael, RC6, MARS, Twofish, Serpent, CAST-256), + * Other symmetric block ciphers (IDEA, Triple-DES, Camellia, SEED, + RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2), + * Block cipher modes of operation (ECB, CBC, CTS, CFB, OFB, CTR), + * Message authentication codes (VMAC, HMAC, CMAC, CBC-MAC, DMAC, + Two-Track-MAC), + * Hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger, + WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320), + * Public-key cryptography (RSA, DSA, ElGamal, NR, RW, LUC, LUCELG, + DLIES, ESIGN), + * Padding schemes for public-key systems (PKCS#1, OAEP, PSS, PSSR, + EMSA2, EMSA5), + * Key agreement schemes (DH, MQV, LUCDIF, XTR-DH), + * Elliptic curve cryptography (ECDSA, ECNR, ECIES, ECDH, ECMQV), + * Backwards compatibility algorithms (MD2, MD4, MD5, Panama Hash, DES, + ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX, RC2, SAFER, 3-WAY, GOST, + SHARK, CAST-128, Square), + * Pseudo-random number generators, + and a whole lot more. Alternative libraries are libgcrypt and + nettle. + . + This package contains the header files needed for developing using + the Crypto++ class library and the static library with libtool + supoport. + +Package: libcrypto++-utils +Architecture: any +Section: utils +Depends: ${shlibs:Depends}, ${misc:Depends} +Conflicts: libcrypto++-dev (= 5.2.1c2-1) +Description: General purpose cryptographic library - utilities and data files + Crypto++ is library for creating C++ programs which use cryptographic + algorithms. The library uses a Pipes & Filters architecture with heavy + use of templates and abstract base classes. The cryptographic + tools include: + * Authenticated encryption schemes (GCM, CCM, EAX), + * High speed stream ciphers (Panama, Sosemanuk, Salsa20, XSalsa20), + * AES and candidates (Rijndael, RC6, MARS, Twofish, Serpent, CAST-256), + * Other symmetric block ciphers (IDEA, Triple-DES, Camellia, SEED, + RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2), + * Block cipher modes of operation (ECB, CBC, CTS, CFB, OFB, CTR), + * Message authentication codes (VMAC, HMAC, CMAC, CBC-MAC, DMAC, + Two-Track-MAC), + * Hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger, + WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320), + * Public-key cryptography (RSA, DSA, ElGamal, NR, RW, LUC, LUCELG, + DLIES, ESIGN), + * Padding schemes for public-key systems (PKCS#1, OAEP, PSS, PSSR, + EMSA2, EMSA5), + * Key agreement schemes (DH, MQV, LUCDIF, XTR-DH), + * Elliptic curve cryptography (ECDSA, ECNR, ECIES, ECDH, ECMQV), + * Backwards compatibility algorithms (MD2, MD4, MD5, Panama Hash, DES, + ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX, RC2, SAFER, 3-WAY, GOST, + SHARK, CAST-128, Square), + * Pseudo-random number generators, + and a whole lot more. Alternative libraries are libgcrypt and + nettle. + . + This package includes a utility for benchmarking and using the + various Crypto++ routines from the command line. It also includes + the test vectors for validating both the Crypto++ implementation and + other implementations of these routines. + +Package: libcrypto++-doc +Architecture: all +Section: doc +Depends: ${misc:Depends}, libjs-jquery +Conflicts: libcrypto++-dev (<= 5.2.1c2-3) +Enhances: libcrypto++-dev +Description: General purpose cryptographic library - documentation + Crypto++ is library for creating C++ programs which use cryptographic + algorithms. The library uses a Pipes & Filters architecture with heavy + use of templates and abstract base classes. The cryptographic + tools include: + * Authenticated encryption schemes (GCM, CCM, EAX), + * High speed stream ciphers (Panama, Sosemanuk, Salsa20, XSalsa20), + * AES and candidates (Rijndael, RC6, MARS, Twofish, Serpent, CAST-256), + * Other symmetric block ciphers (IDEA, Triple-DES, Camellia, SEED, + RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2), + * Block cipher modes of operation (ECB, CBC, CTS, CFB, OFB, CTR), + * Message authentication codes (VMAC, HMAC, CMAC, CBC-MAC, DMAC, + Two-Track-MAC), + * Hash functions (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger, + WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320), + * Public-key cryptography (RSA, DSA, ElGamal, NR, RW, LUC, LUCELG, + DLIES, ESIGN), + * Padding schemes for public-key systems (PKCS#1, OAEP, PSS, PSSR, + EMSA2, EMSA5), + * Key agreement schemes (DH, MQV, LUCDIF, XTR-DH), + * Elliptic curve cryptography (ECDSA, ECNR, ECIES, ECDH, ECMQV), + * Backwards compatibility algorithms (MD2, MD4, MD5, Panama Hash, DES, + ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX, RC2, SAFER, 3-WAY, GOST, + SHARK, CAST-128, Square), + * Pseudo-random number generators, + and a whole lot more. Alternative libraries are libgcrypt and + nettle. + . + This package includes the HTML reference guide to the source code. diff --git a/copyright b/copyright new file mode 100644 index 0000000..f5e2d70 --- /dev/null +++ b/copyright @@ -0,0 +1,102 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Crypto++ +Source: https://sourceforge.net/projects/cryptopp/files/cryptopp/ + +Files: * +Copyright: (C) 1995-2013 by Wei Dai +License: Boost + +Files: 3way.cpp +Copyright: Joan Daemen +License: public-domain + +Files: cast.cpp +Copyright: Leonard Janke, + Steve Reid +License: public-domain + +Files: seal.cpp +Copyright: Leonard Janke +License: public-domain + +Files: des.cpp +Copyright: Phil Karn +License: public-domain + +Files: md2.cpp + md4.cpp +Copyright: Andrew M. Kuchling +License: public-domain + +Files: md5.cpp +Copyright: Colin Plumb +License: public-domain + +Files: rc6.cpp +Copyright: Seal Woods +License: public-domain + +Files: rijndael.cpp +Copyright: Chris Morgan, + Paulo Baretto +License: public-domain + +Files: skipjack.cpp + square.cpp +Copyright: Paulo Baretto +License: public-domain + +Files: safer.cpp +Copyright: Richard De Moliner +License: public-domain + +Files: twofish.cpp +Copyright: Matthew Skala +License: public-domain + +Files: camellia.cpp + shacal2.cpp + ttmac.cpp + whrlpool.cpp + ripemd.cpp +Copyright: Kevin Springle +License: public-domain + +License: public-domain + No license required for any purpose; the work is not subject to copyright + in any jurisdiction. + +Files: debian/* +Copyright: (C) 2011- Laszlo Boszormenyi (GCS) , + (C) 2005-2010 Jens Peter Secher , + (C) 2004 Pierre Machard , + (C) 2000-2002 Stephen Zander +License: Boost + +License: Boost + Boost Software License - Version 1.0 + ------------------------------------ + . + Boost Software License - Version 1.0 - August 17th, 2003 + . + Permission is hereby granted, free of charge, to any person or organization + obtaining a copy of the software and accompanying documentation covered by + this license (the "Software") to use, reproduce, display, distribute, + execute, and transmit the Software, and to prepare derivative works of the + Software, and to permit third-parties to whom the Software is furnished to + do so, all subject to the following: + . + The copyright notices in the Software and this entire statement, including + the above license grant, this restriction and the following disclaimer, + must be included in all copies of the Software, in whole or in part, and + all derivative works of the Software, unless such copies or derivative + works are solely in the form of machine-executable object code generated by + a source language processor. + . + 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, TITLE AND NON-INFRINGEMENT. IN NO EVENT + SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE + FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. diff --git a/cryptest.1 b/cryptest.1 new file mode 100644 index 0000000..5ec028f --- /dev/null +++ b/cryptest.1 @@ -0,0 +1,95 @@ +.TH cryptest 1 local +.SH NAME +cryptest \- Test Driver for Crypto++, a C++ Class Library of Cryptographic Primitives +.SH SYNOPSIS +.B cryptest +[\fIOPTION\fR] +.SH DESCRIPTION +cryptest takes the following options +.TP +.B g +generate an RSA key +.TP +.B h +display usage information +.TP +.B r +encrypt and decrypt a string using RSA +.TP +.BI rs " privatekeyfile messagefile signaturefile" +sign a file using RSA +.TP +.BI rv " publickeyfile messagefile signaturefile" +verify a signature of a file using RSA +.TP +.BI m " file" +calculate MD5, SHA, and RIPEMD-160 message digests +.TP +.B t +encrypt and decrypt a string using DES-EDE in CBC mode +.TP +.BI e|d " input output" +encrypt or decrypt a file +.TP +.BI ss " file" +secret share a file (shares will be named file.000, file.001, etc) +.TP +.BI sr " file share1 share2 [....]" +reconstruct a secret-shared file (number of shares given must be equal +to threshold) +.TP +.BI id " file" +information disperse a file (shares will be named file.000, file.001, etc) +.TP +.BI ir " file share1 share2 [....]" +reconstruct an information-dispersed file (number of shares given must +be equal to threshold) +.TP +.BI z " input output" +gzip a file +.TP +.BI u " input output" +gunzip a file +.TP +.BI ae " input output" +encrypt a file with AES in CTR mode +.TP +.BI e64 " input output" +base64 encode a file +.TP +.BI d64 " input output" +base64 decode a file +.TP +.BI e16 " input output" +hex encode a file +.TP +.BI d16 " input output" +hex decode a file +.TP +.BI ft " source-port destination-host destination-port" +forward a TCP connection +.TP +.BI fips +run the FIPS 140-2 sample application +.TP +.BI fips-rand +generate 100000 random files using FIPS Approved X.917 RNG +.TP +.BI mt " input" +run Maurer's randomness test on a file +.TP +.B v +run validation tests +.TP +.B V +display version number +.TP +.BI b " [time for each benchmark in seconds] [frequency of CPU in gigahertz]" +run benchmarks +.TP +.BI tv " filename" +run test vector file (available in TestVectors example subdirectory) +.SH AUTHOR +This man page was created by Stephen Zander, Pierre Machard and Jens +Peter Secher for the Debian distribution. It is licenced under the +same terms as the rest of the Crypto++ library, written by Wei Dai. diff --git a/fix_library_name.sh b/fix_library_name.sh new file mode 100644 index 0000000..4220145 --- /dev/null +++ b/fix_library_name.sh @@ -0,0 +1,6 @@ +sed -i 's/)\/cryptopp/)\/crypto++/' GNUmakefile +sed -i 's/-lcryptopp/-lcrypto++/' GNUmakefile +sed -i 's/libcryptopp.a/libcrypto++.a/' GNUmakefile +sed -i 's/libcryptopp.pc/libcrypto++.pc/' GNUmakefile +sed -i 's/libcryptopp.so/libcrypto++.so/g' GNUmakefile +sed -i 's/cryptest.exe/cryptest/' GNUmakefile diff --git a/libcrypto++-dev.docs b/libcrypto++-dev.docs new file mode 100644 index 0000000..b8907ed --- /dev/null +++ b/libcrypto++-dev.docs @@ -0,0 +1 @@ +Readme.txt diff --git a/libcrypto++-dev.install b/libcrypto++-dev.install new file mode 100644 index 0000000..df9fbac --- /dev/null +++ b/libcrypto++-dev.install @@ -0,0 +1,4 @@ +usr/include/ +usr/lib/*/*.a +usr/lib/*/*.so +usr/lib/*/pkgconfig/*.pc diff --git a/libcrypto++-dev.links.in b/libcrypto++-dev.links.in new file mode 100644 index 0000000..a93e83a --- /dev/null +++ b/libcrypto++-dev.links.in @@ -0,0 +1,3 @@ +/usr/include/crypto++ /usr/include/cryptopp +/usr/lib/ARCH/libcrypto++.a /usr/lib/ARCH/libcryptopp.a +/usr/lib/ARCH/libcrypto++.so /usr/lib/ARCH/libcryptopp.so diff --git a/libcrypto++-doc.doc-base b/libcrypto++-doc.doc-base new file mode 100644 index 0000000..c2a9394 --- /dev/null +++ b/libcrypto++-doc.doc-base @@ -0,0 +1,10 @@ +Document: libcrypto++ +Title: Crypto++ library reference manual +Author: Wei Dai +Abstract: Reference manual for the general purpose cryptographic library + Crypto++ for the C++ language. +Section: Programming + +Format: HTML +Index: /usr/share/doc/libcrypto++-dev/html/index.html +Files: /usr/share/doc/libcrypto++-dev/html/*.html diff --git a/libcrypto++-doc.docs b/libcrypto++-doc.docs new file mode 100644 index 0000000..c5c554d --- /dev/null +++ b/libcrypto++-doc.docs @@ -0,0 +1 @@ +html-docs/ diff --git a/libcrypto++-doc.links b/libcrypto++-doc.links new file mode 100644 index 0000000..044fa58 --- /dev/null +++ b/libcrypto++-doc.links @@ -0,0 +1 @@ +/usr/share/javascript/jquery/jquery.js /usr/share/doc/libcrypto++-doc/html/jquery.js diff --git a/libcrypto++-utils.install b/libcrypto++-utils.install new file mode 100644 index 0000000..c12bd0f --- /dev/null +++ b/libcrypto++-utils.install @@ -0,0 +1,3 @@ +usr/bin +usr/share/crypto--/TestData usr/share/crypto++ +usr/share/crypto--/TestVectors usr/share/crypto++ diff --git a/libcrypto++-utils.manpages b/libcrypto++-utils.manpages new file mode 100644 index 0000000..1f2587e --- /dev/null +++ b/libcrypto++-utils.manpages @@ -0,0 +1 @@ +debian/cryptest.1 diff --git a/libcrypto++8.install b/libcrypto++8.install new file mode 100644 index 0000000..3de3b10 --- /dev/null +++ b/libcrypto++8.install @@ -0,0 +1 @@ +usr/lib/*/*.so.* diff --git a/libcrypto++8.links.in b/libcrypto++8.links.in new file mode 100644 index 0000000..1c367ca --- /dev/null +++ b/libcrypto++8.links.in @@ -0,0 +1 @@ +/usr/lib/ARCH/libcrypto++.so.8 /usr/lib/ARCH/libcryptopp.so.8 diff --git a/not-installed b/not-installed new file mode 100644 index 0000000..0cd52f3 --- /dev/null +++ b/not-installed @@ -0,0 +1,2 @@ +usr/share/crypto++/TestData/ +usr/share/crypto++/TestVectors/ diff --git a/patches/GNUmakefile_update.patch b/patches/GNUmakefile_update.patch new file mode 100644 index 0000000..c55fb81 --- /dev/null +++ b/patches/GNUmakefile_update.patch @@ -0,0 +1,833 @@ +diff --git a/GNUmakefile b/GNUmakefile +index 6f630710..31bf6b36 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -1,4 +1,3 @@ +- + ########################################################### + ##### System Attributes and Programs ##### + ########################################################### +@@ -99,15 +98,15 @@ endif + + # Hack to skip CPU feature tests for some recipes + DETECT_FEATURES ?= 1 +-ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),-DCRYPTOPP_DISABLE_ASM) ++ifneq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring clean,$(MAKECMDGOALS)),clean) ++else ifneq ($(findstring clean,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring distclean,$(MAKECMDGOALS)),distclean) ++else ifneq ($(findstring distclean,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring trim,$(MAKECMDGOALS)),trim) ++else ifneq ($(findstring trim,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring zip,$(MAKECMDGOALS)),zip) ++else ifneq ($(findstring zip,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 + endif + +@@ -142,20 +141,23 @@ endif + ##### General Variables ##### + ########################################################### + +-# Base CXXFLAGS used if the user did not specify them ++# Base CPPFLAGS and CXXFLAGS used if the user did not specify them ++ifeq ($(CPPFLAGS),) ++ CRYPTOPP_CPPFLAGS += -DNDEBUG ++endif + ifeq ($(CXXFLAGS),) + ifeq ($(SUN_COMPILER),1) +- CRYPTOPP_CXXFLAGS += -DNDEBUG -g -xO3 ++ CRYPTOPP_CXXFLAGS += -g -xO3 + ZOPT = -xO0 + else +- CRYPTOPP_CXXFLAGS += -DNDEBUG -g2 -O3 ++ CRYPTOPP_CXXFLAGS += -g2 -O3 + ZOPT = -O0 + endif + endif + + # Fix CXX on Cygwin 1.1.4 + ifeq ($(CXX),gcc) +-CXX := g++ ++ CXX := g++ + endif + + # On ARM we may compile aes_armv4.S though the CC compiler +@@ -202,11 +204,11 @@ endif + # Original MinGW targets Win2k by default, but lacks proper Win2k support + # if target Windows version is not specified, use Windows XP instead + ifeq ($(IS_MINGW),1) +-ifeq ($(findstring -D_WIN32_WINNT,$(CXXFLAGS)),) +-ifeq ($(findstring -D_WIN32_WINDOWS,$(CXXFLAGS)),) +-ifeq ($(findstring -DWINVER,$(CXXFLAGS)),) +-ifeq ($(findstring -DNTDDI_VERSION,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -D_WIN32_WINNT=0x0501 ++ifeq ($(findstring -D_WIN32_WINNT,$(CPPFLAGS)$(CXXFLAGS)),) ++ifeq ($(findstring -D_WIN32_WINDOWS,$(CPPFLAGS)$(CXXFLAGS)),) ++ifeq ($(findstring -DWINVER,$(CPPFLAGS)$(CXXFLAGS)),) ++ifeq ($(findstring -DNTDDI_VERSION,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -D_WIN32_WINNT=0x0501 + endif # NTDDI_VERSION + endif # WINVER + endif # _WIN32_WINDOWS +@@ -218,8 +220,8 @@ TPROG = TestPrograms/test_newlib.cpp + TOPT = + HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + ifeq ($(strip $(HAVE_OPT)),0) +- ifeq ($(findstring -D_XOPEN_SOURCE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -D_XOPEN_SOURCE=600 ++ ifeq ($(findstring -D_XOPEN_SOURCE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -D_XOPEN_SOURCE=600 + endif + endif + +@@ -283,7 +285,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(SSE2_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + # Need SSE2 or higher for these tests +@@ -392,33 +394,33 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(SSE3_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SSE3 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_SSE3 + else ifeq ($(SSSE3_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SSSE3 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_SSSE3 + else ifeq ($(SSE41_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SSE4 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_SSE4 + else ifeq ($(SSE42_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SSE4 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_SSE4 + endif + + ifneq ($(SSE42_FLAG),) + # Unusual GCC/Clang on Macports. It assembles AES, but not CLMUL. + # test_x86_clmul.s:15: no such instruction: 'pclmulqdq $0, %xmm1,%xmm0' + ifeq ($(CLMUL_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_CLMUL ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_CLMUL + endif + ifeq ($(AESNI_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AESNI ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_AESNI + endif + + ifeq ($(AVX_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AVX ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_AVX + else ifeq ($(AVX2_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_AVX2 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_AVX2 + endif + # SHANI independent of AVX per GH #1045 + ifeq ($(SHANI_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SHANI ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_SHANI + endif + endif + +@@ -437,7 +439,7 @@ ifeq ($(DETECT_FEATURES),1) + #TOPT = + #HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + #ifneq ($(strip $(HAVE_OPT)),0) +- # CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_MIXED_ASM ++ # CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_MIXED_ASM + #endif + + # SSE2_FLAGS +@@ -453,13 +455,13 @@ ifneq ($(INTEL_COMPILER),0) + # "internal error: backend signals" occurs on some x86 inline assembly with ICC 9 and + # some x64 inline assembly with ICC 11.0. If you want to use Crypto++'s assembly code + # with ICC, try enabling it on individual files +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + endif + + # Allow use of "/" operator for GNU Assembler. + # http://sourceware.org/bugzilla/show_bug.cgi?id=4572 +-ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),) ++ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) + ifeq ($(IS_SUN)$(GCC_COMPILER),11) + CRYPTOPP_CXXFLAGS += -Wa,--divide + endif +@@ -473,6 +475,12 @@ endif + ########################################################### + + ifneq ($(IS_ARM32),0) ++ ++# No need for feature detection on this platform if NEON is disabled ++ifneq ($(findstring -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ DETECT_FEATURES := 0 ++endif ++ + ifeq ($(DETECT_FEATURES),1) + + # Clang needs an option to include +@@ -507,7 +515,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(NEON_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + # DETECT_FEATURES +@@ -560,7 +568,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(ASIMD_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + ifneq ($(ASIMD_FLAG),) +@@ -570,7 +578,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + CRC_FLAG = -march=armv8-a+crc + else +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_CRC32 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_CRC32 + endif + + TPROG = TestPrograms/test_arm_aes.cpp +@@ -579,7 +587,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + AES_FLAG = -march=armv8-a+crypto + else +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_AES ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_AES + endif + + TPROG = TestPrograms/test_arm_pmull.cpp +@@ -589,7 +597,7 @@ ifeq ($(DETECT_FEATURES),1) + GCM_FLAG = -march=armv8-a+crypto + GF2N_FLAG = -march=armv8-a+crypto + else +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_PMULL ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_PMULL + endif + + TPROG = TestPrograms/test_arm_sha1.cpp +@@ -598,7 +606,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA_FLAG = -march=armv8-a+crypto + else +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA1 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA1 + endif + + TPROG = TestPrograms/test_arm_sha256.cpp +@@ -607,7 +615,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA_FLAG = -march=armv8-a+crypto + else +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA2 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA2 + endif + + TPROG = TestPrograms/test_arm_sm3.cpp +@@ -617,8 +625,8 @@ ifeq ($(DETECT_FEATURES),1) + SM3_FLAG = -march=armv8.4-a+sm3 + SM4_FLAG = -march=armv8.4-a+sm3 + else +- #CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SM3 +- #CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SM4 ++ #CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SM3 ++ #CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SM4 + endif + + TPROG = TestPrograms/test_arm_sha3.cpp +@@ -627,7 +635,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA3_FLAG = -march=armv8.4-a+sha3 + else +- #CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA3 ++ #CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA3 + endif + + TPROG = TestPrograms/test_arm_sha512.cpp +@@ -636,7 +644,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA512_FLAG = -march=armv8.4-a+sha512 + else +- #CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA512 ++ #CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA512 + endif + + # ASIMD_FLAG +@@ -788,13 +796,13 @@ ifeq ($(DETECT_FEATURES),1) + # Fixups for missing ISAs + + ifeq ($(ALTIVEC_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ALTIVEC + else ifeq ($(POWER7_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_POWER7 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_POWER7 + else ifeq ($(POWER8_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_POWER8 ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_POWER8 + #else ifeq ($(POWER9_FLAG),) +- # CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_POWER9 ++ # CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_POWER9 + endif + + # DETECT_FEATURES +@@ -919,7 +927,7 @@ endif + # http://www.oracle.com/technetwork/server-storage/solaris/hwcap-modification-139536.html + ifeq ($(IS_SUN)$(SUN_COMPILER),11) + ifneq ($(IS_X86)$(IS_X64),00) +- ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CRYPTOPP_CXXFLAGS) $(CXXFLAGS)),) ++ ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) + CRYPTOPP_LDFLAGS += -M cryptopp.mapfile + endif # No CRYPTOPP_DISABLE_ASM + endif # X86/X32/X64 +@@ -941,7 +949,7 @@ SUN_CC10_BUGGY := $(shell $(CXX) -V 2>&1 | $(GREP) -c -E "CC: Sun .* 5\.10 .* (2 + ifneq ($(SUN_CC10_BUGGY),0) + # -DCRYPTOPP_INCLUDE_VECTOR_CC is needed for Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21 + # and was fixed in May 2010. Remove it if you get "already had a body defined" errors in vector.cc +-CRYPTOPP_CXXFLAGS += -DCRYPTOPP_INCLUDE_VECTOR_CC ++CRYPTOPP_CPPFLAGS += -DCRYPTOPP_INCLUDE_VECTOR_CC + endif + AR = $(CXX) + ARFLAGS = -xar -o +@@ -950,9 +958,9 @@ endif + + # No ASM for Travis testing + ifeq ($(findstring no-asm,$(MAKECMDGOALS)),no-asm) +- ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CRYPTOPP_CXXFLAGS) $(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_ASM +- endif # CRYPTOPP_CXXFLAGS ++ ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM ++ endif # CRYPTOPP_CPPFLAGS + endif # No ASM + + # Native build testing. Issue 'make native'. +@@ -998,10 +1006,10 @@ ifeq ($(findstring ubsan,$(MAKECMDGOALS)),ubsan) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-xO%=-xO1) + ifeq ($(findstring -fsanitize=undefined,$(CXXFLAGS)),) + CRYPTOPP_CXXFLAGS += -fsanitize=undefined +- endif # CRYPTOPP_CXXFLAGS +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # CRYPTOPP_CXXFLAGS ++ endif # CRYPTOPP_CPPFLAGS ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CRYPTOPP_CPPFLAGS + endif # UBsan + + # Address Sanitizer (Asan) testing. Issue 'make asan'. +@@ -1012,9 +1020,9 @@ ifeq ($(findstring asan,$(MAKECMDGOALS)),asan) + ifeq ($(findstring -fsanitize=address,$(CXXFLAGS)),) + CRYPTOPP_CXXFLAGS += -fsanitize=address + endif # CRYPTOPP_CXXFLAGS +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # CRYPTOPP_CXXFLAGS ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CRYPTOPP_CPPFLAGS + ifeq ($(findstring -fno-omit-frame-pointer,$(CXXFLAGS)),) + CRYPTOPP_CXXFLAGS += -fno-omit-frame-pointer + endif # CRYPTOPP_CXXFLAGS +@@ -1036,8 +1044,8 @@ ifneq ($(filter lcov coverage,$(MAKECMDGOALS)),) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-g%=-g3) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-O%=-O1) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-xO%=-xO1) +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_COVERAGE ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_COVERAGE + endif # CRYPTOPP_COVERAGE + ifeq ($(findstring -coverage,$(CXXFLAGS)),) + CRYPTOPP_CXXFLAGS += -coverage +@@ -1049,8 +1057,8 @@ ifneq ($(filter gcov codecov,$(MAKECMDGOALS)),) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-g%=-g3) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-O%=-O1) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-xO%=-xO1) +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_COVERAGE ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_COVERAGE + endif # CRYPTOPP_COVERAGE + ifeq ($(findstring -coverage,$(CXXFLAGS)),) + CRYPTOPP_CXXFLAGS += -coverage +@@ -1063,9 +1071,9 @@ ifneq ($(filter valgrind,$(MAKECMDGOALS)),) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-g%=-g3) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-O%=-O1) + CRYPTOPP_CXXFLAGS := $(CRYPTOPP_CXXFLAGS:-xO%=-xO1) +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # -DCRYPTOPP_COVERAGE ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CRYPTOPP_CPPFLAGS + endif # Valgrind + + # Debug testing on GNU systems. Triggered by -DDEBUG. +@@ -1076,9 +1084,9 @@ ifneq ($(filter -DDEBUG -DDEBUG=1,$(CXXFLAGS)),) + USING_GLIBCXX := $(shell $(CXX)$(CXXFLAGS) -E $(TPROG) -c 2>&1 | $(GREP) -i -c "__GLIBCXX__") + ifneq ($(USING_GLIBCXX),0) + ifeq ($(HAS_NEWLIB),0) +- ifeq ($(findstring -D_GLIBCXX_DEBUG,$(CXXFLAGS)),) +- CRYPTOPP_CXXFLAGS += -D_GLIBCXX_DEBUG +- endif # CRYPTOPP_CXXFLAGS ++ ifeq ($(findstring -D_GLIBCXX_DEBUG,$(CPPFLAGS)$(CXXFLAGS)),) ++ CRYPTOPP_CPPFLAGS += -D_GLIBCXX_DEBUG ++ endif # CRYPTOPP_CPPFLAGS + endif # HAS_NEWLIB + endif # USING_GLIBCXX + +@@ -1169,18 +1177,20 @@ ifneq ($(IS_MINGW),0) + INCL += resource.h + endif + +-# Cryptogams source files. We couple to ARMv7. ++# Cryptogams source files. We couple to ARMv7 and NEON. + # Limit to Linux. The source files target the GNU assembler. + # Also see https://www.cryptopp.com/wiki/Cryptogams. + ifeq ($(IS_ARM32)$(IS_LINUX),11) +- ifeq ($(CLANG_COMPILER),1) +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack +- else +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ ifeq ($(filter -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ ifeq ($(CLANG_COMPILER),1) ++ CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack ++ CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack ++ else ++ CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack ++ CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ endif ++ SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif +- SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif + + # Remove unneeded arch specific files to speed build time. +@@ -1412,6 +1422,7 @@ ifneq ($(wildcard libcryptopp.so$(SOLIB_VERSION_SUFFIX)),) + $(CHMOD) u=rwx,go=rx $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_VERSION_SUFFIX) + ifeq ($(HAS_SOLIB_VERSION),1) + -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so ++ -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_COMPAT_SUFFIX) + $(LDCONF) $(DESTDIR)$(LIBDIR) + endif + endif +@@ -1499,7 +1510,7 @@ cryptopp.pc libcryptopp.pc: + @echo '' >> libcryptopp.pc + @echo 'Name: Crypto++' >> libcryptopp.pc + @echo 'Description: Crypto++ cryptographic library' >> libcryptopp.pc +- @echo 'Version: 8.6' >> libcryptopp.pc ++ @echo 'Version: 8.7' >> libcryptopp.pc + @echo 'URL: https://cryptopp.com/' >> libcryptopp.pc + @echo '' >> libcryptopp.pc + @echo 'Cflags: -I$${includedir}' >> libcryptopp.pc +@@ -1532,7 +1543,7 @@ endif + convert: + @-$(CHMOD) u=rwx,go=rx $(EXEC_DIRS) + @-$(CHMOD) u=rw,go=r $(TEXT_FILES) *.supp .*.yml *.asm *.zip TestVectors/*.txt TestData/*.dat TestPrograms/*.cpp +- @-$(CHMOD) u=rwx,go=rx $(EXEC_FILES) *.sh ++ @-$(CHMOD) u=rwx,go=rx $(EXEC_FILES) + -unix2dos --keepdate --quiet $(TEXT_FILES) .*.yml *.asm TestScripts/*.cmd TestScripts/*.txt TestScripts/*.cpp + -dos2unix --keepdate --quiet GNUmakefile GNUmakefile-cross *.sh *.S *.supp *.mapfile TestScripts/*.sh + ifneq ($(IS_DARWIN),0) +@@ -1737,16 +1748,16 @@ rijndael.o : rijndael.cpp + endif + + # Only use CRYPTOPP_DATA_DIR if its not set in CXXFLAGS +-ifeq ($(findstring -DCRYPTOPP_DATA_DIR, $(CXXFLAGS)),) ++ifeq ($(findstring -DCRYPTOPP_DATA_DIR, $(CPPFLAGS)$(CXXFLAGS)),) + ifneq ($(strip $(CRYPTOPP_DATA_DIR)),) + validat%.o : validat%.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" -c) $< ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" $(CXXFLAGS) -c) $< + bench%.o : bench%.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" -c) $< ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" $(CXXFLAGS) -c) $< + datatest.o : datatest.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" -c) $< ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" $(CXXFLAGS) -c) $< + test.o : test.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" -c) $< ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_DATA_DIR=\"$(CRYPTOPP_DATA_DIR)\" $(CXXFLAGS) -c) $< + endif + endif + +@@ -1754,13 +1765,13 @@ validat1.o : validat1.cpp + $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) $(ALTIVEC_FLAG) -c) $< + + %.dllonly.o : %.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_DLL_ONLY -c) $< -o $@ ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_DLL_ONLY $(CXXFLAGS) -c) $< -o $@ + + %.import.o : %.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_IMPORTS -c) $< -o $@ ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_IMPORTS $(CXXFLAGS) -c) $< -o $@ + + %.export.o : %.cpp +- $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -DCRYPTOPP_EXPORTS -c) $< -o $@ ++ $(CXX) $(strip $(CPPFLAGS) -DCRYPTOPP_EXPORTS $(CXXFLAGS) -c) $< -o $@ + + %.bc : %.cpp + $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) -c) $< +diff --git a/GNUmakefile-cross b/GNUmakefile-cross +index 9847f04b..1c2c55fb 100644 +--- a/GNUmakefile-cross ++++ b/GNUmakefile-cross +@@ -184,15 +184,15 @@ IS_PPC64 := 0 + + # Hack to skip CPU feature tests for some recipes + DETECT_FEATURES ?= 1 +-ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),-DCRYPTOPP_DISABLE_ASM) ++ifneq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring clean,$(MAKECMDGOALS)),clean) ++else ifneq ($(findstring clean,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring distclean,$(MAKECMDGOALS)),distclean) ++else ifneq ($(findstring distclean,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring trim,$(MAKECMDGOALS)),trim) ++else ifneq ($(findstring trim,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 +-else ifeq ($(findstring zip,$(MAKECMDGOALS)),zip) ++else ifneq ($(findstring zip,$(MAKECMDGOALS)),) + DETECT_FEATURES := 0 + endif + +@@ -240,7 +240,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(SSE2_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + # Need SSE2 or higher for these tests +@@ -336,33 +336,33 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(SSE3_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_SSE3 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_SSE3 + else ifeq ($(SSSE3_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_SSSE3 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_SSSE3 + else ifeq ($(SSE41_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_SSE4 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_SSE4 + else ifeq ($(SSE42_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_SSE4 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_SSE4 + endif + + ifneq ($(SSE42_FLAG),) + # Unusual GCC/Clang on Macports. It assembles AES, but not CLMUL. + # test_x86_clmul.s:15: no such instruction: 'pclmulqdq $0, %xmm1,%xmm0' + ifeq ($(CLMUL_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_CLMUL ++ CPPFLAGS += -DCRYPTOPP_DISABLE_CLMUL + endif + ifeq ($(AESNI_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_AESNI ++ CPPFLAGS += -DCRYPTOPP_DISABLE_AESNI + endif + + ifeq ($(AVX_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_AVX ++ CPPFLAGS += -DCRYPTOPP_DISABLE_AVX + else ifeq ($(AVX2_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_AVX2 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_AVX2 + endif + # SHANI independent of AVX per GH #1045 + ifeq ($(SHANI_FLAG),) +- CRYPTOPP_CXXFLAGS += -DCRYPTOPP_DISABLE_SHANI ++ CPPFLAGS += -DCRYPTOPP_DISABLE_SHANI + endif + endif + +@@ -381,7 +381,7 @@ ifeq ($(DETECT_FEATURES),1) + #TOPT = + #HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + #ifneq ($(strip $(HAVE_OPT)),0) +- # CXXFLAGS += -DCRYPTOPP_DISABLE_MIXED_ASM ++ # CPPFLAGS += -DCRYPTOPP_DISABLE_MIXED_ASM + #endif + + # SSE2_FLAGS +@@ -398,6 +398,12 @@ endif + ########################################################### + + ifneq ($(IS_ARM32),0) ++ ++# No need for feature detection on this platform if NEON is disabled ++ifneq ($(findstring -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ DETECT_FEATURES := 0 ++endif ++ + ifeq ($(DETECT_FEATURES),1) + + # Android needs -c compile flag for NEON. Otherwise there's an odd linker message. +@@ -441,7 +447,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(NEON_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + # DETECT_FEATURES +@@ -508,7 +514,7 @@ ifeq ($(DETECT_FEATURES),1) + endif + + ifeq ($(ASIMD_FLAG),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_ASM ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ASM + endif + + ifneq ($(ASIMD_FLAG),) +@@ -518,7 +524,7 @@ ifeq ($(DETECT_FEATURES),1) + HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + ifneq ($(strip $(HAVE_OPT)),0) + CRC_FLAG = +- CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_CRC32 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_CRC32 + endif + + TPROG = TestPrograms/test_arm_aes.cpp +@@ -526,7 +532,7 @@ ifeq ($(DETECT_FEATURES),1) + HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + ifneq ($(strip $(HAVE_OPT)),0) + AES_FLAG = +- CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_AES ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_AES + endif + + TPROG = TestPrograms/test_arm_pmull.cpp +@@ -535,7 +541,7 @@ ifeq ($(DETECT_FEATURES),1) + ifneq ($(strip $(HAVE_OPT)),0) + GCM_FLAG = + GF2N_FLAG = +- CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_PMULL ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_PMULL + endif + + TPROG = TestPrograms/test_arm_sha1.cpp +@@ -543,7 +549,7 @@ ifeq ($(DETECT_FEATURES),1) + HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + ifneq ($(strip $(HAVE_OPT)),0) + SHA_FLAG = +- CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA1 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA1 + endif + + TPROG = TestPrograms/test_arm_sha256.cpp +@@ -551,7 +557,7 @@ ifeq ($(DETECT_FEATURES),1) + HAVE_OPT = $(shell $(TCOMMAND) 2>&1 | wc -w) + ifneq ($(strip $(HAVE_OPT)),0) + SHA_FLAG = +- CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA2 ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA2 + endif + + TPROG = TestPrograms/test_arm_sm3.cpp +@@ -561,8 +567,8 @@ ifeq ($(DETECT_FEATURES),1) + SM3_FLAG = -march=armv8.4-a+sm3 + SM4_FLAG = -march=armv8.4-a+sm3 + else +- #CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SM3 +- #CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SM4 ++ #CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SM3 ++ #CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SM4 + endif + + TPROG = TestPrograms/test_arm_sha3.cpp +@@ -571,7 +577,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA3_FLAG = -march=armv8.4-a+sha3 + else +- #CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA3 ++ #CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA3 + endif + + TPROG = TestPrograms/test_arm_sha512.cpp +@@ -580,7 +586,7 @@ ifeq ($(DETECT_FEATURES),1) + ifeq ($(strip $(HAVE_OPT)),0) + SHA512_FLAG = -march=armv8.4-a+sha512 + else +- #CXXFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA512 ++ #CPPFLAGS += -DCRYPTOPP_DISABLE_ARM_SHA512 + endif + + # ASIMD_FLAG +@@ -596,10 +602,10 @@ endif + ########################################################### + + # No ASM for Travis testing +-ifeq ($(findstring no-asm,$(MAKECMDGOALS)),no-asm) +- ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS)),) +- CXXFLAGS += -DCRYPTOPP_DISABLE_ASM +- endif # CXXFLAGS ++ifneq ($(findstring no-asm,$(MAKECMDGOALS)),) ++ ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) ++ CPPFLAGS += -DCRYPTOPP_DISABLE_ASM ++ endif # CPPFLAGS + endif # No ASM + + # Undefined Behavior Sanitizer (UBsan) testing. Issue 'make ubsan'. +@@ -607,9 +613,9 @@ ifeq ($(findstring ubsan,$(MAKECMDGOALS)),ubsan) + ifeq ($(findstring -fsanitize=undefined,$(CXXFLAGS)),) + CXXFLAGS += -fsanitize=undefined + endif # CXXFLAGS +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # CXXFLAGS ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CPPFLAGS + endif # UBsan + + # Address Sanitizer (Asan) testing. Issue 'make asan'. +@@ -617,9 +623,9 @@ ifeq ($(findstring asan,$(MAKECMDGOALS)),asan) + ifeq ($(findstring -fsanitize=address,$(CXXFLAGS)),) + CXXFLAGS += -fsanitize=address + endif # CXXFLAGS +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # CXXFLAGS ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CPPFLAGS + ifeq ($(findstring -fno-omit-frame-pointer,$(CXXFLAGS)),) + CXXFLAGS += -fno-omit-frame-pointer + endif # CXXFLAGS +@@ -641,20 +647,20 @@ ifneq ($(filter valgrind,$(MAKECMDGOALS)),) + CXXFLAGS := $(CXXFLAGS:-g%=-g3) + CXXFLAGS := $(CXXFLAGS:-O%=-O1) + CXXFLAGS := $(CXXFLAGS:-xO%=-xO1) +- ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CXXFLAGS)),) +- CXXFLAGS += -DCRYPTOPP_COVERAGE +- endif # -DCRYPTOPP_COVERAGE ++ ifeq ($(findstring -DCRYPTOPP_COVERAGE,$(CPPFLAGS)$(CXXFLAGS)),) ++ CPPFLAGS += -DCRYPTOPP_COVERAGE ++ endif # CPPFLAGS + endif # Valgrind + + # Debug testing on GNU systems. Triggered by -DDEBUG. +-# Newlib test due to http://sourceware.org/bugzilla/show_bug.cgi?id=20268 +-ifneq ($(filter -DDEBUG -DDEBUG=1,$(CXXFLAGS)),) +- USING_GLIBCXX := $(shell $(CXX) $(CXXFLAGS) -E pch.cpp 2>&1 | $(GREP) -i -c "__GLIBCXX__") ++# Newlib test due to http://sourceware.org/bugzilla/show_bug.cgi?id=20268 ++ifneq ($(filter -DDEBUG -DDEBUG=1,$(CPPFLAGS) $(CXXFLAGS)),) ++ USING_GLIBCXX := $(shell $(CXX) $(CPPFLAGS) $(CXXFLAGS) -E pch.cpp 2>&1 | $(GREP) -i -c "__GLIBCXX__") + ifneq ($(USING_GLIBCXX),0) + ifeq ($(HAS_NEWLIB),0) +- ifeq ($(findstring -D_GLIBCXX_DEBUG,$(CXXFLAGS)),) +- CXXFLAGS += -D_GLIBCXX_DEBUG +- endif # CXXFLAGS ++ ifeq ($(findstring -D_GLIBCXX_DEBUG,$(CPPFLAGS)$(CXXFLAGS)),) ++ CPPFLAGS += -D_GLIBCXX_DEBUG ++ endif # CPPFLAGS + endif # HAS_NEWLIB + endif # USING_GLIBCXX + endif # GNU Debug build +@@ -687,18 +693,20 @@ SRCS := cryptlib.cpp cpu.cpp integer.cpp $(filter-out cryptlib.cpp cpu.cpp integ + # For Makefile.am; resource.h is Windows + INCL := $(filter-out resource.h,$(sort $(wildcard *.h))) + +-# Cryptogams source files. We couple to ARMv7. ++# Cryptogams source files. We couple to ARMv7 and NEON. + # Limit to Linux. The source files target the GNU assembler. + # Also see https://www.cryptopp.com/wiki/Cryptogams. + ifeq ($(IS_ARM32)$(IS_LINUX),11) +- ifeq ($(CLANG_COMPILER),1) +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack +- else +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ ifeq ($(filter -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ ifeq ($(CLANG_COMPILER),1) ++ CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack ++ CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack ++ else ++ CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack ++ CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ endif ++ SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif +- SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif + + # Remove unneeded arch specific files to speed build time. +@@ -856,6 +864,7 @@ ifneq ($(wildcard libcryptopp.so$(SOLIB_VERSION_SUFFIX)),) + $(CHMOD) u=rwx,go=rx $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_VERSION_SUFFIX) + ifeq ($(HAS_SOLIB_VERSION),1) + -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so ++ -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_COMPAT_SUFFIX) + $(LDCONF) $(DESTDIR)$(LIBDIR) + endif + endif +diff --git a/config_asm.h b/config_asm.h +index 3202a2c3..3f7f2306 100644 +--- a/config_asm.h ++++ b/config_asm.h +@@ -130,7 +130,7 @@ + #endif + + // Couple to CRYPTOPP_DISABLE_AESNI, but use CRYPTOPP_CLMUL_AVAILABLE so we can selectively +-// disable for misbehaving platofrms and compilers, like Solaris or some Clang. ++// disable for misbehaving platforms and compilers, like Solaris or some Clang. + #if defined(CRYPTOPP_DISABLE_AESNI) + #define CRYPTOPP_DISABLE_CLMUL 1 + #endif +@@ -311,6 +311,12 @@ + # endif // Platforms + #endif + ++// Buggy Microsoft compiler, https://github.com/weidai11/cryptopp/issues/1096 ++#if defined(_MSC_VER) ++# undef CRYPTOPP_ARM_SHA1_AVAILABLE ++# undef CRYPTOPP_ARM_SHA2_AVAILABLE ++#endif ++ + // ARMv8 and SHA-512, SHA-3. -march=armv8.2-a+crypto or above must be present + // Requires GCC 8.0, Clang 11.0, Apple Clang 12.0 or Visual Studio 20?? + #if !defined(CRYPTOPP_ARM_SHA3_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ARM_SHA) +@@ -365,12 +371,14 @@ + // than C/C++. Define this to use the Cryptogams AES and SHA implementations + // on GNU Linux systems. When defined, Crypto++ will use aes_armv4.S, + // sha1_armv4.S and sha256_armv4.S. https://www.cryptopp.com/wiki/Cryptogams. +-#if defined(__arm__) && defined(__linux__) +-# if defined(__GNUC__) || defined(__clang__) +-# define CRYPTOGAMS_ARM_AES 1 +-# define CRYPTOGAMS_ARM_SHA1 1 +-# define CRYPTOGAMS_ARM_SHA256 1 +-# define CRYPTOGAMS_ARM_SHA512 1 ++#if !defined(CRYPTOPP_DISABLE_ARM_NEON) ++# if defined(__arm__) && defined(__linux__) ++# if defined(__GNUC__) || defined(__clang__) ++# define CRYPTOGAMS_ARM_AES 1 ++# define CRYPTOGAMS_ARM_SHA1 1 ++# define CRYPTOGAMS_ARM_SHA256 1 ++# define CRYPTOGAMS_ARM_SHA512 1 ++# endif + # endif + #endif + diff --git a/patches/armhf_FTBFS_fix.patch b/patches/armhf_FTBFS_fix.patch new file mode 100644 index 0000000..2bb95fb --- /dev/null +++ b/patches/armhf_FTBFS_fix.patch @@ -0,0 +1,256 @@ +From c38adfd7f440c724e79a8582d75167337423021f Mon Sep 17 00:00:00 2001 +From: Jeffrey Walton +Date: Thu, 10 Feb 2022 18:56:24 -0500 +Subject: [PATCH] Don't use -march=armv7 when compiler already offers it (GH + #1094) + +--- + GNUmakefile | 43 ++++++++++++++++++++++--------------- + GNUmakefile-cross | 54 +++++++++++++++++++++++++++++------------------ + 2 files changed, 59 insertions(+), 38 deletions(-) + +diff --git a/GNUmakefile b/GNUmakefile +index 31bf6b365..c283568c0 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -155,12 +155,18 @@ ifeq ($(CXXFLAGS),) + endif + endif + ++# Needed when the assembler is invoked ++ifeq ($(findstring $(ASFLAGS),-Wa,--noexecstack),) ++ CRYPTOPP_ASFLAGS ?= -Wa,--noexecstack ++endif ++ + # Fix CXX on Cygwin 1.1.4 + ifeq ($(CXX),gcc) + CXX := g++ + endif + +-# On ARM we may compile aes_armv4.S though the CC compiler ++# On ARM we may compile aes_armv4.S, sha1_armv4.S, sha256_armv4.S, and ++# sha512_armv4.S through the CC compiler + ifeq ($(GCC_COMPILER),1) + CC=gcc + else ifeq ($(CLANG_COMPILER),1) +@@ -956,13 +962,6 @@ ARFLAGS = -xar -o + RANLIB = true + endif + +-# No ASM for Travis testing +-ifeq ($(findstring no-asm,$(MAKECMDGOALS)),no-asm) +- ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) +- CRYPTOPP_CPPFLAGS += -DCRYPTOPP_DISABLE_ASM +- endif # CRYPTOPP_CPPFLAGS +-endif # No ASM +- + # Native build testing. Issue 'make native'. + ifeq ($(findstring native,$(MAKECMDGOALS)),native) + NATIVE_OPT = +@@ -1182,12 +1181,18 @@ endif + # Also see https://www.cryptopp.com/wiki/Cryptogams. + ifeq ($(IS_ARM32)$(IS_LINUX),11) + ifeq ($(filter -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ # Do not use -march=armv7 if the compiler is already targeting the ISA. ++ # Also see https://github.com/weidai11/cryptopp/issues/1094 ++ ifneq ($($(CXX) ++ -dM -E - /dev/null| grep 'ARM_ARCH 7|_ARM_ARCH_7A__'),) ++ CRYPTOGAMS_ARMV7_FLAG = -march=armv7-a ++ endif + ifeq ($(CLANG_COMPILER),1) +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack ++ CRYPTOGAMS_ARM_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) ++ CRYPTOGAMS_ARM_THUMB_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) -mthumb + else +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ # -mfpu=auto due to https://github.com/weidai11/cryptopp/issues/1094 ++ CRYPTOGAMS_ARM_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) ++ CRYPTOGAMS_ARM_THUMB_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) + endif + SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif +@@ -1244,7 +1249,8 @@ CLEAN_OBJS := $(CLEAN_SRCS:.cpp=.o) $(CLEAN_SRCS:.cpp=.import.o) $(CLEAN_SRCS:.c + # argument to the make program: make CXXFLAGS="..." + CPPFLAGS := $(strip $(CRYPTOPP_CPPFLAGS) $(CPPFLAGS)) + CXXFLAGS := $(strip $(CRYPTOPP_CXXFLAGS) $(CXXFLAGS)) +-LDFLAGS := $(strip $(CRYPTOPP_LDFLAGS) $(LDFLAGS)) ++ASFLAGS := $(strip $(CRYPTOPP_ASFLAGS) $(ASFLAGS)) ++LDFLAGS := $(strip $(CRYPTOPP_LDFLAGS) $(LDFLAGS)) + + ########################################################### + ##### Targets and Recipes ##### +@@ -1519,6 +1525,9 @@ cryptopp.pc libcryptopp.pc: + # This recipe prepares the distro files + TEXT_FILES := *.h *.cpp *.S GNUmakefile GNUmakefile-cross License.txt Readme.txt Install.txt Filelist.txt Doxyfile cryptest* cryptlib* dlltest* cryptdll* *.sln *.vcxproj *.filters cryptopp.rc TestVectors/*.txt TestData/*.dat TestPrograms/*.cpp + EXEC_FILES := TestScripts/*.sh TestScripts/*.cmd ++ifneq ($(wildcard *.sh),) ++ EXEC_FILES += $(wildcard *.sh) ++endif + EXEC_DIRS := TestData/ TestVectors/ TestScripts/ TestPrograms/ + + ifeq ($(wildcard Filelist.txt),Filelist.txt) +@@ -1594,7 +1603,7 @@ NOSTD_CXXFLAGS=$(filter-out -stdlib=%,$(filter-out -std=%,$(CXXFLAGS))) + + # Cryptogams ARM asm implementation. AES needs -mthumb for Clang + aes_armv4.o : aes_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_THUMB_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_THUMB_FLAG) -c) $< + + # SSSE3 or NEON available + aria_simd.o : aria_simd.cpp +@@ -1694,15 +1703,15 @@ sha_simd.o : sha_simd.cpp + + # Cryptogams SHA1 asm implementation. + sha1_armv4.o : sha1_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + # Cryptogams SHA256 asm implementation. + sha256_armv4.o : sha256_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + # Cryptogams SHA512 asm implementation. + sha512_armv4.o : sha512_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + sha3_simd.o : sha3_simd.cpp + $(CXX) $(strip $(CPPFLAGS) $(CXXFLAGS) $(SHA3_FLAG) -c) $< +diff --git a/GNUmakefile-cross b/GNUmakefile-cross +index 1c2c55fb1..27e124dc2 100644 +--- a/GNUmakefile-cross ++++ b/GNUmakefile-cross +@@ -47,7 +47,7 @@ endif + IS_LINUX := $(shell echo $(MACHINEX) | $(GREP) -i -c "Linux") + + # Can be used by Android and Embedded cross-compiles. Disable by default because +-# Android and embedded users typically don't run this configuration. ++# Android and embedded users typically don't run this configuration. + HAS_SOLIB_VERSION ?= 0 + + # Formerly adhoc.cpp was created from adhoc.cpp.proto when needed. +@@ -60,6 +60,19 @@ endif + ##### General Variables ##### + ########################################################### + ++# Needed when the assembler is invoked ++ifeq ($(findstring $(ASFLAGS),-Wa,--noexecstack),) ++ ASFLAGS += -Wa,--noexecstack ++endif ++ ++# On ARM we may compile aes_armv4.S, sha1_armv4.S, sha256_armv4.S, and ++# sha512_armv4.S through the CC compiler ++ifeq ($(GCC_COMPILER),1) ++ CC ?= gcc ++else ifeq ($(CLANG_COMPILER),1) ++ CC ?= clang ++endif ++ + # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html + ifeq ($(PREFIX),) + PREFIX = /usr/local +@@ -87,7 +100,7 @@ endif + ########################################################### + + # MacOS cross-compile configuration. +-# See http://www.cryptopp.com/wiki/MacOS_(Command_Line). ++# See http://www.cryptopp.com/wiki/MacOS_(Command_Line). + ifeq ($(IS_MACOS),1) + # setenv-macos.sh sets CPPFLAGS, CXXFLAGS and LDFLAGS + IS_APPLE_LIBTOOL=$(shell libtool -V 2>&1 | $(GREP) -i -c 'Apple') +@@ -104,7 +117,7 @@ endif + ########################################################### + + # iOS cross-compile configuration. +-# See http://www.cryptopp.com/wiki/iOS_(Command_Line). ++# See http://www.cryptopp.com/wiki/iOS_(Command_Line). + ifeq ($(IS_IOS),1) + # setenv-ios.sh sets CPPFLAGS, CXXFLAGS and LDFLAGS + AR = libtool +@@ -116,7 +129,7 @@ endif + ########################################################### + + # Android cross-compile configuration. +-# See http://www.cryptopp.com/wiki/Android_(Command_Line). ++# See http://www.cryptopp.com/wiki/Android_(Command_Line). + ifeq ($(IS_ANDROID),1) + # setenv-android.sh sets CPPFLAGS, CXXFLAGS and LDFLAGS + +@@ -130,8 +143,8 @@ endif + ########################################################### + + # ARM embedded cross-compile configuration. +-# See http://www.cryptopp.com/wiki/ARM_Embedded_(Command_Line) +-# and http://www.cryptopp.com/wiki/ARM_Embedded_(Bare Metal). ++# See http://www.cryptopp.com/wiki/ARM_Embedded_(Command_Line) ++# and http://www.cryptopp.com/wiki/ARM_Embedded_(Bare Metal). + ifeq ($(IS_ARM_EMBEDDED),1) + # setenv-android.sh sets CPPFLAGS, CXXFLAGS and LDFLAGS + endif +@@ -601,13 +614,6 @@ endif + ##### Common ##### + ########################################################### + +-# No ASM for Travis testing +-ifneq ($(findstring no-asm,$(MAKECMDGOALS)),) +- ifeq ($(findstring -DCRYPTOPP_DISABLE_ASM,$(CPPFLAGS)$(CXXFLAGS)),) +- CPPFLAGS += -DCRYPTOPP_DISABLE_ASM +- endif # CPPFLAGS +-endif # No ASM +- + # Undefined Behavior Sanitizer (UBsan) testing. Issue 'make ubsan'. + ifeq ($(findstring ubsan,$(MAKECMDGOALS)),ubsan) + ifeq ($(findstring -fsanitize=undefined,$(CXXFLAGS)),) +@@ -698,12 +704,18 @@ INCL := $(filter-out resource.h,$(sort $(wildcard *.h))) + # Also see https://www.cryptopp.com/wiki/Cryptogams. + ifeq ($(IS_ARM32)$(IS_LINUX),11) + ifeq ($(filter -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_ARM_NEON,$(CPPFLAGS)$(CXXFLAGS)),) ++ # Do not use -march=armv7 if the compiler is already targeting the ISA. ++ # Also see https://github.com/weidai11/cryptopp/issues/1094 ++ ifneq ($($(CXX) ++ -dM -E - /dev/null| grep 'ARM_ARCH 7|_ARM_ARCH_7A__'),) ++ CRYPTOGAMS_ARMV7_FLAG = -march=armv7-a ++ endif + ifeq ($(CLANG_COMPILER),1) +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -mthumb -Wa,--noexecstack ++ CRYPTOGAMS_ARM_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) ++ CRYPTOGAMS_ARM_THUMB_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) -mthumb + else +- CRYPTOGAMS_ARMV4_FLAG = -march=armv7-a -Wa,--noexecstack +- CRYPTOGAMS_ARMV4_THUMB_FLAG = -march=armv7-a -Wa,--noexecstack ++ # -mfpu=auto due to https://github.com/weidai11/cryptopp/issues/1094 ++ CRYPTOGAMS_ARM_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) ++ CRYPTOGAMS_ARM_THUMB_FLAG = $(CRYPTOGAMS_ARMV7_FLAG) + endif + SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S + endif +@@ -938,7 +950,7 @@ NOSTD_CXXFLAGS=$(filter-out -stdlib=%,$(filter-out -std=%,$(CXXFLAGS))) + + # Cryptogams ARM asm implementation. AES needs -mthumb for Clang + aes_armv4.o : aes_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_THUMB_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_THUMB_FLAG) -c) $< + + # Use C++ compiler on C source after patching. + # https://github.com/weidai11/cryptopp/issues/926 +@@ -1031,15 +1043,15 @@ sha_simd.o : sha_simd.cpp + + # Cryptogams SHA1 asm implementation. + sha1_armv4.o : sha1_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + # Cryptogams SHA256 asm implementation. + sha256_armv4.o : sha256_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + # Cryptogams SHA512 asm implementation. + sha512_armv4.o : sha512_armv4.S +- $(CXX) $(strip $(CPPFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARMV4_FLAG) -c) $< ++ $(CXX) $(strip $(CPPFLAGS) $(ASFLAGS) $(NOSTD_CXXFLAGS) $(CRYPTOGAMS_ARM_FLAG) -c) $< + + # SSE4.2/SHA-NI or ARMv8a available + shacal2_simd.o : shacal2_simd.cpp diff --git a/patches/fix_library_name.patch b/patches/fix_library_name.patch new file mode 100644 index 0000000..f43020f --- /dev/null +++ b/patches/fix_library_name.patch @@ -0,0 +1,346 @@ +Description: use crypto++ instead of cryptopp +Author: Laszlo Boszormenyi (GCS) +Forwarded: not-needed +Last-Update: 2022-02-12 + +--- + +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -13,10 +13,10 @@ TMPDIR ?= /tmp + TOUT ?= a.out + TOUT := $(strip $(TOUT)) + +-# Allow override for the cryptest.exe recipe. Change to +-# ./libcryptopp.so or ./libcryptopp.dylib to suit your ++# Allow override for the cryptest recipe. Change to ++# ./libcrypto++.so or ./libcrypto++.dylib to suit your + # taste. https://github.com/weidai11/cryptopp/issues/866 +-LINK_LIBRARY ?= libcryptopp.a ++LINK_LIBRARY ?= libcrypto++.a + LINK_LIBRARY_PATH ?= ./ + + # Command and arguments +@@ -1135,7 +1135,7 @@ SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR) + ifneq ($(IS_LINUX)$(IS_HURD),00) + # Linux uses full version suffix for shared library + SOLIB_VERSION_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH) +-SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_COMPAT_SUFFIX) ++SOLIB_FLAGS=-Wl,-soname,libcrypto++.so$(SOLIB_COMPAT_SUFFIX) + endif + # Solaris uses -Wl,-h + ifeq ($(IS_SUN),1) +@@ -1143,7 +1143,7 @@ ifeq ($(IS_SUN),1) + # The minor version allows previous version to remain and not overwritten. + # https://blogs.oracle.com/solaris/how-to-name-a-solaris-shared-object-v2 + SOLIB_VERSION_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR) +-SOLIB_FLAGS=-Wl,-h,libcryptopp.so$(SOLIB_COMPAT_SUFFIX) ++SOLIB_FLAGS=-Wl,-h,libcrypto++.so$(SOLIB_COMPAT_SUFFIX) + endif + endif # HAS_SOLIB_VERSION + +@@ -1258,36 +1258,36 @@ LDFLAGS := $(strip $(CRYPTOPP_LDFLAGS) + + # Default builds program with static library only + .PHONY: default +-default: cryptest.exe ++default: cryptest + + .PHONY: all static dynamic +-all: static dynamic cryptest.exe ++all: static dynamic cryptest + + ifneq ($(IS_DARWIN),0) +-static: libcryptopp.a +-shared dynamic dylib: libcryptopp.dylib ++static: libcrypto++.a ++shared dynamic dylib: libcrypto++.dylib + else +-static: libcryptopp.a +-shared dynamic: libcryptopp.so$(SOLIB_VERSION_SUFFIX) ++static: libcrypto++.a ++shared dynamic: libcrypto++.so$(SOLIB_VERSION_SUFFIX) + endif + + # CXXFLAGS are tuned earlier. + .PHONY: native no-asm asan ubsan +-native no-asm asan ubsan: cryptest.exe ++native no-asm asan ubsan: cryptest + + # CXXFLAGS are tuned earlier. Applications must use linker flags + # -Wl,--gc-sections (Linux and Unix) or -Wl,-dead_strip (OS X) + .PHONY: lean +-lean: static dynamic cryptest.exe ++lean: static dynamic cryptest + + # May want to export CXXFLAGS="-g3 -O1" + .PHONY: lcov coverage +-lcov coverage: cryptest.exe ++lcov coverage: cryptest + @-$(RM) -r ./TestCoverage/ + lcov --base-directory . --directory . --zerocounters -q +- ./cryptest.exe v +- ./cryptest.exe tv all +- ./cryptest.exe b 0.25 ++ ./cryptest v ++ ./cryptest tv all ++ ./cryptest b 0.25 + lcov --base-directory . --directory . -c -o cryptest.info + lcov --remove cryptest.info "adhoc.*" -o cryptest.info + lcov --remove cryptest.info "fips140.*" -o cryptest.info +@@ -1297,20 +1297,20 @@ lcov coverage: cryptest.exe + + # Travis CI and CodeCov rule + .PHONY: gcov codecov +-gcov codecov: cryptest.exe ++gcov codecov: cryptest + @-$(RM) -r ./TestCoverage/ +- ./cryptest.exe v +- ./cryptest.exe tv all ++ ./cryptest v ++ ./cryptest tv all + gcov -r $(SRCS) + + # Should use CXXFLAGS="-g3 -O1" + .PHONY: valgrind +-valgrind: cryptest.exe +- valgrind --track-origins=yes --suppressions=cryptopp.supp ./cryptest.exe v ++valgrind: cryptest ++ valgrind --track-origins=yes --suppressions=cryptopp.supp ./cryptest v + + .PHONY: test check +-test check: cryptest.exe +- ./cryptest.exe v ++test check: cryptest ++ ./cryptest v + + # Used to generate list of source files for Autotools, CMakeList, Android.mk, etc + .PHONY: sources +@@ -1350,13 +1350,13 @@ docs html: + .PHONY: clean + clean: + -$(RM) adhoc.cpp.o adhoc.cpp.proto.o $(CLEAN_OBJS) rdrand-*.o +- @-$(RM) libcryptopp.a libcryptopp.dylib cryptopp.dll libcryptopp.dll.a libcryptopp.import.a +- @-$(RM) libcryptopp.so libcryptopp.so$(SOLIB_COMPAT_SUFFIX) libcryptopp.so$(SOLIB_VERSION_SUFFIX) +- @-$(RM) cryptest.exe dlltest.exe cryptest.import.exe cryptest.dat ct et ++ @-$(RM) libcrypto++.a libcrypto++.dylib cryptopp.dll libcrypto++.dll.a libcrypto++.import.a ++ @-$(RM) libcrypto++.so libcrypto++.so$(SOLIB_COMPAT_SUFFIX) libcrypto++.so$(SOLIB_VERSION_SUFFIX) ++ @-$(RM) cryptest dlltest cryptest.import cryptest.dat ct et + @-$(RM) *.la *.lo *.gcov *.gcno *.gcda *.stackdump core core-* +- @-$(RM) /tmp/adhoc.exe ++ @-$(RM) /tmp/adhoc + @-$(RM) -r /tmp/cryptopp_test/ +- @-$(RM) -r *.exe.dSYM/ *.dylib.dSYM/ ++ @-$(RM) -r *.dSYM/ *.dylib.dSYM/ + @-$(RM) -r cov-int/ + + .PHONY: autotools-clean +@@ -1364,7 +1364,7 @@ autotools-clean: + @-$(RM) -f configure.ac configure configure.in Makefile.am Makefile.in Makefile + @-$(RM) -f config.guess config.status config.sub config.h.in compile depcomp + @-$(RM) -f install-sh stamp-h1 ar-lib *.lo *.la *.m4 local.* lt*.sh missing +- @-$(RM) -f cryptest cryptestcwd libtool* libcryptopp.la libcryptopp.pc* ++ @-$(RM) -f cryptest cryptestcwd libtool* libcrypto++.la libcrypto++.pc* + @-$(RM) -rf build-aux/ m4/ auto*.cache/ .deps/ .libs/ + + .PHONY: cmake-clean +@@ -1381,40 +1381,40 @@ android-clean: + distclean: clean autotools-clean cmake-clean android-clean + -$(RM) adhoc.cpp adhoc.cpp.copied GNUmakefile.deps benchmarks.html cryptest.txt + -$(RM) cryptest_all.info cryptest_debug.info cryptest_noasm.info cryptest_base.info cryptest.info cryptest_release.info +- @-$(RM) cryptest-*.txt cryptopp.tgz libcryptopp.pc *.o *.bc *.ii *~ +- @-$(RM) -r cryptlib.lib cryptest.exe *.suo *.sdf *.pdb Win32/ x64/ ipch/ ++ @-$(RM) cryptest-*.txt cryptopp.tgz libcrypto++.pc *.o *.bc *.ii *~ ++ @-$(RM) -r cryptlib.lib cryptest *.suo *.sdf *.pdb Win32/ x64/ ipch/ + @-$(RM) -r $(LIBOBJS:.o=.obj) $(TESTOBJS:.o=.obj) + @-$(RM) -r $(LIBOBJS:.o=.lst) $(TESTOBJS:.o=.lst) + @-$(RM) -r TestCoverage/ ref*/ + @-$(RM) cryptopp$(LIB_VER)\.* CryptoPPRef.zip + +-# Install cryptest.exe, libcryptopp.a, libcryptopp.so and libcryptopp.pc. ++# Install cryptest, libcrypto++.a, libcrypto++.so and libcrypto++.pc. + # The library install was broken-out into its own recipe at GH #653. + .PHONY: install +-install: cryptest.exe install-lib ++install: cryptest install-lib + @-$(MKDIR) $(DESTDIR)$(BINDIR) +- $(CP) cryptest.exe $(DESTDIR)$(BINDIR) +- $(CHMOD) u=rwx,go=rx $(DESTDIR)$(BINDIR)/cryptest.exe +- @-$(MKDIR) $(DESTDIR)$(DATADIR)/cryptopp/TestData +- @-$(MKDIR) $(DESTDIR)$(DATADIR)/cryptopp/TestVectors +- $(CP) TestData/*.dat $(DESTDIR)$(DATADIR)/cryptopp/TestData +- $(CHMOD) u=rw,go=r $(DESTDIR)$(DATADIR)/cryptopp/TestData/*.dat +- $(CP) TestVectors/*.txt $(DESTDIR)$(DATADIR)/cryptopp/TestVectors +- $(CHMOD) u=rw,go=r $(DESTDIR)$(DATADIR)/cryptopp/TestVectors/*.txt ++ $(CP) cryptest $(DESTDIR)$(BINDIR) ++ $(CHMOD) u=rwx,go=rx $(DESTDIR)$(BINDIR)/cryptest ++ @-$(MKDIR) $(DESTDIR)$(DATADIR)/crypto++/TestData ++ @-$(MKDIR) $(DESTDIR)$(DATADIR)/crypto++/TestVectors ++ $(CP) TestData/*.dat $(DESTDIR)$(DATADIR)/crypto++/TestData ++ $(CHMOD) u=rw,go=r $(DESTDIR)$(DATADIR)/crypto++/TestData/*.dat ++ $(CP) TestVectors/*.txt $(DESTDIR)$(DATADIR)/crypto++/TestVectors ++ $(CHMOD) u=rw,go=r $(DESTDIR)$(DATADIR)/crypto++/TestVectors/*.txt + +-# A recipe to install only the library, and not cryptest.exe. Also ++# A recipe to install only the library, and not cryptest. Also + # see https://github.com/weidai11/cryptopp/issues/653. Some users +-# already have a libcryptopp.pc. Install the *.pc file if the file +-# is present. If you want one, then issue 'make libcryptopp.pc'. ++# already have a libcrypto++.pc. Install the *.pc file if the file ++# is present. If you want one, then issue 'make libcrypto++.pc'. + .PHONY: install-lib + install-lib: +- @-$(MKDIR) $(DESTDIR)$(INCLUDEDIR)/cryptopp +- $(CP) *.h $(DESTDIR)$(INCLUDEDIR)/cryptopp +- $(CHMOD) u=rw,go=r $(DESTDIR)$(INCLUDEDIR)/cryptopp/*.h +-ifneq ($(wildcard libcryptopp.a),) ++ @-$(MKDIR) $(DESTDIR)$(INCLUDEDIR)/crypto++ ++ $(CP) *.h $(DESTDIR)$(INCLUDEDIR)/crypto++ ++ $(CHMOD) u=rw,go=r $(DESTDIR)$(INCLUDEDIR)/crypto++/*.h ++ifneq ($(wildcard libcrypto++.a),) + @-$(MKDIR) $(DESTDIR)$(LIBDIR) +- $(CP) libcryptopp.a $(DESTDIR)$(LIBDIR) +- $(CHMOD) u=rw,go=r $(DESTDIR)$(LIBDIR)/libcryptopp.a ++ $(CP) libcrypto++.a $(DESTDIR)$(LIBDIR) ++ $(CHMOD) u=rw,go=r $(DESTDIR)$(LIBDIR)/libcrypto++.a + endif + ifneq ($(wildcard libcryptopp.dylib),) + @-$(MKDIR) $(DESTDIR)$(LIBDIR) +@@ -1422,64 +1422,64 @@ ifneq ($(wildcard libcryptopp.dylib),) + $(CHMOD) u=rwx,go=rx $(DESTDIR)$(LIBDIR)/libcryptopp.dylib + -install_name_tool -id $(DESTDIR)$(LIBDIR)/libcryptopp.dylib $(DESTDIR)$(LIBDIR)/libcryptopp.dylib + endif +-ifneq ($(wildcard libcryptopp.so$(SOLIB_VERSION_SUFFIX)),) ++ifneq ($(wildcard libcrypto++.so$(SOLIB_VERSION_SUFFIX)),) + @-$(MKDIR) $(DESTDIR)$(LIBDIR) +- $(CP) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR) +- $(CHMOD) u=rwx,go=rx $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_VERSION_SUFFIX) ++ $(CP) libcrypto++.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR) ++ $(CHMOD) u=rwx,go=rx $(DESTDIR)$(LIBDIR)/libcrypto++.so$(SOLIB_VERSION_SUFFIX) + ifeq ($(HAS_SOLIB_VERSION),1) +- -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so +- -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_COMPAT_SUFFIX) ++ -$(LN) libcrypto++.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcrypto++.so ++ -$(LN) libcrypto++.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcrypto++.so$(SOLIB_COMPAT_SUFFIX) + $(LDCONF) $(DESTDIR)$(LIBDIR) + endif + endif +-ifneq ($(wildcard libcryptopp.pc),) ++ifneq ($(wildcard libcrypto++.pc),) + @-$(MKDIR) $(DESTDIR)$(LIBDIR)/pkgconfig +- $(CP) libcryptopp.pc $(DESTDIR)$(LIBDIR)/pkgconfig +- $(CHMOD) u=rw,go=r $(DESTDIR)$(LIBDIR)/pkgconfig/libcryptopp.pc ++ $(CP) libcrypto++.pc $(DESTDIR)$(LIBDIR)/pkgconfig ++ $(CHMOD) u=rw,go=r $(DESTDIR)$(LIBDIR)/pkgconfig/libcrypto++.pc + endif + + .PHONY: remove uninstall + remove uninstall: +- -$(RM) -r $(DESTDIR)$(INCLUDEDIR)/cryptopp +- -$(RM) $(DESTDIR)$(LIBDIR)/libcryptopp.a +- -$(RM) $(DESTDIR)$(BINDIR)/cryptest.exe ++ -$(RM) -r $(DESTDIR)$(INCLUDEDIR)/crypto++ ++ -$(RM) $(DESTDIR)$(LIBDIR)/libcrypto++.a ++ -$(RM) $(DESTDIR)$(BINDIR)/cryptest + ifneq ($(wildcard $(DESTDIR)$(LIBDIR)/libcryptopp.dylib),) + -$(RM) $(DESTDIR)$(LIBDIR)/libcryptopp.dylib + endif +-ifneq ($(wildcard $(DESTDIR)$(LIBDIR)/libcryptopp.so),) +- -$(RM) $(DESTDIR)$(LIBDIR)/libcryptopp.so ++ifneq ($(wildcard $(DESTDIR)$(LIBDIR)/libcrypto++.so),) ++ -$(RM) $(DESTDIR)$(LIBDIR)/libcrypto++.so + endif +- @-$(RM) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_VERSION_SUFFIX) +- @-$(RM) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_COMPAT_SUFFIX) +- @-$(RM) $(DESTDIR)$(LIBDIR)/pkgconfig/libcryptopp.pc +- @-$(RM) -r $(DESTDIR)$(DATADIR)/cryptopp ++ @-$(RM) $(DESTDIR)$(LIBDIR)/libcrypto++.so$(SOLIB_VERSION_SUFFIX) ++ @-$(RM) $(DESTDIR)$(LIBDIR)/libcrypto++.so$(SOLIB_COMPAT_SUFFIX) ++ @-$(RM) $(DESTDIR)$(LIBDIR)/pkgconfig/libcrypto++.pc ++ @-$(RM) -r $(DESTDIR)$(DATADIR)/crypto++ + +-libcryptopp.a: $(LIBOBJS) | osx_warning ++libcrypto++.a: $(LIBOBJS) | osx_warning + $(AR) $(ARFLAGS) $@ $(LIBOBJS) + ifeq ($(IS_SUN),0) + $(RANLIB) $@ + endif + + ifeq ($(HAS_SOLIB_VERSION),1) +-.PHONY: libcryptopp.so +-libcryptopp.so: libcryptopp.so$(SOLIB_VERSION_SUFFIX) | so_warning ++.PHONY: libcrypto++.so ++libcryptopp.so: libcrypto++.so$(SOLIB_VERSION_SUFFIX) | so_warning + endif + +-libcryptopp.so$(SOLIB_VERSION_SUFFIX): $(LIBOBJS) ++libcrypto++.so$(SOLIB_VERSION_SUFFIX): $(LIBOBJS) + ifeq ($(XLC_COMPILER),1) + $(CXX) -qmkshrobj $(SOLIB_FLAGS) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LIBOBJS) $(LDLIBS) + else + $(CXX) -shared $(SOLIB_FLAGS) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LIBOBJS) $(LDLIBS) + endif + ifeq ($(HAS_SOLIB_VERSION),1) +- -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) libcryptopp.so +- -$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) libcryptopp.so$(SOLIB_COMPAT_SUFFIX) ++ -$(LN) libcrypto++.so$(SOLIB_VERSION_SUFFIX) libcrypto++.so ++ -$(LN) libcrypto++.so$(SOLIB_VERSION_SUFFIX) libcrypto++.so$(SOLIB_COMPAT_SUFFIX) + endif + + libcryptopp.dylib: $(LIBOBJS) | osx_warning + $(CXX) -dynamiclib -o $@ $(CXXFLAGS) -install_name "$@" -current_version "$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)" -compatibility_version "$(LIB_MAJOR).$(LIB_MINOR)" -headerpad_max_install_names $(LDFLAGS) $(LIBOBJS) + +-cryptest.exe: $(LINK_LIBRARY) $(TESTOBJS) | osx_warning ++cryptest: $(LINK_LIBRARY) $(TESTOBJS) | osx_warning + $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) $(LINK_LIBRARY_PATH)$(LINK_LIBRARY) $(LDFLAGS) $(LDLIBS) + + # Makes it faster to test changes +@@ -1506,21 +1506,21 @@ dlltest.exe: cryptopp.dll $(DLLTESTOBJS) + # Some users already have a libcryptopp.pc. We install it if the file + # is present. If you want one, then issue 'make libcryptopp.pc'. Be sure + # to use/verify PREFIX and LIBDIR below after writing the file. +-cryptopp.pc libcryptopp.pc: +- @echo '# Crypto++ package configuration file' > libcryptopp.pc +- @echo '' >> libcryptopp.pc +- @echo 'prefix=$(PC_PREFIX)' >> libcryptopp.pc +- @echo 'libdir=$(PC_LIBDIR)' >> libcryptopp.pc +- @echo 'includedir=$(PC_INCLUDEDIR)' >> libcryptopp.pc +- @echo 'datadir=$(PC_DATADIR)' >> libcryptopp.pc +- @echo '' >> libcryptopp.pc +- @echo 'Name: Crypto++' >> libcryptopp.pc +- @echo 'Description: Crypto++ cryptographic library' >> libcryptopp.pc +- @echo 'Version: 8.7' >> libcryptopp.pc +- @echo 'URL: https://cryptopp.com/' >> libcryptopp.pc +- @echo '' >> libcryptopp.pc +- @echo 'Cflags: -I$${includedir}' >> libcryptopp.pc +- @echo 'Libs: -L$${libdir} -lcryptopp' >> libcryptopp.pc ++cryptopp.pc libcrypto++.pc: ++ @echo '# Crypto++ package configuration file' > libcrypto++.pc ++ @echo '' >> libcrypto++.pc ++ @echo 'prefix=$(PC_PREFIX)' >> libcrypto++.pc ++ @echo 'libdir=$(PC_LIBDIR)' >> libcrypto++.pc ++ @echo 'includedir=$(PC_INCLUDEDIR)' >> libcrypto++.pc ++ @echo 'datadir=$(PC_DATADIR)' >> libcrypto++.pc ++ @echo '' >> libcrypto++.pc ++ @echo 'Name: Crypto++' >> libcrypto++.pc ++ @echo 'Description: Crypto++ cryptographic library' >> libcrypto++.pc ++ @echo 'Version: 8.7' >> libcrypto++.pc ++ @echo 'URL: https://cryptopp.com/' >> libcrypto++.pc ++ @echo '' >> libcrypto++.pc ++ @echo 'Cflags: -I$${includedir}' >> libcrypto++.pc ++ @echo 'Libs: -L$${libdir} -lcryptopp' >> libcrypto++.pc + + # This recipe prepares the distro files + TEXT_FILES := *.h *.cpp *.S GNUmakefile GNUmakefile-cross License.txt Readme.txt Install.txt Filelist.txt Doxyfile cryptest* cryptlib* dlltest* cryptdll* *.sln *.vcxproj *.filters cryptopp.rc TestVectors/*.txt TestData/*.dat TestPrograms/*.cpp +@@ -1582,9 +1582,9 @@ endif + # CRYPTOPP_CPU_FREQ in GHz + CRYPTOPP_CPU_FREQ ?= 0.0 + .PHONY: bench benchmark benchmarks +-bench benchmark benchmarks: cryptest.exe ++bench benchmark benchmarks: cryptest + @-$(RM) -f benchmarks.html +- ./cryptest.exe b 2 $(CRYPTOPP_CPU_FREQ) ++ ./cryptest b 2 $(CRYPTOPP_CPU_FREQ) + + adhoc.cpp: adhoc.cpp.proto + ifeq ($(wildcard adhoc.cpp),) diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..4c3b98a --- /dev/null +++ b/patches/series @@ -0,0 +1,3 @@ +GNUmakefile_update.patch +armhf_FTBFS_fix.patch +fix_library_name.patch diff --git a/rules b/rules new file mode 100755 index 0000000..58b591b --- /dev/null +++ b/rules @@ -0,0 +1,77 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DOC_PKG_DIR = $(CURDIR)/debian/libcrypto++-doc/ + +CXXFLAGS+=-DNDEBUG + +SONAME=8 + +PREFIX=/usr +LIBDIR=$(PREFIX)/lib/$(DEB_HOST_MULTIARCH)/ + +override_dh_auto_clean: + dh_auto_clean + rm -f $(CURDIR)/libcrypto++.pc.in $(CURDIR)/config.log + rm -rf $(CURDIR)/html-docs/ + # these will be re-generated + rm -f $(CURDIR)/debian/libcrypto++$(SONAME).links \ + $(CURDIR)/debian/libcrypto++-dev.links + +override_dh_auto_build-arch: + PREFIX=$(PREFIX) LIBDIR=$(LIBDIR) dh_auto_build -a \ + -- all libcrypto++.pc + +override_dh_auto_build-indep: + doxygen + +override_dh_auto_install: + # use automake + PREFIX=$(PREFIX) LIBDIR=$(LIBDIR) dh_auto_install + # install test files + mkdir -p $(CURDIR)/debian/tmp/usr/share/crypto--/ + cp -a $(CURDIR)/TestVectors $(CURDIR)/debian/tmp/usr/share/crypto--/ + chmod a-x $(CURDIR)/debian/tmp/usr/share/crypto--/TestVectors/*.txt + cp -a $(CURDIR)/TestData $(CURDIR)/debian/tmp/usr/share/crypto--/ + # install pkg-config file + mkdir -p $(CURDIR)/debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ +# cp -a $(CURDIR)/*.pc \ + $(CURDIR)/debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ + # generate links files + sed s/ARCH/${DEB_HOST_MULTIARCH}/g \ + $(CURDIR)/debian/libcrypto++$(SONAME).links.in \ + >$(CURDIR)/debian/libcrypto++$(SONAME).links + sed s/ARCH/${DEB_HOST_MULTIARCH}/g \ + $(CURDIR)/debian/libcrypto++-dev.links.in \ + >$(CURDIR)/debian/libcrypto++-dev.links + +override_dh_auto_test-arch: +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(CURDIR)/cryptest v +endif + +override_dh_auto_test-indep: + +override_dh_installdocs: + dh_installdocs + if [ -d "$(DOC_PKG_DIR)/usr/share/doc/libcrypto++-dev/html-docs" ]; then \ + mv $(DOC_PKG_DIR)/usr/share/doc/libcrypto++-dev/html-docs \ + $(DOC_PKG_DIR)/usr/share/doc/libcrypto++-dev/html; \ + fi + +# skip files failing with "Unknown DWARF DW_OP_255" (see bug#949296) +override_dh_dwz: + dh_dwz --exclude=usr/bin/cryptest \ + --exclude=usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto++.so.8.6.0 + +%: + dh $@ + +.PHONY: override_dh_auto_clean override_dh_auto_build-arch \ + override_dh_auto_build-indep override_dh_auto_install \ + override_dh_installdocs override_dh_dwz \ + override_dh_auto_test-arch override_dh_auto_test-indep diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/watch b/watch new file mode 100644 index 0000000..ab92ef4 --- /dev/null +++ b/watch @@ -0,0 +1,3 @@ +version=3 +opts=uversionmangle=s/^(\d)_?(\d)_?(\d)$/$1.$2.$3/;s/^(\d)_?(\d)$/$1.$2/ \ +https://github.com/weidai11/cryptopp/releases .*/CRYPTOPP_(\d[\d_]+)\.(?:tar\.xz|txz|tar\.bz2|tbz2|tar\.gz|tgz|zip)