The simple solution is to keep doing what we do now: only support OpenSSL
and not whatever Apple does with LibreSSL which may or may not be up to
date.

Gary

On Wed, Jun 29, 2022, 06:59 sebb <seb...@gmail.com> wrote:

> It looks like macOS 10.5+ and Windows (latest) use LibreSSL by default
> rather than OpenSSL.
>
> The LibreSSL API does not have the same functions as either 1.0.2 or
> 1.1.1, so needs its own JNA class. In particular it looks like
> ENGINE_load_rdrand is not present, nor is OpenSSL_version_num; 1.0.2
> has the former only, and 1.1.1 has the latter only.
>
> This makes it hard to support JNA with the current design.
> It would require another OpenSsl<version>NativeJna class, and the
> parent class OpenSslNativeJna would need to use yet another condition
> in each of its methods.
>
> This is quite tedious and error-prone.
>
> Seems to me it would be better to use something like a set of
> singleton classes that implement the required methods. The appropriate
> one can then be initialised and used by OpenSslNativeJna to field the
> actual methods. i.e. replace the conditional logic with a static
> reference to the correct API interface instance. This should only
> affect non-public classes.
>
> Any other suggestions?
>
> Sebb
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

Reply via email to