Fw: crypto++ 5.6.1 & GNU-C++ v4.7

75 views
Skip to first unread message

folkert

unread,
Oct 18, 2012, 3:51:56 AM10/18/12
to cryptop...@googlegroups.com
Hi,

This patch solves a couple of build-problems with the new GNU C++ v4.7
compiler.


diff -uNrBbd cr.org/algebra.cpp cr.new/algebra.cpp
--- cr.org/algebra.cpp 2010-08-06 18:44:32.000000000 +0200
+++ cr.new/algebra.cpp 2012-10-17 17:32:34.343625360 +0200
@@ -58,7 +58,7 @@
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;
Binary files cr.org/a.out and cr.new/a.out differ
diff -uNrBbd cr.org/eccrypto.cpp cr.new/eccrypto.cpp
--- cr.org/eccrypto.cpp 2010-08-06 18:44:28.000000000 +0200
+++ cr.new/eccrypto.cpp 2012-10-17 17:34:13.309976347 +0200
@@ -435,7 +435,7 @@
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 @@
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 @@
typename EC::Point P;
if (!this->GetGroupParameters().GetCurve().DecodePoint(P, bt, size))
BERDecodeError();
- SetPublicElement(P);
+ this->SetPublicElement(P);
}

template <class EC>
diff -uNrBbd cr.org/eccrypto.h cr.new/eccrypto.h
--- cr.org/eccrypto.h 2010-08-06 18:46:24.000000000 +0200
+++ cr.new/eccrypto.h 2012-10-17 17:35:02.374621539 +0200
@@ -43,7 +43,7 @@
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 @@
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 @@
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 -uNrBbd cr.org/panama.cpp cr.new/panama.cpp
--- cr.org/panama.cpp 2010-08-09 14:22:42.000000000 +0200
+++ cr.new/panama.cpp 2012-10-17 17:39:05.513818812 +0200
@@ -422,7 +422,7 @@
{
this->ThrowIfInvalidTruncatedSize(size);

- PadLastBlock(this->BLOCKSIZE, 0x01);
+ this->PadLastBlock(this->BLOCKSIZE, 0x01);

HashEndianCorrectedBlock(this->m_data);

diff -uNrBbd cr.org/secblock.h cr.new/secblock.h
--- cr.org/secblock.h 2010-08-06 18:46:20.000000000 +0200
+++ cr.new/secblock.h 2012-10-17 17:31:59.735149356 +0200
@@ -88,7 +88,7 @@

pointer allocate(size_type n, const void * = NULL)
{
- CheckSize(n);
+ this->CheckSize(n);
if (n == 0)
return NULL;



Folkert van Heusden

--
www.biglumber.com <- site where one can exchange PGP key signatures
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com

Andreas Tscharner

unread,
Oct 29, 2012, 6:15:29 AM10/29/12
to cryptop...@googlegroups.com
On 18.10.2012 09:51, folkert wrote:

> This patch solves a couple of build-problems with the new GNU C++ v4.7
> compiler.

Could someone please, PLEASE, apply these patches to the official
source?! It is at the least the third time that someone posts patches
for gcc-4.7 compatibility, but they are still not in the repository!

Best regards
Andreas
--
Andreas Tscharner <sterne...@gmail.com>
----------------------------------------------------------------------
"Intruder on level one. All Aliens please proceed to level one."
-- Call in "Alien: Resurrection"

folkert

unread,
Oct 29, 2012, 6:25:04 AM10/29/12
to Andreas Tscharner, cryptop...@googlegroups.com
> >This patch solves a couple of build-problems with the new GNU C++ v4.7
> >compiler.
>
> Could someone please, PLEASE, apply these patches to the official
> source?! It is at the least the third time that someone posts
> patches for gcc-4.7 compatibility, but they are still not in the
> repository!

And then please also apply the EAGAIN handling fix for the OS-RNG
module. This is a real problem (other software had problems with this
as well by the way).


Folkert van Heusden

--
MultiTail ist eine flexible Applikation um Logfiles und Kommando
Eingaben zu �berpr�fen. Inkl. Filter, Farben, Zusammenf�hren,
Ansichten etc. http://www.vanheusden.com/multitail/

Andreas Tscharner

unread,
Nov 1, 2012, 11:00:48 AM11/1/12
to cryptop...@googlegroups.com
On 29.10.2012 11:15, Andreas Tscharner wrote:
> On 18.10.2012 09:51, folkert wrote:
>
>> This patch solves a couple of build-problems with the new GNU C++ v4.7
>> compiler.
>
> Could someone please, PLEASE, apply these patches to the official
> source?! It is at the least the third time that someone posts patches
> for gcc-4.7 compatibility, but they are still not in the repository!

Does anyone know, WHO has actually write permission to the repository?

Zooko Wilcox-O'Hearn

unread,
Nov 2, 2012, 10:46:10 AM11/2/12
to Andreas Tscharner, cryptop...@googlegroups.com
I don't have write permission (much less time!) to maintain the
official repository, but I did make a mirror of its revision control
history into git:

https://github.com/zooko/cryptopp

The advantage of git and github over svn and sourceforge for this is
that anyone who has patches like these can click the "Fork" button and
get their own independent copy of the revision control history, and
then they can apply their patch to that. Once they've done so two
things will be easy: 1. Anybody who wants to use their patches can
fetch their git repository instead of applying patches to a checkout
of the main repository. 2. Anybody who maintains another git
repository (including, for example, Wei Dai, Jeffrey Walton, and the
other maintainers, if any, of the main Crypto++ trunk) can easily
apply that patch to their main trunk just by clicking "Accept Pull
Request".

This isn't what you asked for — you asked for an active maintainer of
the Crypto++ mainline — but this might help a bit.

Regards,

Zooko
Reply all
Reply to author
Forward
0 new messages