[Python-bugs-list] [ python-Bugs-576711 ] Windows binary missing SSL

noreply@sourceforge.net noreply@sourceforge.net
Tue, 03 Dec 2002 20:22:40 -0800


Bugs item #576711, was opened at 2002-07-02 22:10
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=576711&group_id=5470

Category: Windows
Group: Platform-specific
>Status: Open
Resolution: Accepted
Priority: 5
Submitted By: Dave Schuyler (parameter)
Assigned to: Mark Hammond (mhammond)
Summary: Windows binary missing SSL

Initial Comment:
The Windows binary build from www.python.org appears to 
be missing SSL support (-DUSE_SSL ?).  Please consider 
including SSL/HTTPS support "out of the box" for Windows 
users.

Here's an example of what I tried (although I changed the 
server name):

Python 2.2.1 (#34, Apr  9 2002, 19:34:33) [MSC 32 bit 
(Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.8 -- press F1 for help
>>> import httplib
>>> conn=httplib.HTTPSConnection
("some.secure.server.com")
>>> conn.request("GET", "/index.php")
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in ?
    conn.request("GET", "/index.php")
  File "C:\Python22\lib\httplib.py", line 537, in request
    self._send_request(method, url, body, headers)
  File "C:\Python22\lib\httplib.py", line 553, in _send_request
    self.putrequest(method, url)
  File "C:\Python22\lib\httplib.py", line 453, in putrequest
    self.send(str)
  File "C:\Python22\lib\httplib.py", line 395, in send
    self.connect()
  File "C:\Python22\lib\httplib.py", line 688, in connect
    ssl = socket.ssl(realsock, self.key_file, self.cert_file)
AttributeError: 'module' object has no attribute 'ssl'


----------------------------------------------------------------------

>Comment By: Tim Peters (tim_one)
Date: 2002-12-03 23:22

Message:
Logged In: YES 
user_id=31435

Great work, Mark!  I hit some snags doing this stuff on 
Win98SE, but got it all working and checked in.  There's no 
reason I can see to keep this report open anymore.

BTW, is test_socket_ssl.py the only test we've got for 
this?  It passes here, so if that's all there is, I can't think of 
anything else remaining to do.

----------------------------------------------------------------------

Comment By: Mark Hammond (mhammond)
Date: 2002-12-03 01:36

Message:
Logged In: YES 
user_id=14198

OK - all checked in and ready to close once the dust settles.

----------------------------------------------------------------------

Comment By: Tim Peters (tim_one)
Date: 2002-12-02 23:14

Message:
Logged In: YES 
user_id=31435

Check it in -- that's a good way to force the issue.  I 
certainly approve of the concept <wink>.

----------------------------------------------------------------------

Comment By: Mark Hammond (mhammond)
Date: 2002-07-23 01:46

Message:
Logged In: YES 
user_id=14198

Sorry Tim, but you are the Windows build god <wink>.  I
assume this wont be looked at until closer to an RC, which
is fine by me.

----------------------------------------------------------------------

Comment By: Mark Hammond (mhammond)
Date: 2002-07-09 01:22

Message:
Logged In: YES 
user_id=14198

OK - here we go :)

Attaching a hack to try and get SSL working without too much
pain!

There is a .py file that attempts to locate an OpenSSL
installation to use.  As these seem to be released often,
the script looks for the latest non-beta OpenSSL directory.

If the OpenSSL directory does not have makefiles, it
attempts to generate these makefiles (which uses Perl). 
Unfortunately, you need ActivePerl for this to work, and I
try and make some effort towards ensuring a working perl is
found and is used.

Once done, this script then simply invokes a makefile to
build the SSL module itself.

An integrated patch will come after feedback.  But for now,
to test this you can:

* Download and install OpenSSL, and install this in the same
place other libs used by Python are installed, such as zlib.
 This should be in the "..\.." directory relative to the
"PCBuild" directory.

* Ensure ActivePerl is installed on your box, and is either
on your path, or in "\perl\bin" or "c:\perl\bin"

* Install the 3 files in this patch (_ssl.mak, build_ssl.py
and _ssl.dsp) in the "PCBuild" directory.

* In your Python MSVC workspace, add this new "_ssl.dsp" as
a project, and make it depend on the "pythoncore" project.

* Build the new project.

If all goes well, OpenSSL will be configured and have
makefiles generated, be built, and then have the _ssl.pyd
module built.

Lemme know how it goes!


----------------------------------------------------------------------

Comment By: Gerhard Häring (ghaering)
Date: 2002-07-04 01:28

Message:
Logged In: YES 
user_id=163326

I've successfully built socket.pyd against OpenSSL on win32:

Build OpenSSL: read the README that's included. You
basically need Perl and I also use NASM to build the highly
optimized version of it.

Add the OpenSSL include path (inc32, IIRC) for the socket
module.
Add the OpenSSL library path (lib32, IIRC) for the socket
module.
Add the two .lib files that can be found in lib32 to the
libraries to link against.

I think this is all that's involved.

----------------------------------------------------------------------

Comment By: Tim Peters (tim_one)
Date: 2002-07-02 22:50

Message:
Logged In: YES 
user_id=31435

Mark, does this interest you?

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=576711&group_id=5470