rationnalize includes a lot:
[apps/madmutt.git] / imap / auth_cram.c
index 3cf9c5f..7e00d6c 100644 (file)
@@ -9,27 +9,23 @@
 
 /* IMAP login/authentication code */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
 
 #include "mutt.h"
 #include "imap_private.h"
 #include "auth.h"
 
-#include "md5.h"
 #define MD5_BLOCK_LEN 64
 #define MD5_DIGEST_LEN 16
 
-#include "lib/intl.h"
-#include "lib/debug.h"
+#include <lib-hash/hash.h>
 
 /* forward declarations */
 static void hmac_md5 (const char *password, char *challenge,
                       unsigned char *response);
 
 /* imap_auth_cram_md5: AUTH=CRAM-MD5 support. */
-imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
+imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method __attribute__ ((unused)))
 {
   char ibuf[LONG_STRING * 2], obuf[LONG_STRING];
   unsigned char hmac_response[MD5_DIGEST_LEN];
@@ -60,17 +56,14 @@ imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
   while (rc == IMAP_CMD_CONTINUE);
 
   if (rc != IMAP_CMD_RESPOND) {
-    debug_print (1, ("Invalid response from server: %s\n", ibuf));
     goto bail;
   }
 
   if ((len = mutt_from_base64 (obuf, idata->cmd.buf + 2)) == -1) {
-    debug_print (1, ("Error decoding base64 response.\n"));
     goto bail;
   }
 
   obuf[len] = '\0';
-  debug_print (2, ("CRAM challenge: %s\n", obuf));
 
   /* The client makes note of the data and then responds with a string
    * consisting of the user name, a space, and a 'digest'. The latter is
@@ -94,15 +87,14 @@ imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
             hmac_response[9], hmac_response[10], hmac_response[11],
             hmac_response[12], hmac_response[13], hmac_response[14],
             hmac_response[15]);
-  debug_print (2, ("CRAM response: %s\n", obuf));
 
   /* XXX - ibuf must be long enough to store the base64 encoding of obuf, 
    * plus the additional debris
    */
 
   mutt_to_base64 ((unsigned char *) ibuf, (unsigned char *) obuf,
-                  mutt_strlen (obuf), sizeof (ibuf) - 2);
-  safe_strcat (ibuf, sizeof (ibuf), "\r\n");
+                  m_strlen(obuf), sizeof (ibuf) - 2);
+  m_strcat(ibuf, sizeof(ibuf), "\r\n");
   mutt_socket_write (idata->conn, ibuf);
 
   do
@@ -110,7 +102,6 @@ imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
   while (rc == IMAP_CMD_CONTINUE);
 
   if (rc != IMAP_CMD_OK) {
-    debug_print (1, ("Error receiving server response.\n"));
     goto bail;
   }
 
@@ -134,8 +125,8 @@ static void hmac_md5 (const char *password, char *challenge,
   unsigned int secret_len, chal_len;
   int i;
 
-  secret_len = mutt_strlen (password);
-  chal_len = mutt_strlen (challenge);
+  secret_len = m_strlen(password);
+  chal_len = m_strlen(challenge);
 
   /* passwords longer than MD5_BLOCK_LEN bytes are substituted with their MD5
    * digests */
@@ -143,14 +134,14 @@ static void hmac_md5 (const char *password, char *challenge,
     MD5Init (&ctx);
     MD5Update (&ctx, (unsigned char *) password, secret_len);
     MD5Final (hash_passwd, &ctx);
-    strfcpy ((char *) secret, (char *) hash_passwd, MD5_DIGEST_LEN);
+    m_strcpy((char *)secret, MD5_DIGEST_LEN, (char *)hash_passwd);
     secret_len = MD5_DIGEST_LEN;
   }
   else
-    strfcpy ((char *) secret, password, sizeof (secret));
+    m_strcpy((char *)secret, sizeof(secret), password);
 
-  memset (ipad, 0, sizeof (ipad));
-  memset (opad, 0, sizeof (opad));
+  p_clear(ipad, 1);
+  p_clear(opad, 1);
   memcpy (ipad, secret, secret_len);
   memcpy (opad, secret, secret_len);