Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b619384a1 | |||
| 12b9884572 | |||
| 83b60b5cc2 |
45
otp.c
45
otp.c
@@ -271,7 +271,7 @@ int command_line_mode(int argc, char* argv[]) {
|
||||
}
|
||||
|
||||
void show_main_menu(void) {
|
||||
printf("=== Main Menu ===\n\n");
|
||||
printf("======================== Main Menu ========================\n");
|
||||
printf("\033[4mT\033[0mext encrypt\n");
|
||||
printf("\033[4mF\033[0mile encrypt\n");
|
||||
printf("\033[4mD\033[0mecrypt\n");
|
||||
@@ -462,18 +462,11 @@ int handle_encrypt_menu(void) {
|
||||
int ascii_armor = (atoi(format_input) == 2) ? 1 : 0;
|
||||
|
||||
// Generate default output filename and use enhanced input function
|
||||
char default_output[512];
|
||||
snprintf(default_output, sizeof(default_output), "%s.decrypted", input_file);
|
||||
|
||||
// Remove common encrypted extensions to get a better default
|
||||
if (strstr(default_output, ".otp.asc.decrypted")) {
|
||||
// Replace .otp.asc.decrypted with original extension or no extension
|
||||
char* ext_pos = strstr(default_output, ".otp.asc.decrypted");
|
||||
*ext_pos = '\0';
|
||||
} else if (strstr(default_output, ".otp.decrypted")) {
|
||||
// Replace .otp.decrypted with original extension or no extension
|
||||
char* ext_pos = strstr(default_output, ".otp.decrypted");
|
||||
*ext_pos = '\0';
|
||||
char default_output[1024]; // Increased size to prevent truncation warnings
|
||||
if (ascii_armor) {
|
||||
snprintf(default_output, sizeof(default_output), "%s.otp.asc", input_file);
|
||||
} else {
|
||||
snprintf(default_output, sizeof(default_output), "%s.otp", input_file);
|
||||
}
|
||||
|
||||
char output_file[512];
|
||||
@@ -529,16 +522,32 @@ int handle_decrypt_menu(void) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Ask for custom output filename (optional)
|
||||
printf("\nEnter output filename (or press Enter for default): ");
|
||||
// Generate smart default output filename and use enhanced input function
|
||||
char default_output[512];
|
||||
strncpy(default_output, input_file, sizeof(default_output) - 1);
|
||||
default_output[sizeof(default_output) - 1] = '\0';
|
||||
|
||||
// Remove common encrypted extensions to get a better default
|
||||
if (strstr(default_output, ".otp.asc")) {
|
||||
// Replace .otp.asc with original extension or no extension
|
||||
char* ext_pos = strstr(default_output, ".otp.asc");
|
||||
*ext_pos = '\0';
|
||||
} else if (strstr(default_output, ".otp")) {
|
||||
// Replace .otp with original extension or no extension
|
||||
char* ext_pos = strstr(default_output, ".otp");
|
||||
*ext_pos = '\0';
|
||||
} else {
|
||||
// No recognized encrypted extension, add .decrypted suffix
|
||||
strncat(default_output, ".decrypted", sizeof(default_output) - strlen(default_output) - 1);
|
||||
}
|
||||
|
||||
char output_file[512];
|
||||
if (!fgets(output_file, sizeof(output_file), stdin)) {
|
||||
if (get_filename_with_default("Output filename:", default_output, output_file, sizeof(output_file)) != 0) {
|
||||
printf("Error: Failed to read input\n");
|
||||
return 1;
|
||||
}
|
||||
output_file[strcspn(output_file, "\n")] = 0;
|
||||
|
||||
const char* output_filename = (strlen(output_file) > 0) ? output_file : NULL;
|
||||
const char* output_filename = output_file;
|
||||
|
||||
return decrypt_file(input_file, output_filename);
|
||||
}
|
||||
|
||||
1
test_decrypt.txt
Normal file
1
test_decrypt.txt
Normal file
@@ -0,0 +1 @@
|
||||
Test file content for decryption
|
||||
BIN
test_decrypt.txt.otp
Normal file
BIN
test_decrypt.txt.otp
Normal file
Binary file not shown.
Reference in New Issue
Block a user