summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2017-07-23 21:08:34 +0300
committerAlon Bar-Lev <alonbl@gentoo.org>2017-07-23 21:08:58 +0300
commit85a16efd00f98f26f3966aaa273eb9797194bf75 (patch)
tree7ba8eca907cbb96106dd3281e853a09db683890b /dev-libs/nettle
parentnet-libs/mbedtls: version bump to 2.5.2 (diff)
downloadgentoo-85a16efd00f98f26f3966aaa273eb9797194bf75.tar.gz
gentoo-85a16efd00f98f26f3966aaa273eb9797194bf75.tar.bz2
gentoo-85a16efd00f98f26f3966aaa273eb9797194bf75.zip
dev-libs/nettle: fix inplace operations
Thanks: Sergei Trofimovich Bug: 613418 Package-Manager: Portage-2.3.6, Repoman-2.3.1
Diffstat (limited to 'dev-libs/nettle')
-rw-r--r--dev-libs/nettle/files/nettle-3.3-ecc-add-eh.patch32
-rw-r--r--dev-libs/nettle/nettle-3.3-r2.ebuild70
2 files changed, 102 insertions, 0 deletions
diff --git a/dev-libs/nettle/files/nettle-3.3-ecc-add-eh.patch b/dev-libs/nettle/files/nettle-3.3-ecc-add-eh.patch
new file mode 100644
index 000000000000..5492997f336e
--- /dev/null
+++ b/dev-libs/nettle/files/nettle-3.3-ecc-add-eh.patch
@@ -0,0 +1,32 @@
+From dcda81d796de2f4a16fd7e9e7a5d07baa288f147 Mon Sep 17 00:00:00 2001
+From: Niels Möller <nisse@lysator.liu.se>
+Date: Tue, 18 Jul 2017 20:52:30 +0200
+Subject: [PATCH] Fix for in-place ecc_add_eh.
+
+* ecc-add-eh.c (ecc_add_eh): Fix in-place operation by reordering
+two multiplies. Previously, in-place operation resulted in an
+invalid call to mpn_mul with overlapping operands. Reported by
+Sergei Trofimovich.
+---
+ ChangeLog | 7 +++++++
+ ecc-add-eh.c | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/ecc-add-eh.c b/ecc-add-eh.c
+index a16be4c..c07ff49 100644
+--- a/ecc-add-eh.c
++++ b/ecc-add-eh.c
+@@ -98,8 +98,8 @@ ecc_add_eh (const struct ecc_curve *ecc,
+ ecc_modp_mul (ecc, x3, B, z1);
+
+ /* y3 */
+- ecc_modp_mul (ecc, B, F, C); /* ! */
+- ecc_modp_mul (ecc, y3, B, z1);
++ ecc_modp_mul (ecc, B, F, z1); /* ! */
++ ecc_modp_mul (ecc, y3, B, C); /* Clobbers z1 in case r == p. */
+
+ /* z3 */
+ ecc_modp_mul (ecc, B, F, G);
+--
+libgit2 0.25.0
+
diff --git a/dev-libs/nettle/nettle-3.3-r2.ebuild b/dev-libs/nettle/nettle-3.3-r2.ebuild
new file mode 100644
index 000000000000..6062d1dfd34b
--- /dev/null
+++ b/dev-libs/nettle/nettle-3.3-r2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools multilib-build multilib-minimal multilib toolchain-funcs
+
+DESCRIPTION="Low-level cryptographic library"
+HOMEPAGE="http://www.lysator.liu.se/~nisse/nettle/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( LGPL-3 LGPL-2.1 )"
+SLOT="0/6.1" # subslot = libnettle soname version, .1 as broke ABI bug#601512
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc +gmp neon static-libs test cpu_flags_x86_aes"
+
+DEPEND="gmp? ( >=dev-libs/gmp-5.0:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="${DEPEND}
+ abi_x86_32? (
+ !<=app-emulation/emul-linux-x86-baselibs-20131008-r17
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+ )"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/nettle/nettle-stdint.h
+ /usr/include/nettle/version.h
+)
+
+DOCS=()
+HTML_DOCS=()
+
+PATCHES=(
+ "${FILESDIR}/${P}-ecc-add-eh.patch"
+)
+
+pkg_setup() {
+ use doc && DOCS+=(
+ nettle.pdf
+ )
+ use doc && HTML_DOCS+=(
+ nettle.html
+ )
+}
+
+src_prepare() {
+ default
+
+ sed -e '/CFLAGS=/s: -ggdb3::' \
+ -e 's/solaris\*)/sunldsolaris*)/' \
+ -i configure.ac || die
+
+ # conditionally build tests and examples required by tests
+ use test || sed -i '/SUBDIRS/s/testsuite examples//' Makefile.in || die
+
+ eautoreconf
+}
+
+multilib_src_configure() {
+ # --disable-openssl bug #427526
+ ECONF_SOURCE="${S}" econf \
+ --libdir="${EPREFIX}"/usr/$(get_libdir) \
+ --disable-openssl \
+ --disable-fat \
+ $(use_enable gmp public-key) \
+ $(use_enable static-libs static) \
+ $(tc-is-static-only && echo --disable-shared) \
+ $(use_enable doc documentation) \
+ $(use_enable neon arm-neon) \
+ $(use_enable cpu_flags_x86_aes x86-aesni)
+}