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