The sources should be unzipped (with the -a option) into the crypto-3.1 subdirectory. Then type in "patch -p0 < gcc295.txt". This patch has been tested on gcc 2.95/cygwin b20.1. ========= strip this line and all lines above ================ diff -upr ../import/crypto-3.1/Makefile crypto-3.1/Makefile --- ../import/crypto-3.1/Makefile Wed Mar 03 01:04:08 1999 +++ crypto-3.1/Makefile Sat Aug 21 17:44:50 1999 @@ -5,7 +5,7 @@ RANLIB = ranlib CPPFLAGS = CFLAGS = -O2 -CXXFLAGS = -O2 +CXXFLAGS = -O2 -w -fpermissive LDFLAGS = SRCS = $(wildcard *.cpp) diff -upr ../import/crypto-3.1/algebra.cpp crypto-3.1/algebra.cpp --- ../import/crypto-3.1/algebra.cpp Wed Apr 28 00:04:28 1999 +++ crypto-3.1/algebra.cpp Sat Aug 21 17:50:06 1999 @@ -309,10 +309,7 @@ template template void SimultaneousExponentiation(Iterator result, const AbstractRing &ring, const Element &base, ConstIterator expBegin, ConstIterator expEnd) { - // SimultaneousMultiplication(result, ring.MultiplicativeGroup(), base, expBegin, expEnd); - // EGCS 1.1.2 workaround - MultiplicativeGroup mg(ring); - SimultaneousMultiplication(result, mg, base, expBegin, expEnd); + SimultaneousMultiplication(result, ring.MultiplicativeGroup(), base, expBegin, expEnd); } NAMESPACE_END diff -upr ../import/crypto-3.1/algebra.h crypto-3.1/algebra.h --- ../import/crypto-3.1/algebra.h Tue Apr 27 20:02:36 1999 +++ crypto-3.1/algebra.h Sat Aug 21 17:46:02 1999 @@ -53,13 +53,13 @@ public: virtual const AbstractGroup& MultiplicativeGroup() const =0; }; -template class MultiplicativeGroup : public AbstractGroup +template class MultiplicativeGroupT : public AbstractGroup { public: typedef AbstractRing Ring; typedef T Element; - MultiplicativeGroup(const Ring &m_ring) + MultiplicativeGroupT(const Ring &m_ring) : m_ring(m_ring) {} const Ring & GetRing() const @@ -101,7 +101,7 @@ public: const AbstractGroup& MultiplicativeGroup() const {return m_mg;} private: - MultiplicativeGroup m_mg; + MultiplicativeGroupT m_mg; }; // ******************************************************** diff -upr ../import/crypto-3.1/luc.cpp crypto-3.1/luc.cpp --- ../import/crypto-3.1/luc.cpp Wed Mar 03 01:04:06 1999 +++ crypto-3.1/luc.cpp Sat Aug 21 18:13:18 1999 @@ -11,7 +11,7 @@ NAMESPACE_BEGIN(CryptoPP) -template class OAEP; +// template class OAEP; INSTANTIATE_PUBKEY_TEMPLATES_MACRO(OAEP, PKCS_SignaturePaddingScheme, LUCFunction, InvertableLUCFunction); LUCFunction::LUCFunction(BufferedTransformation &bt) diff -upr ../import/crypto-3.1/polynomi.h crypto-3.1/polynomi.h --- ../import/crypto-3.1/polynomi.h Mon Apr 19 23:45:30 1999 +++ crypto-3.1/polynomi.h Sat Aug 21 17:59:35 1999 @@ -167,7 +167,7 @@ private: std::vector m_coefficients; }; -template class PolynomialOverFixedRing : private PolynomialOver +template class PolynomialOverFixedRing : private PolynomialOver { typedef PolynomialOver B; typedef PolynomialOverFixedRing ThisType; diff -upr ../import/crypto-3.1/rsa.cpp crypto-3.1/rsa.cpp --- ../import/crypto-3.1/rsa.cpp Sat Mar 06 03:05:08 1999 +++ crypto-3.1/rsa.cpp Sat Aug 21 18:13:11 1999 @@ -12,7 +12,7 @@ NAMESPACE_BEGIN(CryptoPP) INSTANTIATE_PUBKEY_TEMPLATES_MACRO(PKCS_EncryptionPaddingScheme, PKCS_SignaturePaddingScheme, RSAFunction, InvertableRSAFunction); -template class OAEP; +// template class OAEP; INSTANTIATE_PUBKEY_CRYPTO_TEMPLATES_MACRO(OAEP, RSAFunction, InvertableRSAFunction); RSAFunction::RSAFunction(BufferedTransformation &bt) diff -upr ../import/crypto-3.1/secshare.cpp crypto-3.1/secshare.cpp --- ../import/crypto-3.1/secshare.cpp Sat Mar 06 03:05:08 1999 +++ crypto-3.1/secshare.cpp Sat Aug 21 18:01:38 1999 @@ -30,7 +30,7 @@ public: } }; -typedef CryptoPP::PolynomialOverFixedRing Polynomial; +typedef CryptoPP::PolynomialOverFixedRing Polynomial; typedef CryptoPP::RingOfPolynomialsOver PolynomialRing; static const Field field;