diff -c /cygdrive/d/historic/c50/config.h ./config.h *** /cygdrive/d/historic/c50/config.h Fri Aug 30 18:59:32 2002 --- ./config.h Fri Mar 19 19:58:38 2004 *************** *** 171,177 **** NAMESPACE_END // VC60 workaround: it doesn't allow typename in some places ! #ifdef _MSC_VER #define CPP_TYPENAME #else #define CPP_TYPENAME typename --- 171,177 ---- NAMESPACE_END // VC60 workaround: it doesn't allow typename in some places ! #if defined(_MSC_VER) && _MSC_VER < 1300 #define CPP_TYPENAME #else #define CPP_TYPENAME typename diff -c /cygdrive/d/historic/c50/eccrypto.cpp ./eccrypto.cpp *** /cygdrive/d/historic/c50/eccrypto.cpp Tue Sep 3 14:28:32 2002 --- ./eccrypto.cpp Fri Mar 19 20:27:20 2004 *************** *** 542,554 **** } template ! DL_GroupParameters_EC::Element DL_GroupParameters_EC::MultiplyElements(const Element &a, const Element &b) const { return GetCurve().Add(a, b); } template ! DL_GroupParameters_EC::Element DL_GroupParameters_EC::CascadeExponentiate(const Element &element1, const Integer &exponent1, const Element &element2, const Integer &exponent2) const { return GetCurve().CascadeMultiply(exponent1, element1, exponent2, element2); } --- 542,554 ---- } template ! CPP_TYPENAME DL_GroupParameters_EC::Element DL_GroupParameters_EC::MultiplyElements(const Element &a, const Element &b) const { return GetCurve().Add(a, b); } template ! CPP_TYPENAME DL_GroupParameters_EC::Element DL_GroupParameters_EC::CascadeExponentiate(const Element &element1, const Integer &exponent1, const Element &element2, const Integer &exponent2) const { return GetCurve().CascadeMultiply(exponent1, element1, exponent2, element2); } diff -c /cygdrive/d/historic/c50/integer.cpp ./integer.cpp *** /cygdrive/d/historic/c50/integer.cpp Mon Sep 9 14:37:34 2002 --- ./integer.cpp Fri Mar 19 20:26:20 2004 *************** *** 25,31 **** #ifdef SSE2_INTRINSICS_AVAILABLE template ! AllocatorBase::pointer AlignedAllocator::allocate(size_type n, const void *) { if (n < 4) return new T[n]; --- 25,31 ---- #ifdef SSE2_INTRINSICS_AVAILABLE template ! CPP_TYPENAME AllocatorBase::pointer AlignedAllocator::allocate(size_type n, const void *) { if (n < 4) return new T[n]; diff -c /cygdrive/d/historic/c50/polynomi.cpp ./polynomi.cpp *** /cygdrive/d/historic/c50/polynomi.cpp Wed Sep 11 14:17:50 2002 --- ./polynomi.cpp Fri Mar 19 20:23:14 2004 *************** *** 473,479 **** } template ! RingOfPolynomialsOver::Element RingOfPolynomialsOver::Interpolate(const CoefficientType x[], const CoefficientType y[], unsigned int n) const { assert(n > 0); --- 473,479 ---- } template ! CPP_TYPENAME RingOfPolynomialsOver::Element RingOfPolynomialsOver::Interpolate(const CoefficientType x[], const CoefficientType y[], unsigned int n) const { assert(n > 0); diff -c /cygdrive/d/historic/c50/polynomi.h ./polynomi.h *** /cygdrive/d/historic/c50/polynomi.h Wed Sep 11 18:24:56 2002 --- ./polynomi.h Fri Mar 19 20:22:54 2004 *************** *** 304,311 **** public: typedef T CoefficientRing; typedef PolynomialOver Element; ! typedef Element::CoefficientType CoefficientType; ! typedef Element::RandomizationParameter RandomizationParameter; RingOfPolynomialsOver(const CoefficientRing &ring) : m_ring(ring) {} --- 304,311 ---- public: typedef T CoefficientRing; typedef PolynomialOver Element; ! typedef CPP_TYPENAME Element::CoefficientType CoefficientType; ! typedef CPP_TYPENAME Element::RandomizationParameter RandomizationParameter; RingOfPolynomialsOver(const CoefficientRing &ring) : m_ring(ring) {} diff -c /cygdrive/d/historic/c50/pubkey.h ./pubkey.h *** /cygdrive/d/historic/c50/pubkey.h Tue Sep 3 05:08:42 2002 --- ./pubkey.h Fri Mar 19 20:19:28 2004 *************** *** 820,832 **** class OID; //! . ! template class DL_KeyImpl : public PK { public: typedef GP GroupParameters; ! OID GetAlgorithmID() const {return GetGroupParameters().GetAlgorithmID();} // void BERDecode(BufferedTransformation &bt) // {PK::BERDecode(bt);} // void DEREncode(BufferedTransformation &bt) const --- 820,832 ---- class OID; //! . ! template class DL_KeyImpl : public PK { public: typedef GP GroupParameters; ! O GetAlgorithmID() const {return GetGroupParameters().GetAlgorithmID();} // void BERDecode(BufferedTransformation &bt) // {PK::BERDecode(bt);} // void DEREncode(BufferedTransformation &bt) const diff -c /cygdrive/d/historic/c50/strciphr.h ./strciphr.h *** /cygdrive/d/historic/c50/strciphr.h Tue Sep 3 06:01:42 2002 --- ./strciphr.h Fri Mar 19 20:30:26 2004 *************** *** 142,147 **** --- 142,156 ---- SecByteBlock m_buffer; unsigned int m_leftOver; + + template friend struct WAKE_OFB; + friend struct OFB_Mode_ExternalCipher; + friend struct CTR_Mode_ExternalCipher; + template friend struct SEAL; + template friend struct OFB_Mode; + template friend struct CTR_Mode; + + template friend struct PanamaCipher; }; struct CFB_CipherAbstractPolicy *************** *** 228,233 **** --- 237,246 ---- void UncheckedSetKey(const NameValuePairs ¶ms, const byte *key, unsigned int length); unsigned int m_leftOver; + + template friend struct WAKE_CFB; + friend struct CFB_Mode_ExternalCipher; + template friend struct CFB_Mode; }; template >