Since there has been reports of clashes between OpenSSL's
[openssl.git] / crypto / des / cfb64enc.c
index e2525a781a0d66c4b53296192b641672e7a3bc78..105530dfa3bae2061e16fbb1a9905b7362665158 100644 (file)
@@ -64,8 +64,8 @@
  */
 
 void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
-            long length, des_key_schedule schedule, des_cblock ivec, int *num,
-            int enc)
+            long length, des_key_schedule schedule, des_cblock *ivec,
+            int *num, int enc)
        {
        register DES_LONG v0,v1;
        register long l=length;
@@ -73,7 +73,7 @@ void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
        DES_LONG ti[2];
        unsigned char *iv,c,cc;
 
-       iv=ivec;
+       iv = &(*ivec)[0];
        if (enc)
                {
                while (l--)
@@ -82,11 +82,11 @@ void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
                                {
                                c2l(iv,v0); ti[0]=v0;
                                c2l(iv,v1); ti[1]=v1;
-                               des_encrypt(ti,schedule,DES_ENCRYPT);
-                               iv=ivec;
+                               des_encrypt1(ti,schedule,DES_ENCRYPT);
+                               iv = &(*ivec)[0];
                                v0=ti[0]; l2c(v0,iv);
                                v0=ti[1]; l2c(v0,iv);
-                               iv=ivec;
+                               iv = &(*ivec)[0];
                                }
                        c= *(in++)^iv[n];
                        *(out++)=c;
@@ -102,11 +102,11 @@ void des_cfb64_encrypt(const unsigned char *in, unsigned char *out,
                                {
                                c2l(iv,v0); ti[0]=v0;
                                c2l(iv,v1); ti[1]=v1;
-                               des_encrypt(ti,schedule,DES_ENCRYPT);
-                               iv=ivec;
+                               des_encrypt1(ti,schedule,DES_ENCRYPT);
+                               iv = &(*ivec)[0];
                                v0=ti[0]; l2c(v0,iv);
                                v0=ti[1]; l2c(v0,iv);
-                               iv=ivec;
+                               iv = &(*ivec)[0];
                                }
                        cc= *(in++);
                        c=iv[n];