]> Pileus Git - ~andy/fetchmail/blobdiff - smbencrypt.c
Add Esperanto-language translation.
[~andy/fetchmail] / smbencrypt.c
index ad14707ff7bd4cc30384eec5e5507f86cff95f8a..2714064cbf0bf4239b1659f87dc4334cf6a17755 100644 (file)
@@ -26,6 +26,7 @@ extern int DEBUGLEVEL;
 
 #include <unistd.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <string.h>
 #include <ctype.h>
 #include "smbbyteorder.h"
@@ -33,10 +34,6 @@ extern int DEBUGLEVEL;
 #include "smbencrypt.h"
 #include "smbmd4.h"
 
-#ifndef _AIX
-typedef unsigned char uchar;
-typedef signed short int16;
-#endif
 typedef int BOOL;
 #define False 0
 #define True  1
@@ -65,12 +62,6 @@ static size_t skip_multibyte_char(char c)
     return 0;
 }
 
-
-/*******************************************************************
-safe string copy into a known length string. maxlength does not
-include the terminating zero.
-********************************************************************/
-
 static void strupper(char *s)
 {
 while (*s)
@@ -89,7 +80,7 @@ while (*s)
   }
 }
 
-extern void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
+extern void SMBOWFencrypt(unsigned char passwd[16], unsigned char *c8, unsigned char p24[24]);
 
 /*
  This implements the X/Open SMB password encryption
@@ -97,9 +88,9 @@ extern void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
  encrypted password into p24 
  */
 
-void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24)
+void SMBencrypt(unsigned char *passwd, unsigned char *c8, unsigned char *p24)
   {
-  uchar p14[15], p21[21];
+  unsigned char p14[15], p21[21];
   
   memset(p21,'\0',21);
   memset(p14,'\0',14);
@@ -119,7 +110,7 @@ void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24)
   }
 
 /* Routines for Windows NT MD4 Hash functions. */
-static int _my_wcslen(int16 *str)
+static int _my_wcslen(int16_t *str)
 {
        int len = 0;
        while(*str++ != 0)
@@ -134,10 +125,10 @@ static int _my_wcslen(int16 *str)
  * format.
  */
  
-static int _my_mbstowcs(int16 *dst, uchar *src, int len)
+static int _my_mbstowcs(int16_t *dst, unsigned char *src, int len)
 {
        int i;
-       int16 val;
+       int16_t val;
  
        for(i = 0; i < len; i++) {
                val = *src;
@@ -154,10 +145,10 @@ static int _my_mbstowcs(int16 *dst, uchar *src, int len)
  * Creates the MD4 Hash of the users password in NT UNICODE.
  */
  
-static void E_md4hash(uchar *passwd, uchar *p16)
+static void E_md4hash(unsigned char *passwd, unsigned char *p16)
 {
        int len;
-       int16 wpwd[129];
+       int16_t wpwd[129];
        
        /* Password cannot be longer than 128 characters */
        len = strlen((char *)passwd);
@@ -167,15 +158,15 @@ static void E_md4hash(uchar *passwd, uchar *p16)
        _my_mbstowcs(wpwd, passwd, len);
        wpwd[len] = 0; /* Ensure string is null terminated */
        /* Calculate length in bytes */
-       len = _my_wcslen(wpwd) * sizeof(int16);
+       len = _my_wcslen(wpwd) * sizeof(int16_t);
 
        mdfour(p16, (unsigned char *)wpwd, len);
 }
 
 /* Does the des encryption from the NT or LM MD4 hash. */
-void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24])
+void SMBOWFencrypt(unsigned char passwd[16], unsigned char *c8, unsigned char p24[24])
 {
-       uchar p21[21];
+       unsigned char p21[21];
  
        memset(p21,'\0',21);
  
@@ -184,10 +175,9 @@ void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24])
 }
 
 /* Does the NT MD4 hash then des encryption. */
-void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24)
+void SMBNTencrypt(unsigned char *passwd, unsigned char *c8, unsigned char *p24)
 {
-       uchar p21[21];
+       unsigned char p21[21];
  
        memset(p21,'\0',21);
  
@@ -201,43 +191,3 @@ void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24)
        dump_data(100, (char *)p24, 24);
 #endif
 }
-
-#if 0
-
-BOOL make_oem_passwd_hash(char data[516], const char *passwd, uchar old_pw_hash[16], BOOL unicode)
-{
-       int new_pw_len = strlen(passwd) * (unicode ? 2 : 1);
-
-       if (new_pw_len > 512)
-       {
-               DEBUG(0,("make_oem_passwd_hash: new password is too long.\n"));
-               return False;
-       }
-
-       /*
-        * Now setup the data area.
-        * We need to generate a random fill
-        * for this area to make it harder to
-        * decrypt. JRA.
-        */
-       generate_random_buffer((unsigned char *)data, 516, False);
-       if (unicode)
-       {
-               struni2( &data[512 - new_pw_len], passwd);
-       }
-       else
-       {
-               fstrcpy( &data[512 - new_pw_len], passwd);
-       }
-       SIVAL(data, 512, new_pw_len);
-
-#ifdef DEBUG_PASSWORD
-       DEBUG(100,("make_oem_passwd_hash\n"));
-       dump_data(100, data, 516);
-#endif
-       SamOEMhash( (unsigned char *)data, (unsigned char *)old_pw_hash, True);
-
-       return True;
-}
-
-#endif