From f1babd48f5259186cd1233288992f942d4b5b0bb Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Fri, 9 Mar 2018 14:02:34 +0100 Subject: Complete rewrite of the master password implementation --- libsylph/imap.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'libsylph/imap.c') diff --git a/libsylph/imap.c b/libsylph/imap.c index 0cd4409..9ee4b15 100644 --- a/libsylph/imap.c +++ b/libsylph/imap.c @@ -52,6 +52,7 @@ #include "utils.h" #include "prefs_common.h" #include "virtual.h" +#include "masterpassword.h" #define IMAP4_PORT 143 #if USE_SSL @@ -705,19 +706,9 @@ static gint imap_session_connect(IMAPSession *session) account = (PrefsAccount *)(SESSION(session)->data); log_message(_("creating IMAP4 connection to %s:%d ...\n"), - SESSION(session)->server, SESSION(session)->port); - - if (prefs_common.use_master_password && account->master_password != NULL) { - if (decrypt_data(&pass, - account->passwd, - account->master_password, - strlen(account->passwd) + 1) != RC_OK) { - session_destroy(session); - return -1; - } - } else { - pass = account->passwd; - } + SESSION(session)->server, SESSION(session)->port); + + pass = decrypt_with_master_password(account->passwd); if (!pass) pass = account->tmp_pass; if (!pass) { @@ -731,6 +722,7 @@ static gint imap_session_connect(IMAPSession *session) account->tmp_pass = tmp_pass; pass = account->tmp_pass; } + if (account->use_socks && account->use_socks_for_recv && account->proxy_host) { socks_info = socks_info_new(account->socks_type, account->proxy_host, account->proxy_port, account->use_proxy_auth ? account->proxy_name : NULL, account->use_proxy_auth ? account->proxy_pass : NULL); -- cgit v1.3