plan 9 kernel history: overview | file list | diff list

2002/0109/port/devssl.c (diff list | history)

2002/0109/sys/src/9/port/devssl.c:1,52002/0306/sys/src/9/port/devssl.c:1,5 (short | long | prev | next)
1995/1213    
/* 
1996/0531    
 *  devssl - secure sockets layer emulation 
2002/0306    
 *  devssl - secure sockets layer 
1995/1213    
 */ 
1997/0618    
#include	"u.h" 
#include	"../port/lib.h" 
2002/0109/sys/src/9/port/devssl.c:575,5802002/0306/sys/src/9/port/devssl.c:575,581
1995/1217    
			pad = 0; 
2001/0825    
			toconsume = 2; 
1995/1217    
		} else { 
2002/0306    
			s.s->unprocessed = pullupblock(s.s->unprocessed, 3); 
2001/0825    
			len = ((p[0] & 0x3f)<<8) | p[1]; 
			pad = p[2]; 
1996/1029    
			if(pad > len){ 
2002/0109/sys/src/9/port/devssl.c:583,5892002/0306/sys/src/9/port/devssl.c:584,590
1996/1029    
			} 
2001/0825    
			toconsume = 3; 
1995/1217    
		} 
2001/0825    
		ensure(s.s, &s.s->unprocessed, toconsume+len+pad); 
2002/0306    
		ensure(s.s, &s.s->unprocessed, toconsume+len); 
1995/1217    
 
2001/0825    
		/* 
		 * Now we have a full SSL packet in the unprocessed list. 
2002/0109/sys/src/9/port/devssl.c:602,6102002/0306/sys/src/9/port/devssl.c:603,611
2001/0825    
		consume(&s.s->unprocessed, consumed, toconsume); 
 
2000/0913    
		/* grab the next message and decode/decrypt it */ 
2001/0825    
		b = qtake(&s.s->unprocessed, len+pad, 0); 
2002/0306    
		b = qtake(&s.s->unprocessed, len, 0); 
2000/0913    
 
2001/0825    
		if(blocklen(b) != len+pad) 
2002/0306    
		if(blocklen(b) != len) 
2001/0825    
			print("devssl: sslbread got wrong count %d != %d", blocklen(b), len); 
 
1996/1029    
		if(waserror()){ 
2002/0109/sys/src/9/port/devssl.c:1167,11802002/0306/sys/src/9/port/devssl.c:1168,1181
1999/0804    
	} else if(strcmp(buf, "secretin") == 0 && p != 0) { 
		m = (strlen(p)*3)/2; 
		x = smalloc(m); 
		n = dec64(x, m, p, strlen(p)); 
		setsecret(&s.s->in, x, n); 
2002/0306    
		t = dec64(x, m, p, strlen(p)); 
		setsecret(&s.s->in, x, t); 
1999/0804    
		free(x); 
	} else if(strcmp(buf, "secretout") == 0 && p != 0) { 
		m = (strlen(p)*3)/2 + 1; 
		x = smalloc(m); 
		n = dec64(x, m, p, strlen(p)); 
		setsecret(&s.s->out, x, n); 
2002/0306    
		t = dec64(x, m, p, strlen(p)); 
		setsecret(&s.s->out, x, t); 
1999/0804    
		free(x); 
1996/1029    
	} else 
		error(Ebadarg); 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)