/*
	Encrypt data.
*/
#include "encrypt.h"
#include <unistd.h>
#include <stdlib.h>
#ifdef RANDOM_DEV
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#endif

char *cryptdata(char key[256], unsigned char *data, int size) {
	int i;
	static char *result;
        result=malloc(size);
	for (i=0;i<size;i++) {
		result[i]=key[(unsigned int) data[i]];
	}
	return(result);
}

char *decryptdata(char key[256], char *data, int size) {
	int i;
	static char *result;
	result=malloc(size);
	for (i=0;i<size;i++) {
	}
	return(result);
}

char *generatekey(void) {
	static char key[256];
	char used[256];
	int i,x;
#ifdef RANDOM_DEV
	unsigned char buff[1];
	int fd;
	fd=open(RANDOM_DEV, O_RDONLY);
#else
	srand(getpid()+sizeof(generatekey))
#endif
	for (i=0;i<256;i++) used[i]=0;
	for (i=0;i<256;i++) {
#ifdef RANDOM_DEV
		read(fd, buff, 1);
		x=buff[0];
#else
		x=rand()%255;
#endif
		if (used[x]==0) { key[i]=x; used[x]=1; } else { i--; }
	}
#ifdef RANDOM_DEV
	close(fd);
#endif
	return(key);
}
