From c267c53017bc37d34be23f885f34776659a13c43 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sun, 27 May 2012 19:09:38 +0100 Subject: pop3: Added support for SASL based authentication mechanism detection Added support for detecting the supported SASL authentication mechanisms via the AUTH command. There are two ways of detecting them, either by using the AUTH command, that will return -ERR if not supported or by using the CAPA command which will return SASL and the list of mechanisms if supported, not include SASL if SASL authentication is not supported or -ERR if the CAPA command is not supported. As such it seems simpler to use the AUTH command and fallback to normal clear text authentication if the the command is not supported. Additionally updated the test cases to return -ERR when the AUTH command is encountered. Additional test cases will be added when support for the individual authentication mechanisms is added. --- tests/data/test808 | 2 ++ tests/data/test809 | 2 ++ tests/data/test810 | 2 ++ tests/data/test811 | 2 ++ tests/data/test812 | 2 ++ tests/data/test813 | 2 ++ tests/data/test815 | 4 ++++ 7 files changed, 16 insertions(+) (limited to 'tests') diff --git a/tests/data/test808 b/tests/data/test808 index 756801c6b..57e1382b1 100644 --- a/tests/data/test808 +++ b/tests/data/test808 @@ -10,6 +10,7 @@ LIST # Server-side +REPLY AUTH -ERR unsupported command REPLY LIST +OK 808 100 @@ -32,6 +33,7 @@ pop3://%HOSTIP:%POP3PORT/808 -l -u user:secret # Verify data after the test has been "shot" +AUTH USER user PASS secret LIST 808 diff --git a/tests/data/test809 b/tests/data/test809 index e9f22dd83..7cd04c891 100644 --- a/tests/data/test809 +++ b/tests/data/test809 @@ -11,6 +11,7 @@ FAILURE # Server-side +REPLY AUTH -ERR unsupported command REPLY LIST -ERR no such message @@ -36,6 +37,7 @@ pop3://%HOSTIP:%POP3PORT/809 -l -u user:secret 56 +AUTH USER user PASS secret LIST 809 diff --git a/tests/data/test810 b/tests/data/test810 index 09f9562a3..2e24c295b 100644 --- a/tests/data/test810 +++ b/tests/data/test810 @@ -13,6 +13,7 @@ LIST # packets SLOWDOWN +REPLY AUTH -ERR unsupported command # When doing LIST, we get the default list output hard-coded in the test # POP3 server @@ -41,6 +42,7 @@ pop3://%HOSTIP:%POP3PORT/ -u user:secret # Verify data after the test has been "shot" +AUTH USER user PASS secret LIST diff --git a/tests/data/test811 b/tests/data/test811 index ca107abcc..06fa57dcb 100644 --- a/tests/data/test811 +++ b/tests/data/test811 @@ -10,6 +10,7 @@ LIST # Server-side +REPLY AUTH -ERR unsupported command REPLY LIST +OK but no messages\r\n. @@ -34,6 +35,7 @@ pop3://%HOSTIP:%POP3PORT/ -u user:secret # Verify data after the test has been "shot" +AUTH USER user PASS secret LIST diff --git a/tests/data/test812 b/tests/data/test812 index eb2a83669..9f1ba9296 100644 --- a/tests/data/test812 +++ b/tests/data/test812 @@ -11,6 +11,7 @@ FAILURE # Server-side +REPLY AUTH -ERR unsupported command REPLY RETR -ERR no such message @@ -36,6 +37,7 @@ pop3://%HOSTIP:%POP3PORT/812 -u user:secret 56 +AUTH USER user PASS secret RETR 812 diff --git a/tests/data/test813 b/tests/data/test813 index 4953af413..13cfd7074 100644 --- a/tests/data/test813 +++ b/tests/data/test813 @@ -10,6 +10,7 @@ FAILURE # Server-side +REPLY AUTH -ERR unsupported command REPLY PASS -ERR invalid login @@ -35,6 +36,7 @@ pop3://%HOSTIP:%POP3PORT/813 -u user:wrong 67 +AUTH USER user PASS wrong QUIT diff --git a/tests/data/test815 b/tests/data/test815 index df7b1b6dd..9779fe690 100644 --- a/tests/data/test815 +++ b/tests/data/test815 @@ -9,6 +9,9 @@ RETR # # Server-side + +REPLY AUTH -ERR unsupported command + From: me@somewhere To: fake@nowhere @@ -49,6 +52,7 @@ pop3://%HOSTIP:%POP3PORT/815 -u user:secret # Verify data after the test has been "shot" +AUTH USER user PASS secret RETR 815 -- cgit v1.2.3