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