diff options
Diffstat (limited to 'encrypt.c')
-rw-r--r-- | encrypt.c | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -3,36 +3,40 @@ #include <string.h> int main(int argc, char** argv) { - + // We need a file to encrypt - if(argc==1) { + if (argc != 2) { fprintf(stderr, "Usage: encrypt <file>"); - 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; |