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


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