Thanks Jeff & wei dai for your guidance. I use cryptopp version 5.5.1
in my project. I wil try with a non FIPS compliant version of crypto+
+.

---
Thanks
Kumaresh

On Jul 14, 2:00 am, "Wei Dai" <[EMAIL PROTECTED]> wrote:
> Jeff is right, but triple-DES is still in the DLL, which is why DES_EDE2
> works.
>
>
>
> ----- Original Message -----
> From: "Jeffrey Walton" <[EMAIL PROTECTED]>
> To: "kumaresh" <[EMAIL PROTECTED]>
>
> Cc: "Crypto++ Users" <[EMAIL PROTECTED]>
> Sent: Friday, July 13, 2007 3:44 AM
> Subject: Re: single Des encryption gives me linker errors
>
> > Hi Kumaresh,
>
> > The FIPS compliant Dll does not include the routine since NIST
> > depricated it's use. IIRC, this includes 3DES also.
>
> > Jeff
>
> > On 7/13/07, kumaresh <[EMAIL PROTECTED]> wrote:
>
> >> Hello
>
> >> I am trying to perform single DES encryption using ECB mode. I have
> >> attached a sample code here. This gives me a linker error.
>
> >> #include "stdafx.h"
> >> #include "dll.h"
> >> #include <iostream>
> >> using namespace std;
> >> using namespace CryptoPP;
>
> >> void singleDes()
> >> {
> >>        const unsigned int blockSize = 8;
>
> >>        unsigned char plainText[] = "Rtop34Wz";
>
> >>        unsigned char key[] = "Rtop34Wz";
>
> >>        unsigned char *cipherText;
>
> >>        cipherText = new unsigned char [blockSize];
>
> >>    unsigned char *DecText;
>
> >>    DecText = new unsigned char [blockSize];
>
> >>        ECB_Mode<DES>::Encryption ecbEncr;
>
> >>        ECB_Mode<DES>::Decryption ecbDecr;
>
> >>        ecbEncr.SetKey(key,8);
>
> >>        ecbEncr.ProcessData(cipherText,plainText,blockSize);
>
> >>        cout<<endl<<endl<<"Hex form of ciphertext password:- ";
>
> >>        for( int i = 0; i <8; i++ )
> >>        {
> >>                std::cout << std::hex << (0xFF & static_cast<byte>(
> >> cipherText[i]));
> >>        }
>
> >>        ecbDecr.SetKey(key,8);
>
> >>        ecbDecr.ProcessData(DecText,cipherText,blockSize);
>
> >>        cout<<endl;
>
> >>        for(int i=0; i<8;i++)
> >>        {
> >>                cout<<DecText[i];
> >>        }
>
> >>        /*for( int i = 0; i <8; i++ )
> >>        {
> >>                cout << std::hex << (0xFF & static_cast<byte>(
> >> cipherText[i]));
> >>        }*/
> >> }
>
> >> The error during compilation is:
>
> >> Linking...
> >> singleDes.obj : error LNK2001: unresolved external symbol "public:
> >> virtual void __thiscall
> >> CryptoPP::DES::Base::ProcessAndXorBlock(unsigned char const *,unsigned
> >> char const *,unsigned char *)const " (?
> >> [EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED])
> >> singleDes.obj : error LNK2001: unresolved external symbol "public:
> >> virtual void __thiscall CryptoPP::DES::Base::UncheckedSetKey(unsigned
> >> char const *,unsigned int,class CryptoPP::NameValuePairs const &)" (?
> >> [EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@@Z)
>
> >> Whereas the following code works perfectly:
>
> >> #include "stdafx.h"
> >> #include "dll.h"
> >> #include <iostream>
> >> using namespace std;
> >> using namespace CryptoPP;
>
> >> void PasswordEncrypt()
> >> {
> >>    const unsigned int blocksize = 8;
>
> >>        byte password[] = "Rtop34Wz";//{'R','t','o','p','3','4','W','z'};
>
> >>        byte key[] = "Rtop34WzRtop34Wz";
>
> >>        byte iv[]= "00000000";
>
> >>        cout<<"Plain Text Password:- "<<password<<endl<<endl;
> >>        cout<<"Hex form of plain text password:- ";
>
> >>        for( int i = 0; i <8; i++ )
> >>          {
> >>        std::cout << std::hex << (0xFF &
> >> static_cast<byte>( password[i]));
> >>          }
>
> >>        //declare vectors to hole encrypted and decrypted messages
> >>    byte *ciphertext;
> >>      ciphertext = new byte [blocksize];
> >>      byte *decryptedtext;
> >>      decryptedtext = new byte [blocksize];
>
> >>         // cout<<endl<<DES_EDE2::BLOCKSIZE;
>
> >>      //declare encryption and decryption objects
> >>      CBC_Mode<DES_EDE2>::Encryption cbcencr;
> >>          CBC_Mode<DES_EDE2>::Decryption cbcdec;
> >>          cbcencr.SetKeyWithIV(key,strlen((char*)key),iv);
> >>          cbcencr.ProcessData(ciphertext,password,DES_EDE2::BLOCKSIZE);
>
> >>          cout<<endl<<endl<<"Hex form of ciphertext password:- ";
> >>          for( int i = 0; i <8; i++ )
> >>          {
> >>        std::cout << std::hex << (0xFF &
> >> static_cast<byte>( ciphertext[i]));
> >>          }
> >>          cbcdec.SetKeyWithIV(key,strlen((char*)key),iv);
>
> >> cbcdec.ProcessData(decryptedtext,ciphertext,DES_EDE2::BLOCKSIZE);
> >>          cout<<endl<<endl<<"Decrypted Password:- ";
> >>          for(int i=0; i<8;i++)
> >>          {
> >>                  cout<<decryptedtext[i];
> >>          }
> >>        //  cout<<endl<<"decryptedtext"<<endl<<decryptedtext;
> >>          /*for( int i = 0; i <8; i++ )
> >>          {
> >>        std::cout << std::hex << (0xFF &
> >> static_cast<byte>( decryptedtext[i]));
> >>          }
> >>    */
> >> }
>
> >> Please suggest a solution to this problem.
>
> >> Note: I have already gone through every thing in
> >>http://www.cryptopp.com/fom-serve/cache/1.html(The Crypto++ Faq-O-
> >> Matic)
>
> >> -------
> >> Thanks
>
> >> Kumaresh- Hide quoted text -
>
> - Show quoted text -


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to