|
|
1.1 root 1: /* GENETEXT.C */
2:
3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
4:
5: /* Creates the file ETEXT.C which has the encrypted text strings for use in */
6: /* Synchronet */
7:
8: #include <stdio.h>
9:
10: void cvtusc(char *str)
11: {
12: int i;
13:
14: for(i=0;str[i];i++)
15: if(str[i]=='_')
16: str[i]=' ';
17: }
18:
19: void main()
20: {
21: unsigned char str[129],bits,len;
22: unsigned int i,j;
23: unsigned long l,m;
24: FILE *in,*cout,*hout;
25:
26: if((in=fopen("ETEXT.DAT","rb"))==NULL) {
27: printf("can't open ETEXT.DAT\n");
28: return; }
29:
30: if((cout=fopen("ETEXT.C","wb"))==NULL) {
31: printf("can't create ETEXT.C\n");
32: return; }
33:
34: if((hout=fopen("ETEXT.H","wb"))==NULL) {
35: printf("can't create ETEXT.H\n");
36: return; }
37:
38: fprintf(cout,"/* ETEXT.C */\r\n\r\n#include \"etext.h\"\r\n\r\n");
39: fprintf(hout,"/* ETEXT.H */\r\n\r\n");
40: while(!feof(in)) {
41: if(!fgets(str,127,in))
42: break;
43: str[strlen(str)-3]=0; /* chop off :crlf */
44: if(!str[0])
45: break;
46: fprintf(hout,"extern unsigned long %s[];\r\n",str);
47: fprintf(cout,"unsigned long %s[]={ ",str);
48: if(!fgets(str,127,in))
49: break;
50: str[strlen(str)-2]=0; /* chop off crlf */
51: if(!str[0])
52: break;
53: cvtusc(str);
54: len=strlen(str);
55: l=len^0x49;
56: bits=7;
57: for(i=0,j=1;i<len;i++) {
58: m=(unsigned long)(str[i]^(i^0x2c));
59: l|=(m<<bits);
60: bits+=7;
61: if(bits>=32) {
62: fprintf(cout,"%luUL,",l);
63: j++;
64: l=0UL;
65: bits-=32;
66: if(bits)
67: l=(unsigned long)(str[i]^(i^0x2c))>>(7-bits); } }
68: fprintf(cout,"%luUL };\r\n",l); }
69: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.