VMS updates.
[openssl.git] / crypto / des / des.h
index 51958cc43178a93e3008091cd687701a66477b8e..54d58ed602dcd74222d5226f471b8b8b418c2805 100644 (file)
@@ -67,6 +67,10 @@ extern "C" {
 #error DES is disabled.
 #endif
 
+#ifdef _KERBEROS_DES_H
+#error kerberos/des.h and openssl/des.h
+#endif
+
 #include <stdio.h>
 #include <openssl/opensslconf.h> /* DES_LONG */
 #include <openssl/e_os2.h>     /* OPENSSL_EXTERN */
@@ -77,20 +81,21 @@ extern "C" {
 #endif
 
 typedef unsigned char des_cblock[8];
-typedef const unsigned char const_des_cblock[8];
+typedef /* const */ unsigned char const_des_cblock[8];
+/* With "const", gcc 2.8.1 on Solaris thinks that des_cblock *
+ * and const_des_cblock * are incompatible pointer types.
+ * I haven't seen that warning on other systems ... I'll look
+ * what the standard says. */
+
 
 typedef struct des_ks_struct
        {
        union   {
-               des_cblock _;
+               des_cblock cblock;
                /* make sure things are correct size on machines with
                 * 8 byte longs */
-               DES_LONG pad[2];
+               DES_LONG deslong[2];
                } ks;
-#if defined _
-# error "_ is defined, but some strange definition the DES library cannot handle that."
-#endif
-#define _      ks._
        int weak_key;
        } des_key_schedule[16];
 
@@ -115,12 +120,11 @@ typedef struct des_ks_struct
 #define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
        des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
 
-#define C_Block des_cblock
-#define Key_schedule des_key_schedule
 #ifdef KERBEROS
 #define ENCRYPT DES_ENCRYPT
 #define DECRYPT DES_DECRYPT
 #endif
+
 #define KEY_SZ DES_KEY_SZ
 #define string_to_key des_string_to_key
 #define read_pw_string des_read_pw_string
@@ -151,6 +155,7 @@ void des_ecb3_encrypt(const_des_cblock *input, des_cblock *output,
 DES_LONG des_cbc_cksum(const unsigned char *input,des_cblock *output,
                       long length,des_key_schedule schedule,
                       const_des_cblock *ivec);
+/* des_cbc_encrypt does not update the IV!  Use des_ncbc_encrypt instead. */
 void des_cbc_encrypt(const unsigned char *input,unsigned char *output,
                     long length,des_key_schedule schedule,des_cblock *ivec,
                     int enc);
@@ -198,16 +203,9 @@ int des_enc_read(int fd,void *buf,int len,des_key_schedule sched,
 int des_enc_write(int fd,const void *buf,int len,des_key_schedule sched,
                  des_cblock *iv);
 char *des_fcrypt(const char *buf,const char *salt, char *ret);
-#if defined(PERL5) || defined(__FreeBSD__)
 char *des_crypt(const char *buf,const char *salt);
-#else
-/* some stupid compilers complain because I have declared char instead
- * of const char */
-#ifdef HEADER_DES_LOCL_H
+#if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT)
 char *crypt(const char *buf,const char *salt);
-#else
-char *crypt();
-#endif
 #endif
 void des_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
                     long length,des_key_schedule schedule,des_cblock *ivec);