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

1999/0804/port/devssl.c (diff list | history)

1999/0527/sys/src/9/port/devssl.c:905,9111999/0804/sys/src/9/port/devssl.c:905,912 (short | long | prev | next)
1996/1029    
	volatile struct { Dstate *s; } s; 
1996/0531    
	volatile struct { Block *b; } b; 
1996/1029    
	int m, t; 
1997/0618    
	char *p, *np, *e, buf[32]; 
1999/0804    
	char *p, *np, *e, buf[128]; 
	uchar *x; 
1998/0319    
	ulong offset = off; 
1996/0223    
 
1996/1029    
	s.s = dstate[CONV(c->qid)]; 
1999/0527/sys/src/9/port/devssl.c:955,9711999/0804/sys/src/9/port/devssl.c:956,970
1996/1029    
	case Qsecretin: 
		setsecret(&s.s->in, a, n); 
		goto out; 
		return n; 
	case Qsecretout: 
		setsecret(&s.s->out, a, n); 
		goto out; 
		return n; 
	case Qctl: 
		break; 
1996/0223    
	} 
 
1996/1029    
	if(n >= sizeof(buf)) 
		error(Ebadarg); 
1999/0804    
		error("arg too long"); 
1996/1029    
	strncpy(buf, a, n); 
	buf[n] = 0; 
	p = strchr(buf, '\n'); 
1999/0527/sys/src/9/port/devssl.c:1016,10221999/0804/sys/src/9/port/devssl.c:1015,1021
1997/0618    
 
			if(parsehashalg(p, s.s) < 0) 
			if(parseencryptalg(p, s.s) < 0) 
1996/1029    
				error(Ebadarg); 
1999/0804    
				error("bad algorithm"); 
1997/0618    
 
			if(np == 0) 
				break; 
1999/0527/sys/src/9/port/devssl.c:1024,10301999/0804/sys/src/9/port/devssl.c:1023,1029
1997/0618    
		} 
 
		if(s.s->hf == 0 && s.s->encryptalg == Noencryption) 
1996/1029    
			error(Ebadarg); 
1999/0804    
			error("bad algorithm"); 
1995/1213    
 
1996/1029    
		if(s.s->blocklen != 1){ 
			s.s->max = (1<<15) - s.s->diglen - 1; 
1999/0527/sys/src/9/port/devssl.c:1033,10381999/0804/sys/src/9/port/devssl.c:1032,1049
1996/1029    
			s.s->maxpad -= s.s->maxpad % s.s->blocklen; 
		} else 
			s.s->maxpad = s.s->max = (1<<15) - s.s->diglen - 1; 
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); 
		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); 
		free(x); 
1996/1029    
	} else 
		error(Ebadarg); 
1995/1213    
 


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