make m_dupstr return NULL if the string was empty.
[apps/madmutt.git] / imap / auth_cram.c
index de56860..ba2f42e 100644 (file)
 #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-lib/macros.h>
+#include <lib-hash/hash.h>
 #include "lib/debug.h"
 
 /* forward declarations */
@@ -42,7 +42,7 @@ imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
   mutt_message _("Authenticating (CRAM-MD5)...");
 
   /* get auth info */
-  if (mutt_account_getuser (&idata->conn->account))
+  if (mutt_account_getlogin (&idata->conn->account))
     return IMAP_AUTH_FAILURE;
   if (mutt_account_getpass (&idata->conn->account))
     return IMAP_AUTH_FAILURE;
@@ -101,8 +101,8 @@ imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA * idata, const char *method)
    */
 
   mutt_to_base64 ((unsigned char *) ibuf, (unsigned char *) obuf,
-                  safe_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
@@ -134,8 +134,8 @@ static void hmac_md5 (const char *password, char *challenge,
   unsigned int secret_len, chal_len;
   int i;
 
-  secret_len = safe_strlen (password);
-  chal_len = safe_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 */
@@ -149,8 +149,8 @@ static void hmac_md5 (const char *password, char *challenge,
   else
     strfcpy ((char *) secret, password, sizeof (secret));
 
-  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);