1*ebfedea0SLionel SambucOpenSSL - Port To The Macintosh OS 9 or Earlier 2*ebfedea0SLionel Sambuc=============================================== 3*ebfedea0SLionel Sambuc 4*ebfedea0SLionel SambucThanks to Roy Wood <roy@centricsystems.ca> initial support for Mac OS (pre 5*ebfedea0SLionel SambucX) is now provided. "Initial" means that unlike other platforms where you 6*ebfedea0SLionel Sambucget an SDK and a "swiss army" openssl application, on Macintosh you only 7*ebfedea0SLionel Sambucget one sample application which fetches a page over HTTPS(*) and dumps it 8*ebfedea0SLionel Sambucin a window. We don't even build the test applications so that we can't 9*ebfedea0SLionel Sambucguarantee that all algorithms are operational. 10*ebfedea0SLionel Sambuc 11*ebfedea0SLionel SambucRequired software: 12*ebfedea0SLionel Sambuc 13*ebfedea0SLionel Sambuc- StuffIt Expander 5.5 or later, alternatively MacGzip and SUNtar; 14*ebfedea0SLionel Sambuc- Scriptable Finder; 15*ebfedea0SLionel Sambuc- CodeWarrior Pro 5; 16*ebfedea0SLionel Sambuc 17*ebfedea0SLionel SambucInstallation procedure: 18*ebfedea0SLionel Sambuc 19*ebfedea0SLionel Sambuc- fetch the source at ftp://ftp.openssl.org/ (well, you probably already 20*ebfedea0SLionel Sambuc did, huh?) 21*ebfedea0SLionel Sambuc- unpack the .tar.gz file: 22*ebfedea0SLionel Sambuc - if you have StuffIt Expander then just drag it over it; 23*ebfedea0SLionel Sambuc - otherwise uncompress it with MacGzip and then unpack with SUNtar; 24*ebfedea0SLionel Sambuc- locate MacOS folder in OpenSSL source tree and open it; 25*ebfedea0SLionel Sambuc- unbinhex mklinks.as.hqx and OpenSSL.mcp.hqx if present (**), do it 26*ebfedea0SLionel Sambuc "in-place", i.e. unpacked files should end-up in the very same folder; 27*ebfedea0SLionel Sambuc- execute mklinks.as; 28*ebfedea0SLionel Sambuc- open OpenSSL.mcp(***) and build 'GetHTTPS PPC' target(****); 29*ebfedea0SLionel Sambuc- that's it for now; 30*ebfedea0SLionel Sambuc 31*ebfedea0SLionel Sambuc(*) URL is hardcoded into ./MacOS/GetHTTPS.src/GetHTTPS.cpp, lines 40 32*ebfedea0SLionel Sambuc to 42, change appropriately. 33*ebfedea0SLionel Sambuc(**) If you use SUNtar, then it might have already unbinhexed the files 34*ebfedea0SLionel Sambuc in question. 35*ebfedea0SLionel Sambuc(***) The project file was saved with CW Pro 5.3. If you have an earlier 36*ebfedea0SLionel Sambuc version and it refuses to open it, then download 37*ebfedea0SLionel Sambuc http://www.openssl.org/~appro/OpenSSL.mcp.xml and import it 38*ebfedea0SLionel Sambuc overwriting the original OpenSSL.mcp. 39*ebfedea0SLionel Sambuc(****) Other targets are works in progress. If you feel like giving 'em a 40*ebfedea0SLionel Sambuc shot, then you should know that OpenSSL* and Lib* targets are 41*ebfedea0SLionel Sambuc supposed to be built with the GUSI, MacOS library which mimics 42*ebfedea0SLionel Sambuc BSD sockets and some other POSIX APIs. The GUSI distribution is 43*ebfedea0SLionel Sambuc expected to be found in the same directory as the openssl source tree, 44*ebfedea0SLionel Sambuc i.e., in the parent directory to the one where this very file, 45*ebfedea0SLionel Sambuc namely INSTALL.MacOS, resides. For more information about GUSI, see 46*ebfedea0SLionel Sambuc http://www.iis.ee.ethz.ch/~neeri/macintosh/gusi-qa.html 47*ebfedea0SLionel Sambuc 48*ebfedea0SLionel SambucFinally some essential comments from our generous contributor:-) 49*ebfedea0SLionel Sambuc 50*ebfedea0SLionel Sambuc"I've gotten OpenSSL working on the Macintosh. It's probably a bit of a 51*ebfedea0SLionel Sambuchack, but it works for what I'm doing. If you don't like the way I've done 52*ebfedea0SLionel Sambucit, then feel free to change what I've done. I freely admit that I've done 53*ebfedea0SLionel Sambucsome less-than-ideal things in my port, and if you don't like the way I've 54*ebfedea0SLionel Sambucdone something, then feel free to change it-- I won't be offended! 55*ebfedea0SLionel Sambuc 56*ebfedea0SLionel Sambuc... I've tweaked "bss_sock.c" a little to call routines in a "MacSocket" 57*ebfedea0SLionel Sambuclibrary I wrote. My MacSocket library is a wrapper around OpenTransport, 58*ebfedea0SLionel Sambuchandling stuff like endpoint creation, reading, writing, etc. It is not 59*ebfedea0SLionel Sambucdesigned as a high-performance package such as you'd use in a webserver, 60*ebfedea0SLionel Sambucbut is fine for lots of other applications. MacSocket also uses some other 61*ebfedea0SLionel Sambuccode libraries I've written to deal with string manipulations and error 62*ebfedea0SLionel Sambuchandling. Feel free to use these things in your own code, but give me 63*ebfedea0SLionel Sambuccredit and/or send me free stuff in appreciation! :-) 64*ebfedea0SLionel Sambuc 65*ebfedea0SLionel Sambuc... 66*ebfedea0SLionel Sambuc 67*ebfedea0SLionel SambucIf you have any questions, feel free to email me as the following: 68*ebfedea0SLionel Sambuc 69*ebfedea0SLionel Sambucroy@centricsystems.ca 70*ebfedea0SLionel Sambuc 71*ebfedea0SLionel Sambuc-Roy Wood" 72*ebfedea0SLionel Sambuc 73