[c] Disabled shell echo when typing passphrase
This commit is contained in:
parent
ca19746259
commit
7ea5e9c6e0
1 changed files with 18 additions and 0 deletions
|
@ -4,6 +4,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <termios.h>
|
||||||
|
|
||||||
#define KEY_SIZE 32
|
#define KEY_SIZE 32
|
||||||
#define SALT_SIZE 16
|
#define SALT_SIZE 16
|
||||||
|
@ -189,6 +190,21 @@ int decrypt(char *input_file, const char *passphrase) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void disableEcho() {
|
||||||
|
struct termios oldTermios, newTermios;
|
||||||
|
tcgetattr(0, &oldTermios);
|
||||||
|
newTermios = oldTermios;
|
||||||
|
newTermios.c_lflag &= ~(ECHO);
|
||||||
|
tcsetattr(0, TCSANOW, &newTermios);
|
||||||
|
}
|
||||||
|
|
||||||
|
void enableEcho() {
|
||||||
|
struct termios oldTermios;
|
||||||
|
tcgetattr(0, &oldTermios);
|
||||||
|
oldTermios.c_lflag |= ECHO;
|
||||||
|
tcsetattr(0, TCSANOW, &oldTermios);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
if (argc < 3) {
|
if (argc < 3) {
|
||||||
fprintf(stderr, "Usage: %s {enc|dec} [file_path]\n", argv[0]);
|
fprintf(stderr, "Usage: %s {enc|dec} [file_path]\n", argv[0]);
|
||||||
|
@ -210,10 +226,12 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
char passphrase[256]; // Assuming maximum passphrase length of 255 characters
|
char passphrase[256]; // Assuming maximum passphrase length of 255 characters
|
||||||
printf("Enter passphrase: ");
|
printf("Enter passphrase: ");
|
||||||
|
disableEcho();
|
||||||
if (fgets(passphrase, sizeof(passphrase), stdin) == NULL) {
|
if (fgets(passphrase, sizeof(passphrase), stdin) == NULL) {
|
||||||
fprintf(stderr, "Error reading passphrase from stdin\n");
|
fprintf(stderr, "Error reading passphrase from stdin\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
enableEcho();
|
||||||
passphrase[strcspn(passphrase, "\n")] = '\0'; // Remove trailing newline
|
passphrase[strcspn(passphrase, "\n")] = '\0'; // Remove trailing newline
|
||||||
int suc = 0;
|
int suc = 0;
|
||||||
if (strcmp(mode, "enc") == 0) {
|
if (strcmp(mode, "enc") == 0) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue