test900 test901 test902 test903 test904 test905 test906 test907 test908 \
test909 test910 test911 test912 test913 test914 test915 test916 test917 \
test918 test919 test920 test921 test922 test923 test924 test925 test926 \
-test927 test928 test929 test930 test931 test932 test933 test934 \
+test927 test928 test929 test930 test931 test932 test933 test934 test935 \
+test936 test937
\
test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 \
test1008 test1009 test1010 test1011 test1012 test1013 test1014 test1015 \
--- /dev/null
+<testcase>
+<info>
+<keywords>
+SMTP
+SMTP AUTH CRAM-MD5 SASL DOWNGRADE
+RFC2195
+RFC4954
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH CRAM-MD5 PLAIN
+REPLY "AUTH CRAM-MD5" 334 Rubbish
+REPLY * 501 AUTH exchange cancelled by client
+REPLY "AUTH PLAIN" 334 PLAIN supported
+REPLY dXNlcgB1c2VyAHNlY3JldA== 235 Authenticated
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+smtp
+</server>
+<features>
+crypto
+</features>
+ <name>
+SMTP CRAM-MD5 authentication with SASL downgrade
+ </name>
+<stdin>
+mail body\r
+</stdin>
+ <command>
+smtp://%HOSTIP:%SMTPPORT/935 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T -
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+EHLO 935\r
+AUTH CRAM-MD5\r
+*\r
+AUTH PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+MAIL FROM:<sender@example.com>\r
+RCPT TO:<recipient@example.com>\r
+DATA\r
+QUIT\r
+</protocol>
+<upload>
+mail body\r
+.\r
+</upload>
+</verify>
+</testcase>
--- /dev/null
+<testcase>
+<info>
+<keywords>
+SMTP
+SMTP AUTH NTLM SASL DOWNGRADE
+RFC4954
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH NTLM PLAIN
+REPLY "AUTH NTLM" 334 NTLM supported
+REPLY TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= 334 Rubbish
+REPLY * 501 AUTH exchange cancelled by client
+REPLY "AUTH PLAIN" 334 PLAIN supported
+REPLY dXNlcgB1c2VyAHNlY3JldA== 235 Authenticated
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+smtp
+</server>
+<features>
+NTLM
+</features>
+ <name>
+SMTP NTLM authentication with SASL downgrade
+ </name>
+<stdin>
+mail body\r
+</stdin>
+ <setenv>
+# we force our own host name, in order to make the test machine independent
+CURL_GETHOSTNAME=curlhost
+# we try to use the LD_PRELOAD hack, if not a debug build
+LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
+ </setenv>
+ <command>
+smtp://%HOSTIP:%SMTPPORT/936 --mail-rcpt recipient@example.com --mail-from sender@example.com -u testuser:testpass -T -
+</command>
+<precheck>
+chkhostname curlhost
+</precheck>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+EHLO 936\r
+AUTH NTLM\r
+TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
+*\r
+AUTH PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+MAIL FROM:<sender@example.com>\r
+RCPT TO:<recipient@example.com>\r
+DATA\r
+QUIT\r
+</protocol>
+<upload>
+mail body\r
+.\r
+</upload>
+</verify>
+</testcase>
--- /dev/null
+<testcase>
+<info>
+<keywords>
+SMTP
+SMTP AUTH DIGEST-MD5 SASL DOWNGRADE
+RFC2831
+RFC4954
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<servercmd>
+AUTH DIGEST-MD5 PLAIN
+REPLY "AUTH DIGEST-MD5" 334 Rubbish
+REPLY * 501 AUTH exchange cancelled by client
+REPLY "AUTH PLAIN" 334 PLAIN supported
+REPLY dXNlcgB1c2VyAHNlY3JldA== 235 Authenticated
+</servercmd>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+smtp
+</server>
+<features>
+debug
+crypto
+</features>
+ <name>
+SMTP DIGEST-MD5 authentication with SASL downgrade
+ </name>
+<stdin>
+mail body\r
+</stdin>
+ <command>
+smtp://%HOSTIP:%SMTPPORT/937 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user:secret -T -
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+EHLO 937\r
+AUTH DIGEST-MD5\r
+*\r
+AUTH PLAIN\r
+dXNlcgB1c2VyAHNlY3JldA==\r
+MAIL FROM:<sender@example.com>\r
+RCPT TO:<recipient@example.com>\r
+DATA\r
+QUIT\r
+</protocol>
+<upload>
+mail body\r
+.\r
+</upload>
+</verify>
+</testcase>