Ошибка реализации RC4

Я работаю над реализацией для RC4 в S3fs, используя openssl с C ++. И я пытаюсь зашифровать простой текстовый файл, который содержит строку:

Я образец

Я продолжаю получать ошибки сегментации, но я не уверен почему. Кто-нибудь может пролить свет на мою проблему? Ниже приведен результат, а ниже — код.

Файл 1 открыт
Файл 2 открыт
Ошибка сегментации (ядро сброшено)

#include<iostream>
#include "rc4_enc.c"#include "rc4_skey.c"#include <unistd.h>
#include <sys/syscall.h>
#include <errno.h>
#include "rc4.h"#include<fstream>
#include<string>
#include<sstream>
using namespace std;

int main(){
//cout << "I work \n"; // Test for compilation
ifstream mytext;
ifstream result;

// apply string stream
stringstream foo;
stringstream baz;

mytext.open("sample.txt", ios::binary);
if(!mytext.good()){
cout << "File 1 not opened \n";
return 1;
}
else{
cout << "File 1 opened \n";
foo << mytext.rdbuf();
}
result.open("result.txt", ios::binary);
if(!result.good()){
cout << "File 2 not opened \n";
return 1;
}
else{
cout << "File 2 opened \n";
baz << result.rdbuf();
}
char source[6] = "tacos";
//const unsigned char source[] = {'t','a','c','o'};
int len = strlen(source);
RC4_KEY mykey;
unsigned char * buf;
foo >> buf;
RC4_set_key(&mykey,len, buf); // causes segfault?
// make a second buffer and cast it.
unsigned char * muf;
baz >> muf;
RC4(&mykey, sizeof(mytext),buf,muf);

return 0;

-1

Решение

unsigned char * buf;

Вы не инициализировали эту переменную.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]