From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- dev-libs/crypto++/Manifest | 7 +++ dev-libs/crypto++/crypto++-5.6.5-r1.ebuild | 60 ++++++++++++++++++++++ .../crypto++/files/crypto++-5.6.4-nonative.patch | 28 ++++++++++ .../files/crypto++-5.6.5-CVE-2017-9434.patch | 45 ++++++++++++++++ dev-libs/crypto++/metadata.xml | 15 ++++++ 5 files changed, 155 insertions(+) create mode 100644 dev-libs/crypto++/Manifest create mode 100644 dev-libs/crypto++/crypto++-5.6.5-r1.ebuild create mode 100644 dev-libs/crypto++/files/crypto++-5.6.4-nonative.patch create mode 100644 dev-libs/crypto++/files/crypto++-5.6.5-CVE-2017-9434.patch create mode 100644 dev-libs/crypto++/metadata.xml (limited to 'dev-libs/crypto++') diff --git a/dev-libs/crypto++/Manifest b/dev-libs/crypto++/Manifest new file mode 100644 index 000000000000..ae38c8a5bdaf --- /dev/null +++ b/dev-libs/crypto++/Manifest @@ -0,0 +1,7 @@ +AUX crypto++-5.6.4-nonative.patch 1011 SHA256 2c49e8b84654e2e0c23b6229db4ecab4fb7c6bd5f48a2c9867d36478362cf1bb SHA512 fd9973d5fcb8182f89388276c54e8698c9b0ec82be1e93a575b4a00ad5f8b2966cd2cf699258dbf8b681423b31cb3d926a694d36d0eb07bf583811d55e845837 WHIRLPOOL 9427b6953d0f6c904c9ab7cadd70ee385277109c77f4060e45e506e3e4aa7319209393b3b45f275d3c416f8b11fc7940258b31f56a0a35cbd4ca4b8b5d06471d +AUX crypto++-5.6.5-CVE-2017-9434.patch 1728 SHA256 52e436bcb9e81ce9cbdfbbb62129c0082cf09524699f29669950f3d71f9a1cdc SHA512 42566d3e67c6b253b65587877652112691ba91e554db47843256a9c2af8a29d7950266a508358356f008462ec51cc1dadf4d0e9dbbd33a33a5a94d029eebc1f9 WHIRLPOOL 713b873a9eea20f3b73f02be762d952227d27b01cf1b5ffcccb952d9f24156dc39b4653f282a2febc70d021b50fba9d16e7f4d762279ab22fb8caa4e577369a2 +DIST cryptopp565.zip 4220843 SHA256 a75ef486fe3128008bbb201efee3dcdcffbe791120952910883b26337ec32c34 SHA512 f13718d02ca69b0129aaf9e767c9d2e0333aa7538355f9c63d9eaf1ff369062084a18dc01489439ebf37797b3ea81b01beb072057d47ec962bfb824ddc72abc7 WHIRLPOOL 376e8d7ad497d03f19542fd183181f26c83f38dfef800529cb5d5ce7238978f005d36e3e7cce63322af9b7dfc3a69fdb615c435bcf092bbd6abf6781dfd6d8a3 +EBUILD crypto++-5.6.5-r1.ebuild 1528 SHA256 00d296c25997c4a5b4bd827b0c2d766ac7a50a4f5eb5c8ba64a21523f7bc5f81 SHA512 88ac82a306dad13fa2f9704e4c30c71c5f04d02ba4ec8c6c6babefd84953dd3ebab08c154f2004d3a7ad065f7234c8f5cbc57f9ec5524e0b7d843cc7cae89f64 WHIRLPOOL 006cab35fc8d490f32b049853305dd0f459c0c46d76dee86e6a3746f9d4082752fce83fadb2789b7ae8453931b3468c01b358da75f2d35c440cef8e06878ccbc +MISC ChangeLog 6151 SHA256 cf7f34c1f0304ff08962a37b6f179a0d8524943102351fe5fcb55c4495cdff16 SHA512 38bcd1542c6cd8c0d84b8cadcf2d15d9afaa88e498f7cbc0545815c03ce0665bc5fe796d80471bcf85ebe284073da755e7ff237510c27b5e3c69d8cc15741858 WHIRLPOOL 0ed558f97e285c297f9dd5f5a1520bade72183a17adbdb3e7fe1167c170597af6689422b4f9d61c0bc3532b6d7b35340a6862f4b6594cc93a696b92ee8b8f631 +MISC ChangeLog-2015 15460 SHA256 8b39aeffd060e218250defe9b6ab1f66b55b44855e82d92cd0710e4fda8553c1 SHA512 faac08f8115e8a89d170e76ddeaa2474f6dece7151f2105412e656576642828b09f6b153f2628fcceee83a8eda4794ab3d594170e9abcda58849988e8f7ae5ff WHIRLPOOL 1bbccb5eb8a94f711b23cedd282f9aa7336f8432eefcfdeb3dfb4a4748fa83522a1d353d05704078100066ce1979fb8a7911f90c0f6a9576389bb60c577929a9 +MISC metadata.xml 431 SHA256 1b760fe4c8e8ea0d684c1ef814eae243e5ff20d6485bbbd190ab2d9d0549d1ea SHA512 3a704d3baef368c74a022508d055f440c75ad07655c983f3ef73197374a2e1a7a9470905f827a6cae0e93e5381ee97061242e8170f30756bfc453f0275a9ae6c WHIRLPOOL 07f24034277327d0b28a108e916d0f2dc501639b03d5641408a543eb31e47ef8047d8dc96a008e7548962adde705dfe265d3e8905a4397f36f139c871483c093 diff --git a/dev-libs/crypto++/crypto++-5.6.5-r1.ebuild b/dev-libs/crypto++/crypto++-5.6.5-r1.ebuild new file mode 100644 index 000000000000..db4b181856d0 --- /dev/null +++ b/dev-libs/crypto++/crypto++-5.6.5-r1.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="C++ class library of cryptographic schemes" +HOMEPAGE="http://cryptopp.com" +SRC_URI="https://www.cryptopp.com/cryptopp${PV//.}.zip" + +LICENSE="Boost-1.0" +SLOT="0/5.6" # subslot is so version +KEYWORDS="alpha amd64 ~arm arm64 hppa ppc ppc64 sparc x86 ~x64-macos" +IUSE="static-libs" + +DEPEND="app-arch/unzip" + +S="${WORKDIR}" + +PATCHES=( + "${FILESDIR}/${PN}-5.6.4-nonative.patch" + "${FILESDIR}/${P}-CVE-2017-9434.patch" +) + +pkg_setup() { + export CXX="$(tc-getCXX)" + export LIBDIR="${EPREFIX}/usr/$(get_libdir)" + export PREFIX="${EPREFIX}/usr" +} + +src_compile() { + # higher optimizations cause problems + replace-flags -O3 -O2 + # ASM isn't Darwin/Mach-O ready, #479554, buildsys doesn't grok CPPFLAGS + [[ ${CHOST} == *-darwin* ]] && append-cxxflags -DCRYPTOPP_DISABLE_ASM + + emake -f GNUmakefile all shared +} + +src_install() { + default + + # remove leftovers as build system sucks + rm -fr "${ED}"/usr/bin "${ED}"/usr/share/cryptopp + use static-libs || rm -f "${ED}${EPREFIX}"/usr/$(get_libdir)/*.a + + # compatibility + dosym cryptopp "${EPREFIX}"/usr/include/crypto++ + for f in "${ED}${EPREFIX}"/usr/$(get_libdir)/*; do + ln -s "$(basename "${f}")" "$(echo "${f}" | sed 's/cryptopp/crypto++/')" || die + done +} + +pkg_preinst() { + # we switched directory to symlink + # make sure portage digests that + rm -fr "${EROOT}/usr/include/crypto++" + rm -fr "${EROOT}/usr/include/cryptopp" +} diff --git a/dev-libs/crypto++/files/crypto++-5.6.4-nonative.patch b/dev-libs/crypto++/files/crypto++-5.6.4-nonative.patch new file mode 100644 index 000000000000..77d74ee729e9 --- /dev/null +++ b/dev-libs/crypto++/files/crypto++-5.6.4-nonative.patch @@ -0,0 +1,28 @@ +Index: work/GNUmakefile +=================================================================== +--- work.orig/GNUmakefile ++++ work/GNUmakefile +@@ -125,23 +125,6 @@ ifeq ($(IS_X86)$(IS_X32)$(IS_CYGWIN)$(IS + endif + endif + +-# Guard use of -march=native +-ifeq ($(GCC42_OR_LATER)$(IS_NETBSD),10) +- CXXFLAGS += -march=native +-else ifneq ($(CLANG_COMPILER)$(INTEL_COMPILER),00) +- CXXFLAGS += -march=native +-else +- # GCC 3.3 and "unknown option -march=" +- # Ubuntu GCC 4.1 compiler crash with -march=native +- # NetBSD GCC 4.8 compiler and "bad value (native) for -march= switch" +- # Sun compiler is handled below +- ifeq ($(SUN_COMPILER)$(IS_X64),01) +- CXXFLAGS += -m64 +- else ifeq ($(SUN_COMPILER)$(IS_X86),01) +- CXXFLAGS += -m32 +- endif # X86/X32/X64 +-endif +- + # Aligned access required for -O3 and above due to vectorization + UNALIGNED_ACCESS := $(shell $(EGREP) -c "^[[:space:]]*//[[:space:]]*\#[[:space:]]*define[[:space:]]*CRYPTOPP_NO_UNALIGNED_DATA_ACCESS" config.h) + ifneq ($(UNALIGNED_ACCESS),0) diff --git a/dev-libs/crypto++/files/crypto++-5.6.5-CVE-2017-9434.patch b/dev-libs/crypto++/files/crypto++-5.6.5-CVE-2017-9434.patch new file mode 100644 index 000000000000..428f48901a31 --- /dev/null +++ b/dev-libs/crypto++/files/crypto++-5.6.5-CVE-2017-9434.patch @@ -0,0 +1,45 @@ +From 07dbcc3d9644b18e05c1776db2a57fe04d780965 Mon Sep 17 00:00:00 2001 +From: Jeffrey Walton +Date: Wed, 10 May 2017 18:17:12 -0400 +Subject: [PATCH] Add Inflator::BadDistanceErr exception (Issue 414) The + improved validation and excpetion clears the Address Sanitizer and Undefined + Behavior Sanitizer findings + +--- + zinflate.cpp | 8 +++++++- + zinflate.h | 4 ++++ + 3 files changed, 14 insertions(+), 4 deletions(-) + +diff --git a/zinflate.cpp b/zinflate.cpp +index 664efe6..fbd7505 100644 +--- a/zinflate.cpp ++++ b/zinflate.cpp +@@ -550,12 +550,16 @@ bool Inflator::DecodeBody() + break; + } + case DISTANCE_BITS: ++ if (m_distance >= COUNTOF(distanceExtraBits)) ++ throw BadDistanceErr(); + bits = distanceExtraBits[m_distance]; + if (!m_reader.FillBuffer(bits)) + { + m_nextDecode = DISTANCE_BITS; + break; + } ++ if (m_distance >= COUNTOF(distanceStarts)) ++ throw BadDistanceErr(); + m_distance = m_reader.GetBits(bits) + distanceStarts[m_distance]; + OutputPast(m_literal, m_distance); + } +diff --git a/zinflate.h b/zinflate.h +index e2fd237..c47d2f6 100644 +--- a/zinflate.h ++++ b/zinflate.h +@@ -96,6 +96,7 @@ public: + }; + class UnexpectedEndErr : public Err {public: UnexpectedEndErr() : Err(INVALID_DATA_FORMAT, "Inflator: unexpected end of compressed block") {}}; + class BadBlockErr : public Err {public: BadBlockErr() : Err(INVALID_DATA_FORMAT, "Inflator: error in compressed block") {}}; ++ class BadDistanceErr : public Err {public: BadDistanceErr() : Err(INVALID_DATA_FORMAT, "Inflator: error in bit distance") {}}; + + //! \brief RFC 1951 Decompressor + //! \param attachment the filter's attached transformation diff --git a/dev-libs/crypto++/metadata.xml b/dev-libs/crypto++/metadata.xml new file mode 100644 index 000000000000..da25a4da7d7d --- /dev/null +++ b/dev-libs/crypto++/metadata.xml @@ -0,0 +1,15 @@ + + + + + crypto@gentoo.org + Crypto + + + noloader@gmail.com + Jeffrey Walton + + + weidai11/cryptopp + + -- cgit v1.2.3