Hi tried that as well. Still get the same errors. I will later today install a linux machine and see if I can get it working there. Thanks for the tips.
// JPB -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: den 4 november 2005 01:03 To: [email protected]; [EMAIL PROTECTED] Cc: 'Jeffrey Walton' Subject: RE: Newbie help tips please Hi, Should it not be (see Wei's gnumakefile): g++ libcryptopp.a -L... -lcryptopp -o test_app crypt_test.cpp Jeff Quoting [EMAIL PROTECTED]: > Hello, > Unfortunatly I have not made any progress, I did some more > tests but decided to leave it for a while and learn some more basic > c++ thinking maybe I was missing some basic knowledge. What I did do is: > > I have tried installing the freebsd port and using the library that > way, but that doesn't work either. I then tried to update the whole > system to FreeBSD 6RC2. That helped a bit regarding the compilation > errors encountered when compiling integer.cpp but still I get linking > erros. Just a quick recap to see if I am correct in my methodology: > 1. Download and extract the source for cryptopp > /root/code/gsm_control/trunk/cryptopp > 2. cp GNUMakefile to Makefile and run gmake 3. Compilation goes fine > but cryptotest fails all 16 "Panama validation suite running..." tests > 4. Use small test program from Faq to test > (/root/code/gsm_control/trunk/crypto_test.cpp): > ********************************** > #include <iostream> > #include <iomanip> > > #include "cryptopp/modes.h" > #include "cryptopp/aes.h" > #include "cryptopp/filters.h" > > int main(int argc, char* argv[]) { > > // > // Key and IV setup > // > byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[ > CryptoPP::AES::BLOCKSIZE ]; > memset( key, 0x00, CryptoPP::AES::DEFAULT_KEYLENGTH ); > memset( iv, 0x00, CryptoPP::AES::BLOCKSIZE ); > > // > // String and Sink setup > // > std::string plaintext = "Now is the time for all good men to come > to the aide..."; > std::string ciphertext; > std::string decryptedtext; > > // > // Dump Plain Text > // > std::cout << "Plain Text (" << plaintext.size() << " bytes)" << > std::endl; > std::cout << plaintext; > std::cout << std::endl << std::endl; > > // > // Create Cipher Text > // > CryptoPP::AES::Encryption aesEncryption(key, > CryptoPP::AES::DEFAULT_KEYLENGTH); > CryptoPP::CBC_Mode_ExternalCipher::Encryption cbcEncryption( > aesEncryption, iv ); > > CryptoPP::StreamTransformationFilter stfEncryptor(cbcEncryption, > new CryptoPP::StringSink( ciphertext ) ); > stfEncryptor.Put( reinterpret_cast<const unsigned char*>( > plaintext.c_str() ), plaintext.length() + 1 ); > stfEncryptor.MessageEnd(); > > // > // Dump Cipher Text > // > std::cout << "Cipher Text (" << ciphertext.size() << " bytes)" << > std::endl; > > for( int i = 0; i < ciphertext.size(); i++ ) { > > std::cout << "0x" << std::hex << (0xFF & > static_cast<byte>(ciphertext[i])) << " "; > } > > std::cout << std::endl << std::endl; > > // > // Decrypt > // > CryptoPP::AES::Decryption aesDecryption(key, > CryptoPP::AES::DEFAULT_KEYLENGTH); > CryptoPP::CBC_Mode_ExternalCipher::Decryption cbcDecryption( > aesDecryption, iv ); > > CryptoPP::StreamTransformationFilter stfDecryptor(cbcDecryption, > new CryptoPP::StringSink( decryptedtext ) ); > stfDecryptor.Put( reinterpret_cast<const unsigned char*>( > ciphertext.c_str() ), ciphertext.size() ); > stfDecryptor.MessageEnd(); > > // > // Dump Decrypted Text > // > std::cout << "Decrypted Text: " << std::endl; > std::cout << decryptedtext; > std::cout << std::endl << std::endl; > > return 0; > } > ********************************** > 5. Compile using > gandalf# pwd > /root/code/gsm_control/trunk > gandalf# g++ -L/root/code/gsm_control/trunk/cryptopp/ -lcryptopp -o > test_app crypt_test.cpp 6. Get lots and lots of errors (here are > some): > /var/tmp//ccAX78nC.o(.text+0x27b): In function `main': > : undefined reference to > `CryptoPP::CipherModeFinalTemplate_ExternalCipher<CryptoPP::CBC_Encryption>: > :CipherModeFinalTemplate_ExternalCipher(CryptoPP::SimpleKeyedTransform > ation< CryptoPP::BlockTransformation>&, unsigned char const*, int)' > /var/tmp//ccAX78nC.o(.text+0x2a5): In function `main': > : undefined reference to > `CryptoPP::StringSinkTemplate<std::string>::StringSinkTemplate(std::st > ring&) > ' > /var/tmp//ccAX78nC.o(.text+0x2ec): In function `main': > : undefined reference to > `CryptoPP::StreamTransformationFilter::StreamTransformationFilter(CryptoPP:: > StreamTransformation&, CryptoPP::BufferedTransformation*, > CryptoPP::StreamTransformationFilter::BlockPaddingScheme)' > /var/tmp//ccAX78nC.o(.text+0x465): In function `main': > : undefined reference to > `CryptoPP::CipherModeFinalTemplate_ExternalCipher<CryptoPP::CBC_Decryption>: > :CipherModeFinalTemplate_ExternalCipher(CryptoPP::SimpleKeyedTransform > ation< CryptoPP::BlockTransformation>&, unsigned char const*, int)' > /var/tmp//ccAX78nC.o(.text+0x48f): In function `main': > : undefined reference to > `CryptoPP::StringSinkTemplate<std::string>::StringSinkTemplate(std::st > ring&) > ' > /var/tmp//ccAX78nC.o(.text+0x4d6): In function `main': > > Am I doing anything obviously wrong here?! Do I have to pass any > object files or the like with the compiler statement? Any help greatly appreciated. > Thanks. > > // Jorgen > > -----Original Message----- > From: Jeffrey Walton [mailto:[EMAIL PROTECTED] > Sent: den 3 november 2005 22:28 > To: [email protected]; [EMAIL PROTECTED] > Subject: Re: Newbie help tips please > > Hi, > > Have you made any progress? > > Jeff > > >>> [EMAIL PROTECTED] 10/30/2005 8:39 PM >>> > Hello, > I am a complete C++ newbie but I think the best way to learn is > to get stuck into it. Anyhow what I want to do is simply try to use > the CryptoPP library in a small learning program. For example starting > out using SHA hashes or the like. So I downloaded the source, > extracted it into cryptopp directory in my source root. I then copied > the GNUmakefile to Makefile, ran gmake. One thing I had to do thoguh > was compile integer.cpp by hand as it did not compile with -O2 (-O1 > worked fine). After this I ran tried compiling the program from the > FAQ entitled "How do I use a block cipher in > Crypto++ > 5.0?" by 2005-Oct-21 7:38am jeffrey. I only changed the include paths > as below. > > #include "cryptopp/modes.h" > #include "cryptopp/aes.h" > #include "cryptopp/filters.h" > > > However I get lots of errors and the compilation fails. I am running > FreeBSD: > > FreeBSD xxx.xxx.xxx 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun May 8 > 10:21:06 > UTC 2005 i386 > > Here are some of the erorrors, as far as I can understand these are > linker errors and not compilation erros right?: > > /var/tmp//ccb6QI7E.o(.gnu.linkonce.t._ZN8CryptoPP8Rijndael3EncC2ERKS1_ > +0x28) > : In function `CryptoPP::Rijndael::Enc::Enc(CryptoPP::Rijndael::Enc > const&)': > : undefined reference to `vtable for CryptoPP::Rijndael::Enc' > /var/tmp//ccb6QI7E.o(.gnu.linkonce.t._ZN8CryptoPP8SecBlockIjNS_20Alloc > atorWi > thCleanupIjEEEC1ERKS3_+0x25): In function `CryptoPP::SecBlock<unsigned > int, CryptoPP::AllocatorWithCleanup<unsigned int> > >::SecBlock(CryptoPP::SecBlock<unsigned int, > CryptoPP::AllocatorWithCleanup<unsigned int> > const&)': > : undefined reference to `CryptoPP::AllocatorWithCleanup<unsigned > int>::allocate(unsigned int, void const*)' > > > This is the command I used to compile: > > # g++ crypt_test.cpp -o cptest.out > > I also tried using for SHA in my own really simple program but get the > same errors. > > Am I missing something. Like I said I am VERY new to C++ so maybe I > haven't yet grasped how the libraries are supposed to be used (I have > compiled other OOP programs I've written myself though without > problems). I have searched for code examples on the net but almost all > are Windows code. I have tried the -lcryptopp and -L path switches but > still get the same error. Also the cryptotest v fails on many tests. > > Tests complete. Total tests = 16. Failed tests = 16. > SOME TESTS FAILED! > > Whirlpool Hash Function validation suite running... > AlgorithmType: MessageDigest > Comment: Message digests of strings of 0-bits and lengths 0-127 bytes > Digest: > 470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F\ > Message: r0 0x00 > Name: Whirlpool > Source: Tweaked NESSIE submission > > CryptoPP::Exception caught: Unexpected error during validation test > > Thankful for any tips or nudges in the right direction. > > // bobey > >
