static char *sccsid
= "@(#)crypt.c 4.3 (Berkeley) 1/25/85";
* A one-rotor machine designed along the lines of Enigma
* but considerably trivialized.
int ic
, i
, k
, temp
, pf
[2];
execl("/usr/lib/makekey", "-", 0);
execl("/lib/makekey", "-", 0);
while ((wpid
= wait((int *)NULL
)) != -1 && wpid
!= pid
)
if (read(pf
[0], buf
, 13) != 13) {
fprintf(stderr
, "crypt: cannot generate key\n");
seed
= 5*seed
+ buf
[i
%13];
ic
= (random
&MASK
)%(k
+1);
while(t3
[ic
]!=0) ic
= (ic
+1) % k
;
register i
, n1
, n2
, nr1
, nr2
;
if (argc
> 1 && argv
[1][0] == '-' && argv
[1][1] == 's') {
setup(getpass("Enter key:"));
while((i
=getchar()) >=0) {
i
= t2
[(t3
[(t1
[(i
+nr1
)&MASK
]+nr2
)&MASK
]-nr2
)&MASK
]-nr1
;
seed
= 5*seed
+ buf
[i
%13];
ic
= (random
&MASK
)%(k
+1);