diff --git a/decrypted.bin b/decrypted.bin new file mode 100644 index 0000000..e07046f --- /dev/null +++ b/decrypted.bin @@ -0,0 +1 @@ +Hello, this is a test file for encryption! diff --git a/otp.c b/otp.c index cdd715b..8996132 100644 --- a/otp.c +++ b/otp.c @@ -461,16 +461,28 @@ int handle_encrypt_menu(void) { int ascii_armor = (atoi(format_input) == 2) ? 1 : 0; - // Ask for custom output filename (optional) - printf("\nEnter output filename (or press Enter for default): "); + // 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 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 encrypt_file(pad_input, input_file, output_filename, ascii_armor); } diff --git a/output.otp b/output.otp new file mode 100644 index 0000000..bfca1c0 Binary files /dev/null and b/output.otp differ diff --git a/test_input.txt b/test_input.txt new file mode 100644 index 0000000..116b244 --- /dev/null +++ b/test_input.txt @@ -0,0 +1 @@ +This is a test file for encryption.