factotum: remove legacy wep protocol
This commit is contained in:
parent
4edc761024
commit
1d7bb80793
4 changed files with 1 additions and 134 deletions
|
@ -225,8 +225,6 @@ extern Proto chap, mschap, mschapv2, mschap2; /* chap.c */
|
|||
extern Proto p9cr, vnc; /* p9cr.c */
|
||||
extern Proto pass; /* pass.c */
|
||||
extern Proto rsa; /* rsa.c */
|
||||
extern Proto wep; /* wep.c */
|
||||
/* extern Proto srs; /* srs.c */
|
||||
extern Proto httpdigest; /* httpdigest.c */
|
||||
extern Proto ecdsa; /* ecdsa.c */
|
||||
extern Proto wpapsk; /* wpapsk.c */
|
||||
|
|
|
@ -17,7 +17,7 @@ extern Srv fs;
|
|||
static void notifyf(void*, char*);
|
||||
static void private(void);
|
||||
|
||||
char Easproto[] = "auth server protocol botch";
|
||||
char Easproto[] = "auth server protocol botch";
|
||||
char Ebadarg[] = "invalid argument";
|
||||
char Ebadkey[] = "bad key";
|
||||
char Enegotiation[] = "negotiation failed, no common protocols or keys";
|
||||
|
@ -38,10 +38,8 @@ prototab[] =
|
|||
&p9sk1,
|
||||
&dp9ik,
|
||||
&pass,
|
||||
/* &srs, */
|
||||
&rsa,
|
||||
&vnc,
|
||||
&wep,
|
||||
&ecdsa,
|
||||
&wpapsk,
|
||||
nil,
|
||||
|
|
|
@ -12,7 +12,6 @@ PROTO=\
|
|||
p9sk1.$O\
|
||||
pass.$O\
|
||||
rsa.$O\
|
||||
wep.$O\
|
||||
ecdsa.$O\
|
||||
wpapsk.$O\
|
||||
|
||||
|
|
|
@ -1,128 +0,0 @@
|
|||
/*
|
||||
* The caller supplies the device, we do the flavoring. There
|
||||
* are no phases, everything happens in the init routine.
|
||||
*/
|
||||
|
||||
#include "dat.h"
|
||||
|
||||
typedef struct State State;
|
||||
struct State
|
||||
{
|
||||
Key *key;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
HavePass,
|
||||
};
|
||||
|
||||
static int
|
||||
wepinit(Proto*, Fsstate *fss)
|
||||
{
|
||||
int ret;
|
||||
Key *k;
|
||||
Keyinfo ki;
|
||||
State *s;
|
||||
|
||||
/* find a key with at least one password */
|
||||
mkkeyinfo(&ki, fss, nil);
|
||||
ret = findkey(&k, &ki, "!key1?");
|
||||
if(ret != RpcOk)
|
||||
ret = findkey(&k, &ki, "!key2?");
|
||||
if(ret != RpcOk)
|
||||
ret = findkey(&k, &ki, "!key3?");
|
||||
if(ret != RpcOk)
|
||||
return ret;
|
||||
|
||||
setattrs(fss->attr, k->attr);
|
||||
s = emalloc(sizeof(*s));
|
||||
s->key = k;
|
||||
fss->ps = s;
|
||||
fss->phase = HavePass;
|
||||
|
||||
return RpcOk;
|
||||
}
|
||||
|
||||
static void
|
||||
wepclose(Fsstate *fss)
|
||||
{
|
||||
State *s;
|
||||
|
||||
s = fss->ps;
|
||||
if(s->key)
|
||||
closekey(s->key);
|
||||
free(s);
|
||||
}
|
||||
|
||||
static int
|
||||
wepread(Fsstate *fss, void*, uint*)
|
||||
{
|
||||
return phaseerror(fss, "read");
|
||||
}
|
||||
|
||||
static int
|
||||
wepwrite(Fsstate *fss, void *va, uint n)
|
||||
{
|
||||
char *data = va;
|
||||
State *s;
|
||||
char dev[64];
|
||||
int fd, cfd;
|
||||
int rv;
|
||||
char *p;
|
||||
|
||||
/* get the device */
|
||||
if(n > sizeof(dev)-5){
|
||||
werrstr("device too long");
|
||||
return RpcErrstr;
|
||||
}
|
||||
memmove(dev, data, n);
|
||||
dev[n] = 0;
|
||||
s = fss->ps;
|
||||
|
||||
/* legal? */
|
||||
if(dev[0] != '#' || dev[1] != 'l'){
|
||||
werrstr("%s not an ether device", dev);
|
||||
return RpcErrstr;
|
||||
}
|
||||
strcat(dev, "!0");
|
||||
fd = dial(dev, 0, 0, &cfd);
|
||||
if(fd < 0)
|
||||
return RpcErrstr;
|
||||
|
||||
/* flavor it with passwords, essid, and turn on wep */
|
||||
rv = RpcErrstr;
|
||||
p = _strfindattr(s->key->privattr, "!key1");
|
||||
if(p != nil)
|
||||
if(fprint(cfd, "key1 %s", p) < 0)
|
||||
goto out;
|
||||
p = _strfindattr(s->key->privattr, "!key2");
|
||||
if(p != nil)
|
||||
if(fprint(cfd, "key2 %s", p) < 0)
|
||||
goto out;
|
||||
p = _strfindattr(s->key->privattr, "!key3");
|
||||
if(p != nil)
|
||||
if(fprint(cfd, "key3 %s", p) < 0)
|
||||
goto out;
|
||||
p = _strfindattr(fss->attr, "essid");
|
||||
if(p != nil)
|
||||
if(fprint(cfd, "essid %s", p) < 0)
|
||||
goto out;
|
||||
if(fprint(cfd, "crypt on") < 0)
|
||||
goto out;
|
||||
rv = RpcOk;
|
||||
out:
|
||||
close(fd);
|
||||
close(cfd);
|
||||
return rv;
|
||||
}
|
||||
|
||||
Proto wep =
|
||||
{
|
||||
.name= "wep",
|
||||
.init= wepinit,
|
||||
.write= wepwrite,
|
||||
.read= wepread,
|
||||
.close= wepclose,
|
||||
.addkey= replacekey,
|
||||
.keyprompt= "!key1? !key2? !key3? essid?",
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue