diff options
Diffstat (limited to 'eBones/des/ecb_enc.c')
| -rw-r--r-- | eBones/des/ecb_enc.c | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/eBones/des/ecb_enc.c b/eBones/des/ecb_enc.c deleted file mode 100644 index e410eb88b31d..000000000000 --- a/eBones/des/ecb_enc.c +++ /dev/null @@ -1,123 +0,0 @@ -/* ecb_enc.c */ -/* Copyright (C) 1993 Eric Young - see README for more details */ - -/*- - * $Id: ecb_enc.c,v 1.2 1994/07/19 19:21:53 g89r4222 Exp $ - */ - -#include "des_locl.h" -#include "spr.h" - -int des_ecb_encrypt(input,output,ks,encrypt) -des_cblock *input; -des_cblock *output; -des_key_schedule ks; -int encrypt; - { - register unsigned long l0,l1; - register unsigned char *in,*out; - unsigned long ll[2]; - - in=(unsigned char *)input; - out=(unsigned char *)output; - c2l(in,l0); - c2l(in,l1); - ll[0]=l0; - ll[1]=l1; - des_encrypt(ll,ll,ks,encrypt); - l0=ll[0]; - l1=ll[1]; - l2c(l0,out); - l2c(l1,out); - l0=l1=ll[0]=ll[1]=0; - return(0); - } - -int des_encrypt(input,output,ks,encrypt) -unsigned long *input; -unsigned long *output; -des_key_schedule ks; -int encrypt; - { - register unsigned long l,r,t,u; -#ifdef ALT_ECB - register unsigned char *des_SP=(unsigned char *)des_SPtrans; -#endif -#ifdef MSDOS - union fudge { - unsigned long l; - unsigned short s[2]; - unsigned char c[4]; - } U,T; -#endif - register int i; - register unsigned long *s; - - l=input[0]; - r=input[1]; - - /* do IP */ - PERM_OP(r,l,t, 4,0x0f0f0f0f); - PERM_OP(l,r,t,16,0x0000ffff); - PERM_OP(r,l,t, 2,0x33333333); - PERM_OP(l,r,t, 8,0x00ff00ff); - PERM_OP(r,l,t, 1,0x55555555); - /* r and l are reversed - remember that :-) - fix - * it in the next step */ - - /* Things have been modified so that the initial rotate is - * done outside the loop. This required the - * des_SPtrans values in sp.h to be rotated 1 bit to the right. - * One perl script later and things have a 5% speed up on a sparc2. - * Thanks to Richard Outerbridge <71755.204@CompuServe.COM> - * for pointing this out. */ - t=(r<<1)|(r>>31); - r=(l<<1)|(l>>31); - l=t; - - /* clear the top bits on machines with 8byte longs */ - l&=0xffffffff; - r&=0xffffffff; - - s=(unsigned long *)ks; - /* I don't know if it is worth the effort of loop unrolling the - * inner loop */ - if (encrypt) - { - for (i=0; i<32; i+=4) - { - D_ENCRYPT(l,r,i+0); /* 1 */ - D_ENCRYPT(r,l,i+2); /* 2 */ - } - } - else - { - for (i=30; i>0; i-=4) - { - D_ENCRYPT(l,r,i-0); /* 16 */ - D_ENCRYPT(r,l,i-2); /* 15 */ - } - } - l=(l>>1)|(l<<31); - r=(r>>1)|(r<<31); - /* clear the top bits on machines with 8byte longs */ - l&=0xffffffff; - r&=0xffffffff; - - /* swap l and r - * we will not do the swap so just remember they are - * reversed for the rest of the subroutine - * luckily FP fixes this problem :-) */ - - PERM_OP(r,l,t, 1,0x55555555); - PERM_OP(l,r,t, 8,0x00ff00ff); - PERM_OP(r,l,t, 2,0x33333333); - PERM_OP(l,r,t,16,0x0000ffff); - PERM_OP(r,l,t, 4,0x0f0f0f0f); - - output[0]=l; - output[1]=r; - l=r=t=u=0; - return(0); - } - |
