1 /* 2 Encrypt data. 3 */ 4 #include "encrypt.h" 5 #include <unistd.h> 6 #include <stdlib.h> 7 #ifdef RANDOM_DEV 8 #include <sys/types.h> 9 #include <sys/stat.h> 10 #include <fcntl.h> 11 #endif 12 13 char *cryptdata(char key[256], unsigned char *data, int size) { 14 int i; 15 static char *result; 16 result=malloc(size); 17 for (i=0;i<size;i++) { 18 result[i]=key[(unsigned int) data[i]]; 19 } 20 return(result); 21 } 22 23 char *decryptdata(char key[256], char *data, int size) { 24 int i; 25 static char *result; 26 result=malloc(size); 27 for (i=0;i<size;i++) { 28 } 29 return(result); 30 } 31 32 char *generatekey(void) { 33 static char key[256]; 34 char used[256]; 35 int i,x; 36 #ifdef RANDOM_DEV 37 unsigned char buff[1]; 38 int fd; 39 fd=open(RANDOM_DEV, O_RDONLY); 40 #else 41 srand(getpid()+sizeof(generatekey)) 42 #endif 43 for (i=0;i<256;i++) used[i]=0; 44 for (i=0;i<256;i++) { 45 #ifdef RANDOM_DEV 46 read(fd, buff, 1); 47 x=buff[0]; 48 #else 49 x=rand()%255; 50 #endif 51 if (used[x]==0) { key[i]=x; used[x]=1; } else { i--; } 52 } 53 #ifdef RANDOM_DEV 54 close(fd); 55 #endif 56 return(key); 57 } |