47 lines · 836 B · C
RawDownload
#include "ssh.h" struct CipherState{	DESstate enc3des[3];	DESstate dec3des[3];}; static CipherState*init3des(Conn *c, int){	int i;	CipherState *cs; 	cs = emalloc(sizeof(CipherState));	for(i=0; i<3; i++){		setupDESstate(&cs->enc3des[i], c->sesskey+8*i, nil);		setupDESstate(&cs->dec3des[i], c->sesskey+8*i, nil);	}	return cs;} static voidencrypt3des(CipherState *cs, uchar *buf, int nbuf){	desCBCencrypt(buf, nbuf, &cs->enc3des[0]);	desCBCdecrypt(buf, nbuf, &cs->enc3des[1]);	desCBCencrypt(buf, nbuf, &cs->enc3des[2]);} static voiddecrypt3des(CipherState *cs, uchar *buf, int nbuf){	desCBCdecrypt(buf, nbuf, &cs->dec3des[2]);	desCBCencrypt(buf, nbuf, &cs->dec3des[1]);	desCBCdecrypt(buf, nbuf, &cs->dec3des[0]);} Cipher cipher3des ={	SSH_CIPHER_3DES,	"3des",	init3des,	encrypt3des,	decrypt3des,};