This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Windows binary missing SSL
Type: Stage:
Components: Windows Versions:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: mhammond Nosy List: ghaering, mhammond, nnorwitz, parameter, tim.peters
Priority: normal Keywords:

Created on 2002-07-03 02:10 by parameter, last changed 2022-04-10 16:05 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
build_ssl.zip mhammond, 2002-07-09 05:22 zip file with 3 new files, as described
Messages (10)
msg11439 - (view) Author: Dave Schuyler (parameter) Date: 2002-07-03 02:10
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'
msg11440 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-07-03 02:50
Logged In: YES 
user_id=31435

Mark, does this interest you?
msg11441 - (view) Author: Gerhard Häring (ghaering) * (Python committer) Date: 2002-07-04 05:28
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.
msg11442 - (view) Author: Mark Hammond (mhammond) * (Python committer) Date: 2002-07-09 05:22
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!
msg11443 - (view) Author: Mark Hammond (mhammond) * (Python committer) Date: 2002-07-23 05:46
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.
msg11444 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-12-03 04:14
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>.
msg11445 - (view) Author: Mark Hammond (mhammond) * (Python committer) Date: 2002-12-03 06:36
Logged In: YES 
user_id=14198

OK - all checked in and ready to close once the dust settles.
msg11446 - (view) Author: Tim Peters (tim.peters) * (Python committer) Date: 2002-12-04 04:22
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.
msg11447 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2003-01-29 02:24
Logged In: YES 
user_id=33168

Tim/Mark, should this be closed?
msg11448 - (view) Author: Mark Hammond (mhammond) * (Python committer) Date: 2003-01-29 02:39
Logged In: YES 
user_id=14198

yep :)
History
Date User Action Args
2022-04-10 16:05:28adminsetgithub: 36841
2002-07-03 02:10:46parametercreate