318{
319 struct Md5Ctx md5ctx = { 0 };
320 unsigned char digest[16];
321 char hash[33] = { 0 };
322 char buf[1024] = { 0 };
323
326
329
331 {
334 }
335
336
338
339
345
346
347 snprintf(buf,
sizeof(buf),
"APOP %s %s\r\n", adata->
conn->
account.
user, hash);
348
349 switch (
pop_query(adata, buf,
sizeof(buf)))
350 {
351 case 0:
353 case -1:
355 }
356
357
359
361}
bool mutt_addr_valid_msgid(const char *msgid)
Is this a valid Message ID?
int mutt_account_getpass(struct ConnAccount *cac)
Fetch password into ConnAccount, if necessary.
#define mutt_message(...)
void mutt_md5_process(const char *str, struct Md5Ctx *md5ctx)
Process a NULL-terminated string.
void mutt_md5_init_ctx(struct Md5Ctx *md5ctx)
Initialise the MD5 computation.
void * mutt_md5_finish_ctx(struct Md5Ctx *md5ctx, void *resbuf)
Process the remaining bytes in the buffer.
void mutt_md5_toascii(const void *digest, char *resbuf)
Convert a binary MD5 digest into ASCII Hexadecimal.
@ POP_A_UNAVAIL
No valid authentication method.
@ POP_A_SUCCESS
Authenticated successfully.
@ POP_A_FAILURE
Authentication failed.
@ POP_A_SOCKET
Connection lost.
#define pop_query(adata, buf, buflen)
struct ConnAccount account
Account details: username, password, etc.
Cursor for the MD5 hashing.
struct Connection * conn
Connection to POP server.