| plan 9 kernel history: overview | file list | diff list |
1998/0417/port/devssl.c (diff list | history)
| 1998/0327/sys/src/9/port/devssl.c:72,77 – 1998/0417/sys/src/9/port/devssl.c:72,79 (short | long | prev | next) | ||
|
Add encalgs, hashalgs files.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1996/1029 | int dshiwat; int maxdstate = 20; Dstate** dstate; | |
| 1998/0417 | char *encalgs; char *hashalgs; | |
| 1996/1029 | ||
| 1995/1213 | enum { | |
| 1998/0327/sys/src/9/port/devssl.c:81,92 – 1998/0417/sys/src/9/port/devssl.c:83,97 | ||
| 1995/1213 | enum{ | |
| 1996/1029 | Qtopdir = 1, /* top level directory */ | |
| 1998/0417 | Qprotodir, | |
| 1996/1029 | Qclonus, Qconvdir, /* directory for a conversation */ Qdata, Qctl, Qsecretin, | |
| 1998/0417 | Qsecretout, Qencalgs, Qhashalgs, | |
| 1995/1213 | }; | |
| 1996/1029 | #define TYPE(x) ((x).path & 0xf) | |
| 1998/0327/sys/src/9/port/devssl.c:117,122 – 1998/0417/sys/src/9/port/devssl.c:122,133 | ||
| 1996/1029 | q.vers = 0; switch(TYPE(c->qid)) { case Qtopdir: | |
| 1998/0417 | if(s > 0) return -1; q.path = QID(0, Qprotodir)|CHDIR; devdir(c, q, "ssl", 0, eve, 0555, dp); return 1; case Qprotodir: | |
| 1996/1029 | if(s < dshiwat) { sprint(name, "%d", s); q.path = QID(s, Qconvdir)|CHDIR; | |
| 1998/0327/sys/src/9/port/devssl.c:158,163 – 1998/0417/sys/src/9/port/devssl.c:169,182 | ||
| 1996/1029 | q.path = QID(CONV(c->qid), Qsecretout); p = "secretout"; break; | |
| 1998/0417 | case 4: q.path = QID(CONV(c->qid), Qencalgs); p = "encalgs"; break; case 5: q.path = QID(CONV(c->qid), Qhashalgs); p = "hashalgs"; break; | |
| 1996/1029 | } devdir(c, q, p, 0, nm, 0660, dp); return 1; | |
| 1998/0327/sys/src/9/port/devssl.c:165,177 – 1998/0417/sys/src/9/port/devssl.c:184,189 | ||
| 1996/1029 | return -1; } | |
| 1997/0327 |
| |
| 1995/1213 |
| |
| 1997/0618 |
| |
| 1996/1029 |
| |
| 1995/1213 |
| |
| 1997/0327 | static Chan* | |
| 1996/0531 | sslattach(void *spec) | |
| 1995/1213 | { | |
| 1998/0327/sys/src/9/port/devssl.c:219,224 – 1998/0417/sys/src/9/port/devssl.c:231,237 | ||
| 1996/1029 | default: panic("sslopen"); case Qtopdir: | |
| 1998/0417 | case Qprotodir: | |
| 1996/1029 | case Qconvdir: if(omode != OREAD) error(Eperm); | |
| 1998/0327/sys/src/9/port/devssl.c:252,257 – 1998/0417/sys/src/9/port/devssl.c:265,275 | ||
| 1996/1029 | unlock(&dslock); poperror(); break; | |
| 1998/0417 | case Qencalgs: case Qhashalgs: if(omode != OREAD) error(Eperm); break; | |
| 1996/1029 | } c->mode = openmode(omode); c->flag |= COPEN; | |
| 1998/0327/sys/src/9/port/devssl.c:534,539 – 1998/0417/sys/src/9/port/devssl.c:552,563 | ||
| 1996/1029 | case Qdata: b.b = sslbread(c, n, offset); break; | |
| 1998/0417 | case Qencalgs: return readstr(offset, a, n, encalgs); break; case Qhashalgs: return readstr(offset, a, n, hashalgs); break; | |
| 1995/1213 | } | |
| 1996/0223 | if(waserror()){ | |
| 1998/0327/sys/src/9/port/devssl.c:920,925 – 1998/0417/sys/src/9/port/devssl.c:944,989 | ||
| 1996/1029 | qunlock(&s.s->out.q); poperror(); return n; | |
| 1998/0417 | } static void sslinit(void) { struct Encalg *e; struct Hashalg *h; int n; char *cp; if((dstate = smalloc(sizeof(Dstate*) * maxdstate)) == 0) panic("sslinit"); n = 1; for(e = encrypttab; e->name != nil; e++) n += strlen(e->name) + 1; cp = encalgs = smalloc(n); for(e = encrypttab;;){ strcpy(cp, e->name); cp += strlen(e->name); e++; if(e->name == nil) break; *cp++ = ' '; } *cp = 0; n = 1; for(h = hashtab; h->name != nil; h++) n += strlen(h->name) + 1; cp = hashalgs = smalloc(n); for(h = hashtab;;){ strcpy(cp, h->name); cp += strlen(h->name); h++; if(h->name == nil) break; *cp++ = ' '; } *cp = 0; | |
| 1995/1213 | } | |
| 1997/0327 | Dev ssldevtab = { | |