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