From 96e91e89ed0acb1a0002bd7b8b27aa85109d4ddb Mon Sep 17 00:00:00 2001 From: Nathan Lasseter Date: Tue, 5 Jun 2012 21:21:15 +0100 Subject: Code tidy and check file exists! --- Makefile | 2 +- encrypt.c | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 677ba6a..dfb3231 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CFLAGS=-Wall -Wextra encrypt: encrypt.c - gcc ${CFLAGS} ${EFLAGS} -o $@ $^ + gcc ${CFLAGS} -o $@ $^ install: cp encrypt /usr/local/bin/encrypt diff --git a/encrypt.c b/encrypt.c index 056d0da..880e2c9 100644 --- a/encrypt.c +++ b/encrypt.c @@ -3,36 +3,40 @@ #include int main(int argc, char** argv) { - + // We need a file to encrypt - if(argc==1) { + if (argc != 2) { fprintf(stderr, "Usage: encrypt "); - return 1; + return EXIT_FAILURE; } - + // Now lets open that file FILE* file = fopen(argv[1], "r"); + if (file == NULL) { + fprintf(stderr, "No file specified\n"); + return EXIT_FAILURE; + } // Now we need the passphrase. Get it char *passphrase = malloc(256); do { printf("Enter Passphrase: "); - if ( fgets(passphrase, 255, stdin) == NULL ) { + if (fgets(passphrase, 255, stdin) == NULL) { fclose(file); fprintf(stderr, "Read error or end of file"); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } } while (strlen(passphrase) <= 0); - + // And a temporary file to hold the encrypted data char tpath[] = "SimCr.XXXXXX"; int tempfd = mkstemp(tpath); FILE* temp = fdopen(tempfd, "w"); - + // Now we encrypt! int passlen = strlen(passphrase) - 1; int c,j=0; - while ( (c=fgetc(file)) != EOF ) { + while ((c=fgetc(file)) != EOF) { if (j == passlen) { fputc(c ^ passphrase[0], temp); j=1; -- cgit v1.2.1