39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#include "aes.hpp"
|
|
#include "decrypt.hpp"
|
|
|
|
int main(int argc, char* argv[]) {
|
|
if(argc != 3) {
|
|
std::cerr << "An input file is missing.\n ./Decrypt.ex fileToDecrypt AeskeyForDecrypt\n";
|
|
return 1;
|
|
}
|
|
|
|
size_t fileLength;
|
|
unsigned char* fileEncrypted;
|
|
unsigned char* decryptedFile;
|
|
|
|
aes* O2 = new decrypt(argv[1]);
|
|
O2->importKey(argv[2]);
|
|
|
|
fileLength = O2->readFile(&fileEncrypted);
|
|
std::cerr << "byte to be decrypted : " << fileLength << std::endl;
|
|
|
|
int decryptedFileLength = (dynamic_cast<decrypt*>(O2))->aesDecrypt(fileEncrypted, fileLength, &decryptedFile);
|
|
if( decryptedFileLength == -1) {
|
|
fprintf(stderr, "Decryption failed\n");
|
|
return 1;
|
|
}
|
|
|
|
printf("%d bytes decrypted\n", (int)decryptedFileLength);
|
|
std::cerr << "mainDeCrypt.ex : " << O2->PrintAesKey() << std::endl;
|
|
|
|
// Write the decrypted file to its own file
|
|
std::string decryptedFilename = O2->writeFile(decryptedFile, decryptedFileLength);
|
|
printf("Decrypted file written to \"%s\"\n", decryptedFilename.c_str());
|
|
|
|
free(decryptedFile);
|
|
free(fileEncrypted);
|
|
delete O2;
|
|
|
|
return 0;
|
|
}
|