Mantis - Squeak
Viewing Issue Advanced Details
7751 VM feature always 03-06-13 12:00 01-30-15 01:01
lewis  
lewis  
normal  
@70@  
open  
none    
none  
0007751: Add SSL plugin
Add Andreas Raab's SqueakSSLPlugin to trunk.
The plugin is at http://www.squeaksource.com/SqueakSSL. [^] This should be added to the update map for VMMaker.

Platform support code is at http://code.google.com/p/squeakssl. [^] This should be added to the platform support on Subversion.

Note - check against oscog branch for any recent updates (or just adopt oscog directly, depending on which is the most up to date version).
related to 0007793resolved lewis Memory leak in the SqueakSSL plugin on unix 
related to 0007824assigned lewis Add TLS SNI Server Name Indication support to SqueakSSL plugin 
 SqueakSSL-platforms.tar.gz [^] (11,355 bytes) 03-22-13 01:11
 squeakssl-platforms-patch-dtl.tgz [^] (10,480 bytes) 01-29-15 00:24

Notes
(0014335)
FrankShearar   
03-06-13 12:22   
It's not entirely necessary to add SqueakSSL (the image-side code) to trunk.

It does seem that plugins are a much bigger deal and require special attention, so the SSL _plugin_ should probably ship by default (as it does already with Windows).
(0014338)
lewis   
03-13-13 12:34   
I added the plugin from www.squeaksource.com/SqueakSSL package SqueakSSL-plugin to the configuration update-dtl.12.mcm for VMMaker, and to the default for "VMMakerTool forUnix". Next step - add the platforms support code to SVN trunk.
(0014339)
FrankShearar   
03-18-13 16:53   
I've seen reports on the pharo-dev mailing list that the non-openssl (i.e., the Mac and Windows specific parts of the plugin) have issues. I wasn't aware of any issues, but they've gone with only supporting openssl across all platforms.
(0014341)
lewis   
03-22-13 01:19   
SqueakSSL-platforms.tar.gz is the most recent platforms source from Andreas' repository at http://code.google.com/p/squeakssl. [^] I have rearranged the directories to match the structure of the platforms sources, but the source is otherwise unmodified. This appears to be more recent and complete that the platforms sources in oscog, so I think we should consider this to be the official current version.

Notes: I compiled but did not test on unix. I think we can assume that Windows is properly supported. Mac OS is also included in the platforms code, and I do not know the state of this.

I see compiler warnings when compiled for -m64, so some updates should be expected to address this. The compile fails for --image64, probably due to the same type declaration issues.
(0014346)
FrankShearar   
04-05-13 13:14   
Cog r.2714 VMs now ship with SSL (on the Linux and Mac platforms): www.mirandabanda.org/files/Cog/VM/VM.r2714/README.2714

(0014470)
lewis   
10-23-13 12:29   
The plugin should be present in future builds and is expected to work when compiled in 32-bit mode
(0014526)
lewis   
01-29-15 00:25   
SqueakSSL has some type declaration issues that prevent it from being compiled for the 64-bit object memory (--image64). Patches are in squeakssl-platforms-patch-dtl.tgz (uploaded here)

I can see that there are some other pointer-to-int issues in the Windows and Mac OS support code, but for those platforms I fixed only the obvious problem of the mis-declared function:

  int sqGetIntPropertySSL(sqInt handle, int propID)

which should instead be this to match the header declaration in Cross:

  sqInt sqGetIntPropertySSL(sqInt handle, sqInt propID)

For unix this patch should fix the --image64 issue and also address some problems when compiling in 64 bit mode. I'm not in a position to compile for Windows and Mac, so I don't want to attempt any further changes there.

(0014527)
lewis   
01-30-15 00:58   
The platforms/unix patches are applied in SVN 3238. Mac and win32 will require follow up. The plugin compiles on all combinations of 32/64 bit host and image for Unix, but still needs testing on 64 bit host VM to verify that it works.
(0014528)
lewis   
01-30-15 01:01   
Patches applied for Unix to address 32/64 bit issues, testing required to ensure that it works on 64-bit host. Patches for other platforms are not done.