On 04 Jan 2011, at 18:16, Sven Van Caekenberghe wrote:
> Hi,
>
> Has anyone got the Squeak SSL plugin [1] to work on Mac OS X, more
> specifically for the Cog VM family, Pharo 1.1.1 or later and Mac OS X 10.6.5
> ? If not, is there some how to guide on building plugins ?
>
> TIA,
>
> Sven
>
> [1] http://www.squeaksource.com/SqueakSSL
I have found the Google project website for the plugin:
http://code.google.com/p/squeakssl/
where binary versions of the plugin can be downloaded for Windows, Mac and
Linux.
I got this to work in a Cog VM on Mac OS X, however not without at least one
problem:
SqueakSSL>>#certState always returns -1 on Mac OS X simply because this is
hardcoded in sqMacSSL.c:
248: /* We are connected. Verify the cert. */
249: ssl->state = SQSSL_CONNECTED;
250: ssl->certFlags = -1;
While on Linux, in in sqUnixOpenSSL.c:
292: /* Check the result of verification */
293: result = SSL_get_verify_result(ssl->ssl);
294: if(ssl->loglevel) printf("sqAcceptSSL: SSL_get_verify_result = %d\n",
result);
295: /* FIXME: Figure out the actual failure reason */
296: ssl->certFlags = result ? SQSSL_OTHER_ISSUE : SQSSL_OK;
Still not a full implementation, but better (and others report SqueakSSL is
working on Linux).
The OpenSSL calls used on Linux seem to exist identically on Mac OS X.
(BTW, there are two instances of this code in the C file.)
Changing the example code in SqueakSSL class>>google: to skip the certState
check:
"Verify that the cert is valid"
ssl certState = 0 ifFalse:[
self error: 'The certificate is invalid (code: ', ssl
certState,')'.
].
Results in a working example.
If I only knew how to recompile the plugin I could try to build a better one, I
have however never done this (nor built a VM).
Is there anybody else interested in helping out ?
Sven