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::SimpleKeyedTransformation<
> CryptoPP::BlockTransformation>&, unsigned char const*, int)'
> /var/tmp//ccAX78nC.o(.text+0x2a5): In function `main':
> : undefined reference to
> `CryptoPP::StringSinkTemplate<std::string>::StringSinkTemplate(std::string&)
> '
> /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::SimpleKeyedTransformation<
> CryptoPP::BlockTransformation>&, unsigned char const*, int)'
> /var/tmp//ccAX78nC.o(.text+0x48f): In function `main':
> : undefined reference to
> `CryptoPP::StringSinkTemplate<std::string>::StringSinkTemplate(std::string&)
> '
> /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_20AllocatorWi
> 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
> 
> 



Reply via email to