xref: /plan9/sys/src/cmd/unix/drawterm/libsec/desmodes.c (revision 9b943567965ba040fd275927fbe088656eb8ce4f)
1*9b943567SDavid du Colombier #include "../lib9.h"
2*9b943567SDavid du Colombier #include "../libsec/libsec.h"
3*9b943567SDavid du Colombier 
4*9b943567SDavid du Colombier /*
5*9b943567SDavid du Colombier  *  these routines use the 64bit format for
6*9b943567SDavid du Colombier  *  DES keys.
7*9b943567SDavid du Colombier  */
8*9b943567SDavid du Colombier 
9*9b943567SDavid du Colombier void
10*9b943567SDavid du Colombier setupDESstate(DESstate *s, uchar key[8], uchar *ivec)
11*9b943567SDavid du Colombier {
12*9b943567SDavid du Colombier 	memset(s, 0, sizeof(*s));
13*9b943567SDavid du Colombier 	memmove(s->key, key, sizeof(s->key));
14*9b943567SDavid du Colombier 	des_key_setup(key, s->expanded);
15*9b943567SDavid du Colombier 	if(ivec)
16*9b943567SDavid du Colombier 		memmove(s->ivec, ivec, 8);
17*9b943567SDavid du Colombier 	s->setup = 0xdeadbeef;
18*9b943567SDavid du Colombier }
19*9b943567SDavid du Colombier 
20*9b943567SDavid du Colombier void
21*9b943567SDavid du Colombier setupDES3state(DES3state *s, uchar key[3][8], uchar *ivec)
22*9b943567SDavid du Colombier {
23*9b943567SDavid du Colombier 	memset(s, 0, sizeof(*s));
24*9b943567SDavid du Colombier 	memmove(s->key, key, sizeof(s->key));
25*9b943567SDavid du Colombier 	des_key_setup(key[0], s->expanded[0]);
26*9b943567SDavid du Colombier 	des_key_setup(key[1], s->expanded[1]);
27*9b943567SDavid du Colombier 	des_key_setup(key[2], s->expanded[2]);
28*9b943567SDavid du Colombier 	if(ivec)
29*9b943567SDavid du Colombier 		memmove(s->ivec, ivec, 8);
30*9b943567SDavid du Colombier 	s->setup = 0xdeadbeef;
31*9b943567SDavid du Colombier }
32