libcrypto++: fix build with GCC 4.7.0 (#12310)
authorFlorian Fainelli <florian@openwrt.org>
Mon, 7 Jan 2013 21:04:06 +0000 (21:04 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Mon, 7 Jan 2013 21:04:06 +0000 (21:04 +0000)
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 35048

libs/libcrypto++/Makefile
libs/libcrypto++/patches/004-gcc4.7.0.patch [new file with mode: 0644]

index f9bbd79a408fb9a377ddaab41363ad48f88685f4..734ef0ab008faadf80ffaee49668535db1669bf2 100644 (file)
@@ -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 (file)
index 0000000..0897793
--- /dev/null
@@ -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 <class T> 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 <class EC> 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<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<EC>::BERDecodePubli
+       typename EC::Point P;
+       if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
+               BERDecodeError();
+-      SetPublicElement(P);
++      this->SetPublicElement(P);
+ }
+ template <class EC>
+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<EC> &params, 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<EC> &params)
+-              {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>(ec, G, n));}
++              {this->GenerateRandom(rng, DL_GroupParameters_EC<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<B>::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;