support for starttls
Johannes Stezenbach
js at sig21.net
Mon Apr 11 14:02:30 BST 2011
On Mon, Apr 11, 2011 at 02:44:39PM +0200, Johannes Stezenbach wrote:
> On Mon, Apr 11, 2011 at 01:37:23PM +0200, dtk wrote:
> > Excerpts from Daniel Kreischer's message of Sun Apr 10 21:08:55 +0200 2011:
> > > > and it seems to me like your Python ssl
> > > > support is buggy. Maybe you can try with a different Python and/or
> > > > openssl version.
> > > hmm, maybe tomorrow at work.
> > hmm, same problem here with python 2.6.5 and openssl 0.9.8k[0]
> > I obviously have to admit though that those versions aren't too different :/
> >
> > building python 2.7
>
> What puzzles me is that Python documentation says about ssl_version:
> "If not specified, for client-side operation, the default SSL version is SSLv3"
> file:///usr/share/doc/python2.6/html/library/ssl.html
>
> Yet in your pcap it sends TLSv1 in the Client Hello. Thus I suspected
> your openssl library defaults to TLSv1 while Python's ssl wrapper
> thinks it requested SSLv3. But then your test with
> ssl_version=ssl.PROTOCOL_TLSv1 should have worked.
FWIW, I found I can reproduce the error with a simple
command line test:
>>> import imaplib2
>>> s=imaplib2.IMAP4("my.mailserver.com", debug=True)
46:56.55 MainThread imaplib2 version 2.20
46:56.55 MainThread imaplib2 debug level True
46:56.64 MainThread connected to my.mailserver.com on port 143
46:56.64 my.mailserver.com writer starting
46:56.64 my.mailserver.com reader starting using poll
46:56.75 my.mailserver.com handler starting
46:56.75 MainThread state => NONAUTH
46:56.75 MainThread [async] CAPABILITY ()
46:56.79 MainThread CAPABILITY: ('IMAP4REV1', 'UIDPLUS', 'CHILDREN', 'NAMESPACE', 'THREAD=ORDEREDSUBJECT', 'THREAD=REFERENCES', 'SORT', 'QUOTA', 'IDLE', 'ACL', 'ACL2=UNION', 'STARTTLS', 'LOGINDISABLED')
>>> s.starttls()
47:10.78 MainThread [sync] STARTTLS ()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "imaplib2.py", line 999, in starttls
47:10.95 my.mailserver.com handler unexpected response: 'O STARTTLS failed: couriertls: accept: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number'
47:10.95 my.mailserver.com handler NO response: Error in IMAP command received by server.
self.sock = ssl.wrap_socket(self.sock, keyfile, certfile)
File "/usr/lib/python2.6/ssl.py", line 338, in wrap_socket
suppress_ragged_eofs=suppress_ragged_eofs)
47:10.98 my.mailserver.com handler NO response: Error in IMAP command received by server.
File "/usr/lib/python2.6/ssl.py", line 120, in __init__
self.do_handshake()
File "/usr/lib/python2.6/ssl.py", line 279, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:490: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
So the error is not specific to your setup.
Johannes
More information about the OfflineIMAP-project
mailing list