rc4-x86_64.pl: fix due credit.
[openssl.git] / crypto / rc4 / rc4.c
index 127e8a5093528b0801151b6792a2d3cdc154e2c9..c900b260554a394107031c708951a02d6d203d92 100644 (file)
@@ -59,7 +59,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "rc4.h"
+#include <openssl/rc4.h>
+#include <openssl/evp.h>
 
 char *usage[]={
 "usage: rc4 args\n",
@@ -70,9 +71,7 @@ char *usage[]={
 NULL
 };
 
-int main(argc, argv)
-int argc;
-char *argv[];
+int main(int argc, char *argv[])
        {
        FILE *in=NULL,*out=NULL;
        char *infile=NULL,*outfile=NULL,*keystr=NULL;
@@ -115,7 +114,7 @@ char *argv[];
                {
 bad:
                for (pp=usage; (*pp != NULL); pp++)
-                       fprintf(stderr,*pp);
+                       fprintf(stderr,"%s",*pp);
                exit(1);
                }
 
@@ -143,7 +142,7 @@ bad:
                        }
                }
                
-#ifdef MSDOS
+#ifdef OPENSSL_SYS_MSDOS
        /* This should set the file to binary mode. */
        {
 #include <fcntl.h>
@@ -157,15 +156,15 @@ bad:
                i=EVP_read_pw_string(buf,BUFSIZ,"Enter RC4 password:",0);
                if (i != 0)
                        {
-                       memset(buf,0,BUFSIZ);
+                       OPENSSL_cleanse(buf,BUFSIZ);
                        fprintf(stderr,"bad password read\n");
                        exit(1);
                        }
                keystr=buf;
                }
 
-       MD5((unsigned char *)keystr,(unsigned long)strlen(keystr),md);
-       memset(keystr,0,strlen(keystr));
+       EVP_Digest((unsigned char *)keystr,strlen(keystr),md,NULL,EVP_md5(),NULL);
+       OPENSSL_cleanse(keystr,strlen(keystr));
        RC4_set_key(&key,MD5_DIGEST_LENGTH,md);
        
        for(;;)