-----Original Message-----
From: Manik Taneja [mailto:[EMAIL PROTECTED] 
Sent: den 5 november 2005 23:50
To: [email protected]
Subject: RE: Newbie help tips please

I think there should be a sligt difference in the order of arguments...

g++ crypt_test.cpp -lcryptopp.a -static -L$<path>  -o test_app
where $<path> is the location for lcryptopp.a you could figure this out by
typing locate libcryptopp.a 

---
hope is the quintessential human illusion... simultaneously the source of
your greatest strength and your greatest weakness

Quoting [EMAIL PROTECTED]:

> 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
> > 
> > 
> 
> 
> 
> 
> 
> 



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Manik Taneja
University at Buffalo
mtaneja [at] buffalo [dot] edu

************************************************************
Ah thank you very much. That worked... Well almost... A small change to your
line:

g++ crypt_test.cpp -lcryptopp -static -L./cryptopp -o test_app (Removed the
.a in -l)

Now I can continue and see if I can write an application using the library.
Thanks a million!!!

// jpb


Reply via email to