MagLev/maglev — pull request #198 by timfel (2012-12-24 13:41:18+00:00)
Title: Tim/openssl

I'm not sure this is a good idea at all, so I'm putting this out here for ppl to see. This branch requires some more ruby cext primitives in the VM which can be found in the tim/openssl branch of the VM repository.

This openssl implementation uses the MRI openssl C extension. It passes the tests we had for openssl. It adds support for PKey and it's algorithms, as well as SSLSocket. The first is required for rubygems 2.0, the second for bundler/rails, because the generated Gemfile uses https by default.

The trouble is that the openssl c extension uses many unsafe APIs and may segfault in many cases which I haven't tested, yet. Porting the whole thing to make sure it's safe, however, will require quite some time.

Another thing is, that this extension would have to be compiled after loading primitives, so we'd also have to adjust the build process again.

I'm unsure whether I should rather extend our FFI version, or work on this extensions some more.