diff options
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | decrypt.c | 43 | ||||
-rw-r--r-- | encrypt.c | 33 |
3 files changed, 27 insertions, 60 deletions
@@ -1,22 +1,13 @@ CFLAGS=-Wall -Wextra -O3 -all: - make encrypt - make decrypt - encrypt: encrypt.c - gcc ${CFLAGS} -o $@ $^ -decrypt: decrypt.c - gcc ${CFLAGS} -o $@ $^ + gcc ${CFLAGS} ${EFLAGS} -o $@ $^ install: cp encrypt /usr/local/bin/encrypt - cp decrypt /usr/local/bin/decrypt uninstall: rm /usr/local/bin/sc-encrypt - rm /usr/local/bin/sc-decrypt clean: rm encrypt - rm decrypt diff --git a/decrypt.c b/decrypt.c deleted file mode 100644 index b068bb9..0000000 --- a/decrypt.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -int main(int argc, char** argv) { - /* We need a file to encrypt */ - if(argc==1) { - fprintf(stderr, "Arguments fool!"); - return 1; - } - /* Now lets open that file */ - FILE* file = fopen(argv[1], "r"); - /* And a temporary file to hold the encrypted data */ - char tpath[255] = "/tmp/"; - strcat(tpath, argv[1]); - FILE* temp = fopen(tpath, "w"); - /* Now we need the passphrase. Get it */ - printf("Enter Passphrase:\n"); - char passphrase[255]; - fgets(passphrase, 255, stdin); - int passlen = strlen(passphrase) - 1; - int c,j=0; - /* Now we encrypt! */ - while((c=fgetc(file)) != EOF) { - if(j==passlen) { - fputc(c-passphrase[0], temp); - j=1; - } else { - fputc(c-passphrase[j], temp); - j++; - } - } - /* Close the files */ - fflush(temp); - fclose(temp); - fclose(file); - /* Move the file back */ - char cmd[255]; - sprintf(cmd, "%s %s %s", "/bin/mv", tpath, argv[1]); - system(cmd); - return 0; -} @@ -3,7 +3,18 @@ #include <string.h> #include <unistd.h> +void sanitise(char *x) { + char *curpos = x; + while (*x != '\0') { + *curpos = *x; + x++; + if (*curpos != '/') curpos++; + } + *curpos = '\0'; +} + int main(int argc, char** argv) { + char * junk; /* We need a file to encrypt */ if(argc==1) { fprintf(stderr, "Arguments fool!"); @@ -13,21 +24,26 @@ int main(int argc, char** argv) { FILE* file = fopen(argv[1], "r"); /* And a temporary file to hold the encrypted data */ char tpath[255] = "/tmp/"; + sanitise(argv[1]); strcat(tpath, argv[1]); FILE* temp = fopen(tpath, "w"); - /* Now we need the passphrase. Get it */ - printf("Enter Passphrase:\n"); + char passphrase[255]; - fgets(passphrase, 255, stdin); + do { + /* Now we need the passphrase. Get it */ + printf("Enter Passphrase:\n"); + junk = fgets(passphrase, 255, stdin); + } while (strlen(passphrase) <= 0); + int passlen = strlen(passphrase) - 1; int c,j=0; /* Now we encrypt! */ while((c=fgetc(file)) != EOF) { if(j==passlen) { - fputc(c+passphrase[0], temp); + fputc(c ^ passphrase[0], temp); j=1; } else { - fputc(c+passphrase[j], temp); + fputc(c ^ passphrase[j], temp); j++; } } @@ -38,7 +54,10 @@ int main(int argc, char** argv) { /* Move the file back */ char cmd[255]; sprintf(cmd, "%s %s %s", "/bin/mv", tpath, argv[1]); - system(cmd); - return 0; + if (system(cmd) != 0) { + fprintf(stderr, "Your encrypted file is located in %s.", tpath); + return EXIT_FAILURE; + } + return EXIT_SUCCESS; } |