From: Florian Fainelli Date: Mon, 7 Jan 2013 21:04:06 +0000 (+0000) Subject: libcrypto++: fix build with GCC 4.7.0 (#12310) X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=a00aabdd001a43bdc111e9d42e01bfd990a08304;p=openwrt%2Fsvn-archive%2Fpackages.git libcrypto++: fix build with GCC 4.7.0 (#12310) Signed-off-by: Florian Fainelli SVN-Revision: 35048 --- diff --git a/libs/libcrypto++/Makefile b/libs/libcrypto++/Makefile index f9bbd79a4..734ef0ab0 100644 --- a/libs/libcrypto++/Makefile +++ b/libs/libcrypto++/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2009-2010 OpenWrt.org +# Copyright (C) 2009-2012 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libcrypto++ PKG_VERSION:=5.6.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz PKG_SOURCE_URL:=http://ftp.de.debian.org/debian/pool/main/libc/libcrypto++/ diff --git a/libs/libcrypto++/patches/004-gcc4.7.0.patch b/libs/libcrypto++/patches/004-gcc4.7.0.patch new file mode 100644 index 000000000..0897793e1 --- /dev/null +++ b/libs/libcrypto++/patches/004-gcc4.7.0.patch @@ -0,0 +1,102 @@ +diff -rupN libcrypto++-5.6.0.orig/algebra.cpp libcrypto++-5.6.0/algebra.cpp +--- libcrypto++-5.6.0.orig/algebra.cpp Sun Mar 1 20:44:04 2009 ++++ libcrypto++-5.6.0/algebra.cpp Fri Oct 12 20:18:44 2012 +@@ -58,7 +58,7 @@ template const T& AbstractEucl + Element g[3]={b, a}; + unsigned int i0=0, i1=1, i2=2; + +- while (!Equal(g[i1], this->Identity())) ++ while (!this->Equal(g[i1], this->Identity())) + { + g[i2] = Mod(g[i0], g[i1]); + unsigned int t = i0; i0 = i1; i1 = i2; i2 = t; +diff -rupN libcrypto++-5.6.0.orig/eccrypto.cpp libcrypto++-5.6.0/eccrypto.cpp +--- libcrypto++-5.6.0.orig/eccrypto.cpp Sun Mar 15 03:48:02 2009 ++++ libcrypto++-5.6.0/eccrypto.cpp Fri Oct 12 20:17:08 2012 +@@ -435,7 +435,7 @@ template void DL_GroupParamet + StringSource ssG(param.g, true, new HexDecoder); + Element G; + bool result = GetCurve().DecodePoint(G, ssG, (size_t)ssG.MaxRetrievable()); +- SetSubgroupGenerator(G); ++ this->SetSubgroupGenerator(G); + assert(result); + + StringSource ssN(param.n, true, new HexDecoder); +@@ -591,7 +591,7 @@ bool DL_GroupParameters_EC::Validate + if (level >= 2 && pass) + { + const Integer &q = GetSubgroupOrder(); +- Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : ExponentiateElement(g, q); ++ Element gq = gpc ? gpc->Exponentiate(this->GetGroupPrecomputation(), q) : this->ExponentiateElement(g, q); + pass = pass && IsIdentity(gq); + } + return pass; +@@ -629,7 +629,7 @@ void DL_PublicKey_EC::BERDecodePubli + typename EC::Point P; + if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size)) + BERDecodeError(); +- SetPublicElement(P); ++ this->SetPublicElement(P); + } + + template +diff -rupN libcrypto++-5.6.0.orig/eccrypto.h libcrypto++-5.6.0/eccrypto.h +--- libcrypto++-5.6.0.orig/eccrypto.h Sun Mar 1 20:44:02 2009 ++++ libcrypto++-5.6.0/eccrypto.h Fri Oct 12 20:17:30 2012 +@@ -43,7 +43,7 @@ public: + void Initialize(const EllipticCurve &ec, const Point &G, const Integer &n, const Integer &k = Integer::Zero()) + { + this->m_groupPrecomputation.SetCurve(ec); +- SetSubgroupGenerator(G); ++ this->SetSubgroupGenerator(G); + m_n = n; + m_k = k; + } +@@ -145,9 +145,9 @@ public: + typedef typename EC::Point Element; + + void Initialize(const DL_GroupParameters_EC ¶ms, const Element &Q) +- {this->AccessGroupParameters() = params; SetPublicElement(Q);} ++ {this->AccessGroupParameters() = params; this->SetPublicElement(Q);} + void Initialize(const EC &ec, const Element &G, const Integer &n, const Element &Q) +- {this->AccessGroupParameters().Initialize(ec, G, n); SetPublicElement(Q);} ++ {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPublicElement(Q);} + + // X509PublicKey + void BERDecodePublicKey(BufferedTransformation &bt, bool parametersPresent, size_t size); +@@ -166,9 +166,9 @@ public: + void Initialize(const EC &ec, const Element &G, const Integer &n, const Integer &x) + {this->AccessGroupParameters().Initialize(ec, G, n); this->SetPrivateExponent(x);} + void Initialize(RandomNumberGenerator &rng, const DL_GroupParameters_EC ¶ms) +- {GenerateRandom(rng, params);} ++ {this->GenerateRandom(rng, params);} + void Initialize(RandomNumberGenerator &rng, const EC &ec, const Element &G, const Integer &n) +- {GenerateRandom(rng, DL_GroupParameters_EC(ec, G, n));} ++ {this->GenerateRandom(rng, DL_GroupParameters_EC(ec, G, n));} + + // PKCS8PrivateKey + void BERDecodePrivateKey(BufferedTransformation &bt, bool parametersPresent, size_t size); +diff -rupN libcrypto++-5.6.0.orig/panama.cpp libcrypto++-5.6.0/panama.cpp +--- libcrypto++-5.6.0.orig/panama.cpp Sun Mar 1 20:44:00 2009 ++++ libcrypto++-5.6.0/panama.cpp Fri Oct 12 20:19:27 2012 +@@ -420,7 +420,7 @@ void PanamaHash::TruncatedFinal(byte + { + this->ThrowIfInvalidTruncatedSize(size); + +- PadLastBlock(this->BLOCKSIZE, 0x01); ++ this->PadLastBlock(this->BLOCKSIZE, 0x01); + + HashEndianCorrectedBlock(this->m_data); + +diff -rupN libcrypto++-5.6.0.orig/secblock.h libcrypto++-5.6.0/secblock.h +--- libcrypto++-5.6.0.orig/secblock.h Sun Mar 15 03:48:02 2009 ++++ libcrypto++-5.6.0/secblock.h Fri Oct 12 20:13:31 2012 +@@ -94,7 +94,7 @@ public: + + pointer allocate(size_type n, const void * = NULL) + { +- CheckSize(n); ++ this->CheckSize(n); + if (n == 0) + return NULL; +