Remove redundant declaration.
[openssl.git] / crypto / des / ncbc_enc.c
index 1d1a368c2231192a44bd16a2a5ec21a84d75f1ec..fda23d522f3fc32c458ce201ecd53dcbdee1cc18 100644 (file)
@@ -1,4 +1,9 @@
 /* crypto/des/ncbc_enc.c */
+/*
+ * #included by:
+ *    cbc_enc.c  (DES_cbc_encrypt)
+ *    des_enc.c  (DES_ncbc_encrypt)
+ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
 
 #include "des_locl.h"
 
-void des_ncbc_encrypt(input, output, length, schedule, ivec, enc)
-des_cblock (*input);
-des_cblock (*output);
-long length;
-des_key_schedule schedule;
-des_cblock (*ivec);
-int enc;
+#ifdef CBC_ENC_C__DONT_UPDATE_IV
+void DES_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
+                    DES_key_schedule *_schedule, DES_cblock *ivec, int enc)
+#else
+void DES_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
+                    DES_key_schedule *_schedule, DES_cblock *ivec, int enc)
+#endif
        {
        register DES_LONG tin0,tin1;
        register DES_LONG tout0,tout1,xor0,xor1;
-       register unsigned char *in,*out;
        register long l=length;
        DES_LONG tin[2];
        unsigned char *iv;
 
-       in=(unsigned char *)input;
-       out=(unsigned char *)output;
-       iv=(unsigned char *)ivec;
+       iv = &(*ivec)[0];
 
        if (enc)
                {
@@ -87,7 +89,7 @@ int enc;
                        c2l(in,tin1);
                        tin0^=tout0; tin[0]=tin0;
                        tin1^=tout1; tin[1]=tin1;
-                       des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
+                       DES_encrypt1((DES_LONG *)tin,_schedule,DES_ENCRYPT);
                        tout0=tin[0]; l2c(tout0,out);
                        tout1=tin[1]; l2c(tout1,out);
                        }
@@ -96,13 +98,15 @@ int enc;
                        c2ln(in,tin0,tin1,l+8);
                        tin0^=tout0; tin[0]=tin0;
                        tin1^=tout1; tin[1]=tin1;
-                       des_encrypt((DES_LONG *)tin,schedule,DES_ENCRYPT);
+                       DES_encrypt1((DES_LONG *)tin,_schedule,DES_ENCRYPT);
                        tout0=tin[0]; l2c(tout0,out);
                        tout1=tin[1]; l2c(tout1,out);
                        }
-               iv=(unsigned char *)ivec;
+#ifndef CBC_ENC_C__DONT_UPDATE_IV
+               iv = &(*ivec)[0];
                l2c(tout0,iv);
                l2c(tout1,iv);
+#endif
                }
        else
                {
@@ -112,7 +116,7 @@ int enc;
                        {
                        c2l(in,tin0); tin[0]=tin0;
                        c2l(in,tin1); tin[1]=tin1;
-                       des_encrypt((DES_LONG *)tin,schedule,DES_DECRYPT);
+                       DES_encrypt1((DES_LONG *)tin,_schedule,DES_DECRYPT);
                        tout0=tin[0]^xor0;
                        tout1=tin[1]^xor1;
                        l2c(tout0,out);
@@ -120,11 +124,25 @@ int enc;
                        xor0=tin0;
                        xor1=tin1;
                        }
-               iv=(unsigned char *)ivec;
+               if (l != -8)
+                       {
+                       c2l(in,tin0); tin[0]=tin0;
+                       c2l(in,tin1); tin[1]=tin1;
+                       DES_encrypt1((DES_LONG *)tin,_schedule,DES_DECRYPT);
+                       tout0=tin[0]^xor0;
+                       tout1=tin[1]^xor1;
+                       l2cn(tout0,tout1,out,l+8);
+#ifndef CBC_ENC_C__DONT_UPDATE_IV
+                       xor0=tin0;
+                       xor1=tin1;
+#endif
+                       }
+#ifndef CBC_ENC_C__DONT_UPDATE_IV 
+               iv = &(*ivec)[0];
                l2c(xor0,iv);
                l2c(xor1,iv);
+#endif
                }
        tin0=tin1=tout0=tout1=xor0=xor1=0;
        tin[0]=tin[1]=0;
        }
-