From de8f24ea083384bb66b32ec105dc4743c5663cdf Mon Sep 17 00:00:00 2001 From: beck <> Date: Wed, 29 Sep 1999 04:37:45 +0000 Subject: OpenSSL 0.9.4 merge --- src/lib/libcrypto/des/des.c | 121 ++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 77 deletions(-) (limited to 'src/lib/libcrypto/des/des.c') diff --git a/src/lib/libcrypto/des/des.c b/src/lib/libcrypto/des/des.c index c1e5005474..b2d7f0da78 100644 --- a/src/lib/libcrypto/des/des.c +++ b/src/lib/libcrypto/des/des.c @@ -59,10 +59,18 @@ #include #include #ifndef MSDOS +#ifndef VMS +#include +#include OPENSSL_UNISTD +#else /* VMS */ +#ifdef __DECC #include +#else /* not __DECC */ +#include +#endif /* __DECC */ +#endif /* VMS */ #else #include -#define RAND #endif #include @@ -77,21 +85,13 @@ #endif #include #endif -#if defined(NOCONST) -#define const -#endif -#include "des.h" +#include +#include #if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS) #include #endif -#ifdef RAND -#define random rand -#define srandom(s) srand(s) -#endif - -#ifndef NOPROTO void usage(void); void doencryption(void); int uufwrite(unsigned char *data, int size, unsigned int num, FILE *fp); @@ -102,17 +102,6 @@ int uudecode(unsigned char *in,int num,unsigned char *out); void des_3cbc_encrypt(des_cblock *input,des_cblock *output,long length, des_key_schedule sk1,des_key_schedule sk2, des_cblock *ivec1,des_cblock *ivec2,int enc); -#else -void usage(); -void doencryption(); -int uufwrite(); -void uufwriteEnd(); -int uufread(); -int uuencode(); -int uudecode(); -void des_3cbc_encrypt(); -#endif - #ifdef VMS #define EXIT(a) exit(a&0x10000000L) #else @@ -138,9 +127,7 @@ char cksumname[200]=""; int vflag,cflag,eflag,dflag,kflag,bflag,fflag,sflag,uflag,flag3,hflag,error; -int main(argc, argv) -int argc; -char **argv; +int main(int argc, char **argv) { int i; struct stat ins,outs; @@ -331,7 +318,7 @@ char **argv; EXIT(0); } -void usage() +void usage(void) { char **u; static const char *Usage[]={ @@ -357,7 +344,7 @@ void usage() "-3 : encrypt using tripple DES encryption. This uses 2 keys", " generated from the input key. If the input key is less", " than 8 characters long, this is equivelent to normal", -" encryption. Default is tripple cbc, -b makes it tripple ecb.", +" encryption. Default is triple cbc, -b makes it triple ecb.", NULL }; for (u=(char **)Usage; *u; u++) @@ -369,17 +356,15 @@ NULL EXIT(1); } -void doencryption() +void doencryption(void) { #ifdef _LIBC - extern int srandom(); - extern int random(); extern unsigned long time(); #endif register int i; des_key_schedule ks,ks2; - unsigned char iv[8],iv2[8]; + des_cblock iv,iv2; char *p; int num=0,j,k,l,rem,ll,len,last,ex=0; des_cblock kk,k2; @@ -392,8 +377,8 @@ void doencryption() if (buf == NULL) { - if ( (( buf=(unsigned char *)Malloc(BUFSIZE+8)) == NULL) || - ((obuf=(unsigned char *)Malloc(BUFSIZE+8)) == NULL)) + if ( (( buf=Malloc(BUFSIZE+8)) == NULL) || + ((obuf=Malloc(BUFSIZE+8)) == NULL)) { fputs("Not enough memory\n",stderr); Exit=10; @@ -440,19 +425,19 @@ void doencryption() else k2[i-8]=k; } - des_set_key((C_Block *)k2,ks2); + des_set_key(&k2,ks2); memset(k2,0,sizeof(k2)); } else if (longk || flag3) { if (flag3) { - des_string_to_2keys(key,(C_Block *)kk,(C_Block *)k2); - des_set_key((C_Block *)k2,ks2); + des_string_to_2keys(key,&kk,&k2); + des_set_key(&k2,ks2); memset(k2,0,sizeof(k2)); } else - des_string_to_key(key,(C_Block *)kk); + des_string_to_key(key,&kk); } else for (i=0; i0; i--) - buf[l++]=random()&0xff; + RAND_bytes(buf + l++, 1); buf[l++]=rem; ex=1; len+=rem; @@ -510,8 +494,8 @@ void doencryption() if (cflag) { - des_cbc_cksum((C_Block *)buf,(C_Block *)cksum, - (long)len,ks,(C_Block *)cksum); + des_cbc_cksum(buf,&cksum, + (long)len,ks,&cksum); if (!eflag) { if (feof(DES_IN)) break; @@ -539,16 +523,16 @@ void doencryption() (unsigned int)rem); des_3cbc_encrypt( (des_cblock *)buf,(des_cblock *)obuf, - (long)l,ks,ks2,(des_cblock *)iv, - (des_cblock *)iv2,do_encrypt); + (long)l,ks,ks2,&iv, + &iv2,do_encrypt); if (rem) memcpy(&(buf[l]),tmpbuf, (unsigned int)rem); } else { des_cbc_encrypt( - (des_cblock *)buf,(des_cblock *)obuf, - (long)l,ks,(des_cblock *)iv,do_encrypt); + buf,obuf, + (long)l,ks,&iv,do_encrypt); if (l >= 8) memcpy(iv,&(obuf[l-8]),8); } if (rem) memcpy(buf,&(buf[l]),(unsigned int)rem); @@ -614,14 +598,14 @@ void doencryption() { des_3cbc_encrypt( (des_cblock *)buf,(des_cblock *)obuf, - (long)l,ks,ks2,(des_cblock *)iv, - (des_cblock *)iv2,do_encrypt); + (long)l,ks,ks2,&iv, + &iv2,do_encrypt); } else { des_cbc_encrypt( - (des_cblock *)buf,(des_cblock *)obuf, - (long)l,ks,(des_cblock *)iv,do_encrypt); + buf,obuf, + (long)l,ks,&iv,do_encrypt); if (l >= 8) memcpy(iv,&(buf[l-8]),8); } @@ -646,9 +630,9 @@ void doencryption() l=l-8+last; } i=0; - if (cflag) des_cbc_cksum((C_Block *)obuf, - (C_Block *)cksum,(long)l/8*8,ks, - (C_Block *)cksum); + if (cflag) des_cbc_cksum(obuf, + (des_cblock *)cksum,(long)l/8*8,ks, + (des_cblock *)cksum); while (i != l) { j=fwrite(obuf,1,(unsigned int)l-i,DES_OUT); @@ -696,15 +680,8 @@ problems: if (Exit) EXIT(Exit); } -int uufwrite(data, size, num, fp) -unsigned char *data; -int size; -unsigned int num; -FILE *fp; - - /* We ignore this parameter but it should be > ~50 I believe */ - - +/* We ignore this parameter but it should be > ~50 I believe */ +int uufwrite(unsigned char *data, int size, unsigned int num, FILE *fp) { int i,j,left,rem,ret=num; static int start=1; @@ -757,8 +734,7 @@ FILE *fp; return(ret); } -void uufwriteEnd(fp) -FILE *fp; +void uufwriteEnd(FILE *fp) { int j; static const char *end=" \nend\n"; @@ -774,11 +750,8 @@ FILE *fp; fwrite(end,1,strlen(end),fp); } -int uufread(out, size, num, fp) -unsigned char *out; -int size; /* should always be > ~ 60; I actually ignore this parameter :-) */ -unsigned int num; -FILE *fp; +/* int size: should always be > ~ 60; I actually ignore this parameter :-) */ +int uufread(unsigned char *out, int size, unsigned int num, FILE *fp) { int i,j,tot; static int done=0; @@ -850,10 +823,7 @@ FILE *fp; *((c)++)=(unsigned char)(((l) )&0xff)) -int uuencode(in, num, out) -unsigned char *in; -int num; -unsigned char *out; +int uuencode(unsigned char *in, int num, unsigned char *out) { int j,i,n,tot=0; DES_LONG l; @@ -883,10 +853,7 @@ unsigned char *out; return(tot); } -int uudecode(in, num, out) -unsigned char *in; -int num; -unsigned char *out; +int uudecode(unsigned char *in, int num, unsigned char *out) { int j,i,k; unsigned int n=0,space=0; -- cgit v1.2.3-55-g6feb