Warnings and casts.
[openssl.git] / crypto / des / des.c
index 0376163ffd7a330ebeb01d9f209f948fa27e7707..91d7967e31e8e298f1118cd148dc6bfc4182af33 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/des/des.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
 #include <stdio.h>
 #include <stdlib.h>
 #ifndef MSDOS
+#ifndef VMS
 #include <unistd.h>
+#else /* VMS */
+#ifdef __DECC
+#include <unistd.h>
+#if __CRTL_VER < 70000000
+#define RAND
+#endif
+#else /* not __DECC */
+#include <math.h>
+#define RAND
+#endif /* __DECC */
+#endif /* VMS */
 #else
 #include <io.h>
 #define RAND
 #endif
 #include <sys/stat.h>
 #endif
-#if defined(NOCONST)
-#define const
-#endif
-#include "des.h"
+#include <openssl/des.h>
 
 #if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS)
 #include <string.h>
 #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);
@@ -99,18 +107,11 @@ void uufwriteEnd(FILE *fp);
 int uufread(unsigned char *out,int size,unsigned int num,FILE *fp);
 int uuencode(unsigned char *in,int num,unsigned char *out);
 int uudecode(unsigned char *in,int num,unsigned char *out);
-#else
-void usage();
-void doencryption();
-int uufwrite();
-void uufwriteEnd();
-int uufread();
-int uuencode();
-int uudecode();
-#endif
-
+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);
 #ifdef VMS
-#define EXIT(a) exit(a&0x10000000)
+#define EXIT(a) exit(a&0x10000000L)
 #else
 #define EXIT(a) exit(a)
 #endif
@@ -134,9 +135,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;
@@ -327,7 +326,7 @@ char **argv;
        EXIT(0);
        }
 
-void usage()
+void usage(void)
        {
        char **u;
        static const char *Usage[]={
@@ -353,7 +352,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++)
@@ -365,7 +364,7 @@ NULL
        EXIT(1);
        }
 
-void doencryption()
+void doencryption(void)
        {
 #ifdef _LIBC
        extern int srandom();
@@ -375,7 +374,7 @@ void doencryption()
 
        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;
@@ -388,8 +387,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;
@@ -436,19 +435,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; i<KEYSIZ; i++)
@@ -466,7 +465,7 @@ void doencryption()
                                kk[i]=key[i]|0x80;
                        }
 
-       des_set_key((C_Block *)kk,ks);
+       des_set_key(&kk,ks);
        memset(key,0,sizeof(key));
        memset(kk,0,sizeof(kk));
        /* woops - A bug that does not showup under unix :-( */
@@ -506,8 +505,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;
@@ -535,16 +534,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);
@@ -610,14 +609,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);
                                }
 
@@ -642,9 +641,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);
@@ -692,15 +691,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;
@@ -753,8 +745,7 @@ FILE *fp;
        return(ret);
        }
 
-void uufwriteEnd(fp)
-FILE *fp;
+void uufwriteEnd(FILE *fp)
        {
        int j;
        static const char *end=" \nend\n";
@@ -770,11 +761,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;
@@ -846,10 +834,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;
@@ -879,10 +864,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;