-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcrypto.c
81 lines (61 loc) · 1.53 KB
/
crypto.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "crypto.h"
#define CRYPTO_DIR "./crypto/"
#define MAX_OFFSET 20
#define MAX_LINE 256
#define RES_OK 0
#define RES_ERROR 1
#define RES_MEM_ERROR -1
int encryptMsg(char *msg, char offset) {
int i, len = 0;
len = strlen(msg);
for (i = 0; i < len; i++)
msg[i] += offset;
return RES_OK;
}
int decryptMsg(char *msg, char offset) {
int i, len = 0;
len = strlen(msg);
for (i = 0; i < len; i++)
msg[i] -= offset;
return RES_OK;
}
char genoffset(char *domain) {
FILE *crypto;
char *fpath = NULL;
char offset = 0;
fpath = malloc(sizeof(char) * (strlen(domain) + strlen(CRYPTO_DIR))+1);
if (!fpath) return 0;
strcpy(fpath, CRYPTO_DIR);
strcat(fpath, domain);
crypto = fopen(fpath, "w");
if (!crypto) return 0;
srand(time(NULL));
offset = (rand() % MAX_OFFSET) + 1;
fprintf(crypto, "%c", offset);
fclose(crypto);
free(fpath);
return offset;
}
int getoffset(char *domain,char* offset) {
FILE *crypto;
char *fpath = NULL;
char line[5];
fpath = malloc(sizeof(char)*(strlen(domain)+strlen(CRYPTO_DIR))+1);
if (!fpath) return RES_MEM_ERROR;
strcpy(fpath, CRYPTO_DIR);
strcat(fpath, domain);
crypto = fopen(fpath, "r");
if (!crypto) return RES_ERROR;
if (!feof(crypto)){
if (fgets(line, 5, crypto)) {
strcpy(offset,line);
return RES_OK;
}
}
offset = '\0';
return RES_ERROR;
}