Hi Gecko,

Sorry... I lied. The '-L' is a path argument to g++. So, '-L.' puts the
current directory on the compilers' path. I think you got it , though.

You might also try 'man g++'. It will give you a full description of the
compiler arguments and switches.

Jeff

----- Original Message ----- 
From: "The Gecko" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, September 05, 2005 12:22 PM
Subject: Re: Issues with SHA (or even CBC) MAC - trying to read in a file to
a buffer and MAC


Tell a lie it does if I do
g++ -o a.out -g -msse2 -pipe JpegCoder2.cpp -L. -lcryptopp
./a.out using
HMAC<SHA > mac;
mac.SetKey(thekey, keylength);
mac.Update(buffery, lSize);
mac.Final(bufferzz9);
cout<<bufferzz9<<std::endl;

I think I can figure out other stuff from here. Thank you for all your help

On 9/5/05, The Gecko <[EMAIL PROTECTED]> wrote:
>
> That line seems to work in that it does nothing obvious. Could you take a
> look at the code I posted in my intial email and let me know if you think
> I'm calling SHA or better CBC_MAC correctly?
>
>
>
> On 9/5/05, Jeffrey Walton <[EMAIL PROTECTED]> wrote:
> >
> > Hi Gecko,
> >
> > Again, it has been a while since I've compiled in the Unix world.
> >
> > It looks like Wei is placing things in the archive libcryptopp.a. Where
> > are
> > you bringing in the archive? I recall it can be specified as a switch,
> > but I
> > just don't recall. The following line from make's output appears to
> > support
> > '-L' (and don't use the '.a' extension):
> >
> > g++ -o cryptest.exe -g -msse2 -pipe bench.o bench2.o test.o validat1.o
> > validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o
dlltest.o-L.
> > -lcryptopp
> >
> > Jeff
> >
> > ----- Original Message -----
> > From: "The Gecko" <[EMAIL PROTECTED]>
> > To: < [email protected]>
> > Sent: Sunday, September 04, 2005 12:42 PM
> > Subject: Re: Issues with SHA (or even CBC) MAC - trying to read in a
> > file to
> > a buffer and MAC
> >
> >
> > I've just run make and it completes wthout errors:
> > make
> > g++ -g -msse2 -pipe -c 3way.cpp
> > <snip>
> > g++ -g -msse2 -pipe -c ida.cpp
> > In file included from
> >
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../../include/c++/3.4.1/bac
> >
> > kward/strstream:51,
> > from polynomi.cpp:10,
> > from ida.cpp:10:
> >
> >
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../../include/c++/3.4.1/bac
> > kward/backward_warning.h:32:2:
> > warning: #war
> > ning This file includes at least one deprecated or antiquated header.
> > Please
> > consider using one of the 32 headers found
> > in section 17.4.1.2 <http://17.4.1.2> <http://17.4.1.2> of the C++
> > standard. Examples include
> > substituting the <X> header for the < X.h> header for C++ inclu
> > des, or <iostream> instead of the deprecated header <iostream.h>. To
> > disable
> > this warning use -Wno-deprecated.
> > g++ -g -msse2 -pipe -c idea.cpp
> > <snip>
> > g++ -g -msse2 -pipe -c polynomi.cpp
> > In file included from
> >
> >
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../../include/c++/3.4.1/bac
> > kward/strstream:51,
> > from polynomi.cpp:10:
> >
/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/../../../../include/c++/3.4.1/bac
> >
> > kward/backward_warning.h:32:2:
> > warning: #war
> > ning This file includes at least one deprecated or antiquated header.
> > Please
> > consider using one of the 32 headers found
> > in section 17.4.1.2 <http://17.4.1.2> <http://17.4.1.2> of the C++
> > standard. Examples include
> > substituting the <X> header for the <X.h> header for C++ inclu
> > des, or <iostream> instead of the deprecated header < iostream.h>. To
> > disable
> > this warning use -Wno-deprecated.
> > g++ -g -msse2 -pipe -c pssr.cpp
> > <snip>
> > g++ -g -msse2 -pipe -c zdeflate.cpp
> > secblock.h: In member function `T& CryptoPP::SecBlock<T,
> > A>::operator[](I)
> > [with I = unsigned char, T = unsigned int, A =
> > CryptoPP::FixedSizeAllocatorWithCleanup<unsigned int, 286u,
> > CryptoPP::NullAllocator<unsigned int> >]':
> > zdeflate.cpp:527: instantiated from here
> > secblock.h :251: warning: comparison is always true due to limited range
> > of
> > data type
> > g++ -g -msse2 -pipe -c zinflate.cpp
> > g++ -g -msse2 -pipe -c zlib.cpp
> > ar -cr libcryptopp.a 3way.o adler32.o algebra.o algparam.o arc4.o asn.o
> > base32.o base64.o basecode.o bfinit.o blowfis .o blumshub.o camellia.o
> > cast.o casts.o cbcmac.o channels.o crc.o cryptlib.o default.o des.o
> > dessp.o
> > dh2.o dh.o dll.o d a.o ec2n.o eccrypto.o ecp.o elgamal.o eprecomp.o
> > esign.o
> > files.o filters.o fips140.o fipstest.o gf2_32.o gf256.o gf2n.o
> > gfpcrypt.o
> > gost.o gzip.o haval.o helloworld.o hex.o hmac.o hrtimer.o ida.o idea.o
> > integer.o iterhash.o luc.o mars.o mar s.o md2.o md4.o md5.o md5mac.o
> > misc.o
> > modes.o modexppc.o mqueue.o mqv.o nbtheory.o network.o oaep.o osrng.o
> > panama.o pc .o pkcspad.o polynomi.o pssr.o pubkey.o queue.o rabin.o
> > randpool.o rc2.o rc5.o rc6.o rdtables.o rijndael.o ripemd.o rng o rsa.o
> > rw.o
> > safer.o seal.o serpent.o shacal2.o sha.o sharkbox.o shark.o simple.o
> > skipjack.o socketft.o square.o square b.o strciphr.o tea.o tftables.o
> > tiger.o tigertab.o trdlocal.o ttmac.o twofish.o wait.o wake.o whrlpool.o
> > winpipes.o xtr o xtrcrypt.o zdeflate.o zinflate.o zlib.o
> > ranlib libcryptopp.a
> > g++ -g -msse2 -pipe -c bench.cpp
> > g++ -g -msse2 -pipe -c bench2.cpp
> > g++ -g -msse2 -pipe -c test.cpp
> > g++ -g -msse2 -pipe -c validat1.cpp
> > g++ -g -msse2 -pipe -c validat2.cpp
> > g++ -g -msse2 -pipe -c validat3.cpp
> > g++ -g -msse2 -pipe -c adhoc.cpp
> > g++ -g -msse2 -pipe -c datatest.cpp
> > g++ -g -msse2 -pipe -c regtest.cpp
> > g++ -g -msse2 -pipe -c fipsalgt.cpp
> > g++ -g -msse2 -pipe -c dlltest.cpp
> > g++ -o cryptest.exe -g -msse2 -pipe bench.o bench2.o test.o validat1.o
> > validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o
dlltest.o-L.
> > -lcryptopp
> >
> > However my code really doesn't work at all. It could be because I'm
> > being
> > really think with the way I'm calling SHA or CBC_MAC and would really
> > appeciate if if somebody could give me a hint (well a BIG HINT) on
> > getting
> > both especially the latter to work.
> >
> > Even odder is:
> > ./cryptest.exe m cryptest.exe
> >
> > MD5: 65bbe0d21070440c917b6272e08824be
> > SHA-1: c439cd98e01b9272b73ab9c0ba690310212c2514
> > RIPEMD-160: e495771327d4c0591c47e9bd44029d76c247a341
> > SHA-256:
> > 51d4113d7a753ea6c93e4fc839830350979e090ed6d32bd9e1d928317ca88a94[
> > [EMAIL PROTECTED] cryptopp521]#
> >
> > Works fine under mandrake so it's obviously something I'm doing wrong
> >
> >
> > Cheers
> >
> > Gecko (aka Cath)
> >
> >
> >
> > On 9/4/05, Jeffrey Walton <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Gecko,
> > >
> > > How does the library compile when using the makefile? I suspect it may
> > be
> > > a
> > > path issue, but I've seen a lot of posts on gcc issues in general.
> > Have
> > > you
> > > gone through the archive on gcc/g++ issues?
> > >
> > > Jeff
> > >
> > > ----- Original Message -----
> > > From: "The Gecko" <[EMAIL PROTECTED]>
> > > To: <[email protected]>
> > > Sent: Saturday, September 03, 2005 1:09 PM
> > > Subject: Issues with SHA (or even CBC) MAC - trying to read in a file
> > to a
> > > buffer and MAC
> > >
> > >
> > > Hi,
> > >
> > > First off let me apologise if my code sytle and question are REALL
> > lame,
> > > I've not done any C/C++ for a long time. I've been trying to impliment
> > a
> > > SHA
> > > (or even CBC_MAC) for a file which I have read into a char or byte
> > buffer.
> > > The problem is that this thing refuses point blank to compile under
> > Linux
> > > (Mandrake 10.1, g++ --version is 3.41
> > >
> > > I'm using g++ -g -msse2 -pipe codetest.cpp -o a.out where
codetest.cppis
> > > in
> > > the same folder as everything from the unzipped crypto++ libraries.
> > >
> > > The code is:
> > > --------------------
> > > #define CRYPTOPP_CBCMAC_H
> > > //#include "stdafx.h"
> > > #include "seckey.h"
> > > #include "secblock.h"
> > > #include " pch.h"
> > > #include "cryptlib.h"
> > > #include "cbcmac.h"
> > > #include "sha.h"
> > > #include "hmac.h"
> > > #include <iostream>
> > > #include <fstream>
> > > #include <math.h>
> > > #include <stdio.h>
> > > #include <stdlib.h>
> > > #include <string.h>
> > > #include "md5.h"
> > > #include "filters.h"
> > > #include " files.h"
> > > #include "hex.h"
> > > using namespace std;
> > > using namespace CryptoPP;
> > >
> > > int main()
> > > {
> > > FILE* pinfile; //Associates the pointer with a file to read in
> > > FILE* poutfile; //and out
> > > FILE* keyfile;
> > > FILE* hashkey;
> > > byte * buffery;
> > > char * buffer2;
> > > char filein[32];
> > > long lSize;
> > > int x, y;
> > > int anykey;
> > > byte * thekey;
> > > byte keylength;
> > >
> > > cout << "To hash a file press 1 + ENTER" <<std::endl;
> > > cin >> anykey;
> > >
> > > /***************************** ********
> > > ENCRYPTION
> > > *************************************/
> > > if (anykey == 1)
> > > {
> > > cout << "What is the file to encrypt:" <<std::endl;
> > > cin >> filein;
> > >
> > > //Open the file and the key in read only mode
> > > pinfile = fopen ( filein , "rb" );
> > > if (pinfile==NULL) exit (1);
> > > hashkey = fopen ( "key.txt" , "rb" );
> > > if (hashkey==NULL) exit (1);
> > >
> > > // obtain file size.
> > > fseek (pinfile , 0 , SEEK_END);
> > > lSize = ftell (pinfile);
> > > rewind (pinfile);
> > >
> > > fseek (hashkey , 0 , SEEK_END);
> > > keylength = ftell (hashkey);
> > > rewind (hashkey);
> > >
> > > // DANGER WILL ROBINSON DANGER
> > > // allocate memory to contain the whole file.
> > > buffery = (byte*) malloc (lSize);
> > > buffer2 = (char*) malloc (8);
> > > thekey = (byte*) malloc(keylength);
> > > if (buffery == NULL) exit (2);
> > >
> > > // DANGER WILL ROBINSON DANGER
> > > // whole file copied into buffer.
> > > fread (buffery,1,lSize,pinfile);
> > >
> > > byte * bufferzz9;
> > > bufferzz9 = (byte*) malloc (2 * SHA::DIGESTSIZE);
> > >
> > > HMAC<SHA > mac;
> > > mac.SetKey(thekey, keylength);
> > > mac.Update(buffery, lSize);
> > > mac.Final(bufferzz9);
> > >
> > > //TRIED WITH CBC_MAC No joy either
> > > //CBC_MAC_Base<CBC_MAC>(thekey, keylength).CalculateDigest(bufferzz9,
> > > buffery, lSize);
> > > // )) or ) here?
> > > // Clear up mess made
> > > fclose (pinfile);
> > > free (buffery);
> > > free (buffer2);
> > >
> > > }
> > > return 0;
> > > }
> > > ----------
> > >
> > > The error begins:
> > >
> > >
> > > /home/dev/cryptopp521/seckey.h:145: undefined reference to `vtable for
> > > CryptoPP::HMAC_Base'
> > >
> >
/home/dev/tmp/cclsTN2o.o(.gnu.linkonce.t._ZN8CryptoPP9HMAC_BaseD2Ev+0x17):
> > > In function `CryptoPP::HMAC_Base::~HMAC_Base()':
> > > /home/dev/cryptopp521/JpegCoder2.cpp:93: undefined reference to
> > `vtable
> > > for
> > > CryptoPP::HMAC_Base'
> > >
> > >
> >
/home/dev/tmp/cclsTN2o.o(.gnu.linkonce.t._ZN8CryptoPP25SimpleKeyedTransforma
> >
> > > tionINS_18HashTransformationEED2Ev+0xb):
> > > In function
> > >
> > > And goes on for about 100 lines.
> > >
> > > It seems tro be a linking issue as using g++ -g -msse2 -pipe -c
> > > codetest.cpp-o
> > > a.out produces no problems
> > >
> > > How can I basically read in a file and generate a MAC for it. I'd like
> > to
> > > know both SHA and CBC_MAC really for education purposes.
> > >
> > > Thanks
> > >
> > > T Gecko
> > >
> > >
> >
> >
>

Reply via email to