https://bz.apache.org/bugzilla/show_bug.cgi?id=57815

--- Comment #3 from Christopher Schultz <ch...@christopherschultz.net> ---
(In reply to Justin from comment #2)
> (In reply to Christopher Schultz from comment #1)
> > when it comes to discovering available functions
> 
> Seems to me there are many ways to do this. OpenSSL's own "ciphers" command
> tells you what ciphers are supported.

Ciphers are s different story: you give a list of ciphers to OpenSSL and tell
it to use those. Any that it doesn't support, it will ignore, and there are
(usually) plenty of others to choose from. For protocols, you're pretty much
limited to 3 useful ones, and some versions of the library only support one. If
you choose one it doesn't support, it simply will not support it, no matter
what version you built against.

> These are standard names which also indicate which SSL protocols are
> supported.

While true, the mechanism for configuring OpenSSL for a protocol is
fundamentally different from the way that ciphers are specified and selected.
The Java analogy would be that I have to know at build-time the exact name of
the class I want to instantiate in order to get an engine that supports e.g.
TLS1.2. If it's not available at built time, I simply can't guarantee it will
be available at runtime, so I can't compile-in the usage of that class (it's a
function that returns a complex structure in C) or you'll get runtime failures
that will usually bring-down the process.

Bringing-down the process is much worse than downgrading to the features
available in the build-time version of OpenSSL.

> > 14-Apr-2015 17:30:50.069 INFO [main] 
> > org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 
> > successfully
>  initialized (OpenSSL 1.0.1e 11 Feb 2013)
> 
> I'm a little bothered that you'll log the runtime library, but not the build
> time library that you are restricting users to.

Bothered? Well, feel free to ask for that information to be added. I'm the one
who added the version information to that log message, and it didn't occur to
be to log the version of OpenSSL we built-against. If you think that's useful,
I'm happy to add it.

Back to "doing the right thing". I'm not sure it's possible to make tcnative
forward-compatible with as-yet-unseen versions of OpenSSL; the best we can do
is build against the version we have at hand.

On the other hand, we could be better about picking a protocol given the
protocol(s) requested by the caller and those supported by the build-time
library. I can review the code in there, which I thought was a little funny at
the time. I can also fix the error message so that it makes more sense.

> This obviously isn't a problem on Windows where most use the pre-built
> Tomcat Native where OpenSSL is statically linked. They must wait for a new
> build of Tomcat Native.

Windows users can certainly build their own; they just aren't used to compiling
their own software like most UNIX admins are.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to