I am using cryptopp version 5.2.3, which is somewhat important because the
code should also compile with MSVS 2005... Do you think that would pose a
problem to using the patch? What exactly generates those strange template
errors? Is anything the matter with gcc 4.1 or is there some (obscure)
point about C++ specifications that it complies with?

Thanks in advance. Cheers,

Jorge.

Wei Dai wrote:
> What version of Crypto++ are you using? Try version 5.2.1 with the GCC4
> patch (get it from www.cryptopp.com) or the latest code from CVS.
>
> ----- Original Message -----
> From: "Jorge Marques Pelizzoni" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Tuesday, November 14, 2006 3:06 AM
> Subject: compiling with gcc 4.1.1 on Fedora 6
>
>
>>
>> Hi, all!
>>
>> I've been using Crypto++ on windows (with MSVS 2005 and cygwin, gcc
>> 3.4.4)
>> with success. However, my code has also to compile on Fedora 6. When I
>> try
>> to (with gcc 4.1.1), I get the template-related errors shown below. I
>> find
>> those messages rather puzzling because I cannot see why a function
>> receiving an argument of type T would not be called with an argument of
>> type T&, where T is a (basic) type with copy semantics. Any ideas or
>> advice? Thanks in advance.
>>
>> Jorge.
>>
>> Here goes the output from make:
>>
>> --------------------------------------------------
>> make -C ../cryptopp/ libcryptopp.a
>> make[1]: Entering directory `/root/workspace/CLS/cryptopp'
>> g++ -g -msse2 -pipe -c 3way.cpp
>> seckey.h: In function 'void CryptoPP::CheckedSetKey(T*,
>> CryptoPP::CipherDir, const byte*, size_t, const
>> CryptoPP::NameValuePairs&)
>> [with T = CryptoPP::BlockCipherFinal<DECRYPTION,
>> CryptoPP::ThreeWay::Dec>]':
>> seckey.h:179:   instantiated from 'void CryptoPP::BlockCipherFinal<DIR,
>> BASE>::SetKey(const byte*, size_t, const CryptoPP::NameValuePairs&)
>> [with
>> CryptoPP::CipherDir DIR = DECRYPTION, BASE = CryptoPP::ThreeWay::Dec]'
>> 3way.cpp:139:   instantiated from here
>> seckey.h:137: error: no matching function for call to
>> 'CryptoPP::BlockCipherFinal<DECRYPTION,
>> CryptoPP::ThreeWay::Dec>::UncheckedSetKey(CryptoPP::CipherDir&, const
>> byte*&, unsigned int)'
>> 3way.cpp:64: note: candidates are: void
>> CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const
>> byte*, unsigned int, unsigned int)
>> seckey.h: In function 'void CryptoPP::CheckedSetKey(T*,
>> CryptoPP::CipherDir, const byte*, size_t, const
>> CryptoPP::NameValuePairs&)
>> [with T = CryptoPP::BlockCipherFinal<ENCRYPTION,
>> CryptoPP::ThreeWay::Enc>]':
>> seckey.h:179:   instantiated from 'void CryptoPP::BlockCipherFinal<DIR,
>> BASE>::SetKey(const byte*, size_t, const CryptoPP::NameValuePairs&)
>> [with
>> CryptoPP::CipherDir DIR = ENCRYPTION, BASE = CryptoPP::ThreeWay::Enc]'
>> 3way.cpp:139:   instantiated from here
>> seckey.h:137: error: no matching function for call to
>> 'CryptoPP::BlockCipherFinal<ENCRYPTION,
>> CryptoPP::ThreeWay::Enc>::UncheckedSetKey(CryptoPP::CipherDir&, const
>> byte*&, unsigned int)'
>> 3way.cpp:64: note: candidates are: void
>> CryptoPP::ThreeWay::Base::UncheckedSetKey(CryptoPP::CipherDir, const
>> byte*, unsigned int, unsigned int)
>> make[1]: *** [3way.o] Error 1
>> make[1]: Leaving directory `/root/workspace/CLS/cryptopp'
>> make: *** [../cryptopp/libcryptopp.a] Error 2
>> ----------------------
>>
>
>


Jorge M. Pelizzoni
ICMC - Universidade de São Paulo

Reply via email to