1*8ccd4a63SDavid du Colombier #include "os.h"
2*8ccd4a63SDavid du Colombier #include <libsec.h>
39b943567SDavid du Colombier
49b943567SDavid du Colombier /*
59b943567SDavid du Colombier * these routines use the 64bit format for
69b943567SDavid du Colombier * DES keys.
79b943567SDavid du Colombier */
89b943567SDavid du Colombier
99b943567SDavid du Colombier void
setupDESstate(DESstate * s,uchar key[8],uchar * ivec)109b943567SDavid du Colombier setupDESstate(DESstate *s, uchar key[8], uchar *ivec)
119b943567SDavid du Colombier {
129b943567SDavid du Colombier memset(s, 0, sizeof(*s));
139b943567SDavid du Colombier memmove(s->key, key, sizeof(s->key));
149b943567SDavid du Colombier des_key_setup(key, s->expanded);
159b943567SDavid du Colombier if(ivec)
169b943567SDavid du Colombier memmove(s->ivec, ivec, 8);
179b943567SDavid du Colombier s->setup = 0xdeadbeef;
189b943567SDavid du Colombier }
199b943567SDavid du Colombier
209b943567SDavid du Colombier void
setupDES3state(DES3state * s,uchar key[3][8],uchar * ivec)219b943567SDavid du Colombier setupDES3state(DES3state *s, uchar key[3][8], uchar *ivec)
229b943567SDavid du Colombier {
239b943567SDavid du Colombier memset(s, 0, sizeof(*s));
249b943567SDavid du Colombier memmove(s->key, key, sizeof(s->key));
259b943567SDavid du Colombier des_key_setup(key[0], s->expanded[0]);
269b943567SDavid du Colombier des_key_setup(key[1], s->expanded[1]);
279b943567SDavid du Colombier des_key_setup(key[2], s->expanded[2]);
289b943567SDavid du Colombier if(ivec)
299b943567SDavid du Colombier memmove(s->ivec, ivec, 8);
309b943567SDavid du Colombier s->setup = 0xdeadbeef;
319b943567SDavid du Colombier }
32