diff --git a/otp.c b/otp.c index d0663ff..6e89da8 100644 --- a/otp.c +++ b/otp.c @@ -1445,16 +1445,6 @@ int encrypt_file(const char* pad_identifier, const char* input_file, const char* // Pad offset: 8 bytes fwrite(¤t_offset, sizeof(uint64_t), 1, output_fp); - // Original filename length and name - const char* base_filename = strrchr(input_file, '/'); - if (base_filename) { - base_filename++; // Skip the '/' - } else { - base_filename = input_file; - } - uint16_t filename_len = strlen(base_filename); - fwrite(&filename_len, sizeof(uint16_t), 1, output_fp); - fwrite(base_filename, 1, filename_len, output_fp); // File mode: 4 bytes uint32_t file_mode = input_stat.st_mode; @@ -1527,7 +1517,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { uint16_t version; unsigned char pad_chksum_bin[32]; uint64_t pad_offset; - uint16_t filename_len; uint32_t file_mode; uint64_t file_size; @@ -1535,7 +1524,8 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { fread(&version, sizeof(uint16_t), 1, input_fp) != 1 || fread(pad_chksum_bin, 1, 32, input_fp) != 32 || fread(&pad_offset, sizeof(uint64_t), 1, input_fp) != 1 || - fread(&filename_len, sizeof(uint16_t), 1, input_fp) != 1) { + fread(&file_mode, sizeof(uint32_t), 1, input_fp) != 1 || + fread(&file_size, sizeof(uint64_t), 1, input_fp) != 1) { printf("Error: Cannot read binary header\n"); fclose(input_fp); return 1; @@ -1547,25 +1537,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { return 1; } - // Read original filename - char* original_filename = malloc(filename_len + 1); - if (fread(original_filename, 1, filename_len, input_fp) != filename_len) { - printf("Error: Cannot read original filename\n"); - free(original_filename); - fclose(input_fp); - return 1; - } - original_filename[filename_len] = '\0'; - - // Read remaining header - if (fread(&file_mode, sizeof(uint32_t), 1, input_fp) != 1 || - fread(&file_size, sizeof(uint64_t), 1, input_fp) != 1) { - printf("Error: Cannot read file metadata\n"); - free(original_filename); - fclose(input_fp); - return 1; - } - // Convert binary checksum to hex char pad_chksum_hex[65]; for (int i = 0; i < 32; i++) { @@ -1574,7 +1545,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { pad_chksum_hex[64] = '\0'; printf("Decrypting binary file...\n"); - printf("Original filename: %s\n", original_filename); printf("File size: %lu bytes\n", file_size); // Check if we have the required pad @@ -1586,7 +1556,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { printf("Error: Required pad not found: %s\n", pad_chksum_hex); printf("Available pads:\n"); list_available_pads(); - free(original_filename); fclose(input_fp); return 1; } @@ -1594,8 +1563,7 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { // Determine output filename char default_output[512]; if (output_file == NULL) { - strncpy(default_output, original_filename, sizeof(default_output) - 1); - default_output[sizeof(default_output) - 1] = '\0'; + snprintf(default_output, sizeof(default_output), "decrypted.bin"); output_file = default_output; } @@ -1603,7 +1571,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { unsigned char* encrypted_data = malloc(file_size); if (fread(encrypted_data, 1, file_size, input_fp) != file_size) { printf("Error: Cannot read encrypted data\n"); - free(original_filename); free(encrypted_data); fclose(input_fp); return 1; @@ -1614,14 +1581,12 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { FILE* pad_file = fopen(pad_path, "rb"); if (!pad_file) { printf("Error: Cannot open pad file\n"); - free(original_filename); free(encrypted_data); return 1; } if (fseek(pad_file, pad_offset, SEEK_SET) != 0) { printf("Error: Cannot seek to offset in pad file\n"); - free(original_filename); free(encrypted_data); fclose(pad_file); return 1; @@ -1630,7 +1595,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { unsigned char* pad_data = malloc(file_size); if (fread(pad_data, 1, file_size, pad_file) != file_size) { printf("Error: Cannot read pad data\n"); - free(original_filename); free(encrypted_data); free(pad_data); fclose(pad_file); @@ -1647,7 +1611,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { FILE* output_fp = fopen(output_file, "wb"); if (!output_fp) { printf("Error: Cannot create output file %s\n", output_file); - free(original_filename); free(encrypted_data); free(pad_data); return 1; @@ -1655,7 +1618,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { if (fwrite(encrypted_data, 1, file_size, output_fp) != file_size) { printf("Error: Cannot write decrypted data\n"); - free(original_filename); free(encrypted_data); free(pad_data); fclose(output_fp); @@ -1672,7 +1634,6 @@ int decrypt_binary_file(FILE* input_fp, const char* output_file) { printf("Restored permissions and metadata\n"); // Cleanup - free(original_filename); free(encrypted_data); free(pad_data);