-1
Ich arbeite an der Implementierung für RC4 zu S3fs mit OpenSSL mit C++. Und ich versuche, eine einfache Textdatei zu verschlüsseln, die die Zeichenfolge enthält:RC4-Implementierung Fehler
Ich bin eine Probe
Ich halte segementation Fehler bekommen, aber ich bin mir nicht sicher, warum. Kann jemand mein Problem beleuchten? Unten ist das Ergebnis und darunter ist der Code.
Datei 1 geöffnet
Datei 2 geöffnet
Segmentation fault (core dumped)
#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;
Gibt es eine Möglichkeit für mich, auf einen leeren Wert zu initialisieren, so dass er von 'foo >> buf' überschrieben wird? – Callat
Err, 'unsigned char buf [1024];'? oder welche Größe soll es sein? – EJP
Ok ich werde das versuchen. – Callat