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