Ок. Всерівно робити нема чого, тому покулупаю. Але оскільки дотнета в мене нема, тому все буде на угад. Коментарі я добавив. Ітак.
test.cpp from rijndael.zip
Код: Виділити все
void EncryptFile(char* name,char* codename,aes_byte* key)
{
HANDLE hFile;
hFile = CreateFile(name,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); /*file to crypt*/
if (hFile == INVALID_HANDLE_VALUE)
{
cout<<"Could not open file for reading";
}
HANDLE hCodeFile;
hCodeFile = CreateFile(codename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); /*crypted file*/
if (hCodeFile == INVALID_HANDLE_VALUE)
{
cout<<"Could not open file for reading";
}
aes_byte c;DWORD k,y;
aes_byte in[16],out[16];
DWORD fsize=GetFileSize(hFile,NULL); /*bytes to crypt*/
int x=0;aes a;
a.key(key); /*third arg of function*/
while(x<fsize)
{
y=0;
while((x<fsize)&&(y<16))
{
ReadFile(hFile,&c,1,&k,NULL); /*reading*/
in[y]=c;
y++;
}
/*vvvvvvvv*/
a.encrypt(in,out); /*<<<crypt, AHTUNG!!!!*/
/*^^^^^^*/
for(int i=0;i<16;i++)
{
c=out[i];
WriteFile(hCodeFile,&c,1,&k,NULL); /*writing encrypted data and othr sheet*/
}
x++;
}
CloseHandle(hFile);
CloseHandle(hCodeFile);
}
І того робимо слідуючі висновки. Слід звернути увагу сюди >>> a.encrypt(in,out);
Вхід і вихід об"явлені так: aes_byte in[16],out[16];
Тому робимо висновок, що дані читаються, шифруюються і пишуться блоками по 16 байт. Постає закономірне запитання: що заважає нам самим формувати змінні
in i
out? Правильно, ніщо не заважає. Тому імхо буде доцільно поступити слідуючим чином: дати можливість ввести користувачеві текст в якесь мемо1, далі що він тисканув кнопку, по натиску кнопки читаємо дані з мемо1 по 16 байт (думаю це вже сам зробиш =), шофруємо, пишемо шифрований текст в мемо2. Ну все вроді.
ЗІ твій проект я скачав але не дивився, бо як тільки чую слово "дотнет" - блювати хочеться.