Changeset View
Changeset View
Standalone View
Standalone View
head/sys/crypto/des/des_ecb.c
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | #endif | ||||
size="int"; | size="int"; | ||||
else | else | ||||
size="long"; | size="long"; | ||||
sprintf(buf,"des(%s,%s,%s,%s)",ptr,risc,unroll,size); | sprintf(buf,"des(%s,%s,%s,%s)",ptr,risc,unroll,size); | ||||
init=0; | init=0; | ||||
} | } | ||||
return(buf); | return(buf); | ||||
} | } | ||||
void des_ecb_encrypt(des_cblock *input, des_cblock *output, | void des_ecb_encrypt(unsigned char *input, unsigned char *output, | ||||
des_key_schedule ks, int enc) | des_key_schedule ks, int enc) | ||||
{ | { | ||||
register DES_LONG l; | register DES_LONG l; | ||||
DES_LONG ll[2]; | DES_LONG ll[2]; | ||||
const unsigned char *in=&(*input)[0]; | const unsigned char *in = input; | ||||
unsigned char *out = &(*output)[0]; | unsigned char *out = output; | ||||
c2l(in,l); ll[0]=l; | c2l(in,l); ll[0]=l; | ||||
c2l(in,l); ll[1]=l; | c2l(in,l); ll[1]=l; | ||||
des_encrypt1(ll,ks,enc); | des_encrypt1(ll,ks,enc); | ||||
l=ll[0]; l2c(l,out); | l=ll[0]; l2c(l,out); | ||||
l=ll[1]; l2c(l,out); | l=ll[1]; l2c(l,out); | ||||
l=ll[0]=ll[1]=0; | l=ll[0]=ll[1]=0; | ||||
} | } | ||||
void des_ecb3_encrypt(des_cblock *input, des_cblock *output, | void des_ecb3_encrypt(unsigned char *input, unsigned char *output, | ||||
des_key_schedule ks1, des_key_schedule ks2, des_key_schedule ks3, | des_key_schedule ks1, des_key_schedule ks2, des_key_schedule ks3, | ||||
int enc) | int enc) | ||||
{ | { | ||||
register DES_LONG l0,l1; | register DES_LONG l0,l1; | ||||
DES_LONG ll[2]; | DES_LONG ll[2]; | ||||
const unsigned char *in = &(*input)[0]; | const unsigned char *in = input; | ||||
unsigned char *out = &(*output)[0]; | unsigned char *out = output; | ||||
c2l(in,l0); | c2l(in,l0); | ||||
c2l(in,l1); | c2l(in,l1); | ||||
ll[0]=l0; | ll[0]=l0; | ||||
ll[1]=l1; | ll[1]=l1; | ||||
if (enc) | if (enc) | ||||
des_encrypt3(ll,ks1,ks2,ks3); | des_encrypt3(ll,ks1,ks2,ks3); | ||||
else | else | ||||
des_decrypt3(ll,ks1,ks2,ks3); | des_decrypt3(ll,ks1,ks2,ks3); | ||||
l0=ll[0]; | l0=ll[0]; | ||||
l1=ll[1]; | l1=ll[1]; | ||||
l2c(l0,out); | l2c(l0,out); | ||||
l2c(l1,out); | l2c(l1,out); | ||||
} | } |