Re: OpenSSL and Phar

From: Date: Mon, 23 Jun 2008 11:09:20 +0000
Subject: Re: OpenSSL and Phar
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-38535@lists.php.net to get a copy of this message
Hi, Greg, OK, you've missed my point too, so let's start over from scratch. Please read carefully. I am working under Windows, a little-known operating system which as yet has no way of offering openssl support in ext/phar. My task is to make that work. If I set it up in the usual way, this configuration works as expected: --enable-phar --with-openssl It works by defining PHAR_HAVE_OPENSSL, which switches everything on. That triggers a dependency on the openssl libraries, but it's hidden because the openssl extension shares that dependency. If PHAR_HAVE_OPENSSL is not defined, phar relies on openssl extension calls. (I haven't yet investigated what happens to those when the user has no ext/openssl support at all.) Using something like PHAR_HAVE_OPENSSL_EXT to define that relationship can't work because there is no correlation between shared extensions that might be loaded by users and the original configure line for a given PHP build. We can only know whether or not the openssl extension was _built_ at the same time as phar. These configurations can only work if we give phar an **explicit** dependency on the openssl libs: --enable-phar=shared --with-openssl --enable-phar --with-openssl=shared --enable-phar=shared --with-openssl=shared The question is whether that dependency should be triggered by an explicit configuration option, instead of implicitly by the coincidence of having --with-openssl in the configure line. I personally feel that we should, and suggest we use --enable-phar-ssl[=shared] for this. Thanks, - Steph ----- Original Message ----- From: <greg@chiaraquartet.net> To: "Steph Fox" <steph@phparch.com>; "Marcus Boerger" <mail@marcus-boerger.de> Cc: "internals" <internals@lists.php.net> Sent: Sunday, June 22, 2008 9:50 PM Subject: Re: OpenSSL and Phar Hi, Steph, look more closely, the libraries are only used if openssl is built statically. Otherwise, phar directly calls openssl_verify or openssl_sign. Greg -----Original Message----- From: "Steph Fox" <steph@phparch.com> Subj: OpenSSL and Phar Date: Sun Jun 22, 2008 4:32 pm Size: 701 bytes To: "Greg Beaver" <greg@chiaraquartet.net>,"Marcus Boerger" <mail@marcus-boerger.de> cc: "internals" <internals@lists.php.net> Hi Greg, all, It seems we don't use the openssl extension API at all in ext/phar, just the actual OpenSSL headers and libs. That means Phar with OpenSSL support can be both built and run without ext/openssl being built at all, but requires third-party libs (under Windows at least - ssleay32.dll and libeay32.dll) in the same way that ext/openssl does. I'm wondering if we shouldn't have a separate configuration option for this - something like --enable-phar-ssl - rather than testing for --with-openssl in the config line. The chief advantage of this approach is that it doesn't matter whether phar-ssl is built as shared or not, since the dependency is outside PHP. Thoughts? - Steph

« previous php.internals (#38535) next »