Hi again!
I have continued working with my program since the last time I wrote to you.
Unfortunately, I have another problem with the encription. I am using
Triple-DES algorithm to encode a plain text, but when I try decode it, I do
not get the original text, I get something encrypted.
This is my source code, is it all right??
CString Texto,Texto2,Texto3;
AutoSeededRandomPool rng;
char *cadena= new char[10000];
int i,j;
// To obtain the plain text
GetDlgItem(IDC_TxtOriginal)->GetWindowText(Texto);
StringToChar(Texto, cadena);
byte key[16];
rng.GenerateBlock(key, sizeof key);
byte iv[DES_EDE3_Encryption::BLOCKSIZE];
rng.GenerateBlock(iv, sizeof iv);
// Encode text
DES_EDE3_Encryption en(key);
CBC_CTS_Encryptor encryptor(en, iv);
encryptor.Put((byte *)cadena,sizeof (cadena));
encryptor.Close();
i = encryptor.MaxRetrieveable();
unsigned char *ciphertext = new byte[i];
encryptor.Get(ciphertext, i);
Texto2 = ciphertext;
// To put the encode text in a combobox
GetDlgItem(IDC_txtcifrado)->SetWindowText(Texto2);
// Decode text
DES_EDE3_Decryption des(key);
CBC_CTS_Decryptor decryptor(des, iv);
decryptor.Put((byte *)ciphertext,sizeof (ciphertext));
decryptor.Close();
j = decryptor.MaxRetrieveable();
unsigned char *salida = new byte[j];
decryptor.Get(salida, j);
Texto3 = salida;
// To put decode text in the combobox
GetDlgItem(IDC_txtcifrado)->SetWindowText(Texto3);
Please, if you do not mind checking it, i would be very grateful.
Thank you very much in advance.
Inma.