kenkendk / FasterHashing

Wrapper library for using native hashing libraries on Windows, Linux and OSX
MIT License
3 stars 4 forks source link

Improve support for OpenSSL 1.1.0 #1

Closed warwickmm closed 7 years ago

warwickmm commented 7 years ago

It appears that some Duplicati users are having issues with FasterHashing and OpenSSL 1.1.0. See the discussion here.

This page seems to indicate that the OpenSSL_add_all_digests function was deprecated in OpenSSL 1.1.0. In the Duplicati discussion linked above, once users created a symlink to version 1.0.0 or added an assembly config file that mapped to 1.0.0, they no longer encountered any errors.

symposion commented 7 years ago

+1 - I have just upgraded using the upgrade mechanism within duplicati and it no longer works because of this. I'm reluctant to change my symlink because I already have one in /usr/lib/ that points to libssl.so.1.1 and I don't know if anything else depends on that. Do you have any more detailed advice on how to add the assembly config file? I don't have a FasterHashing.dll as part of my duplicati install, so I guess I need to add the config for a different dll - which one should it be? Cheers!

kenkendk commented 7 years ago

@warwickmm When using the 1.1 version, it does not attempt to call OpenSSL_add_all_digests: https://github.com/kenkendk/FasterHashing/blob/master/FasterHashing/OpenSSLImplementations.cs#L969

When using the 1.0 version, it does (as is required): https://github.com/kenkendk/FasterHashing/blob/master/FasterHashing/OpenSSLImplementations.cs#L38

So it appears that the detection of OpenSSL 1.1 is failing but the 1.0 version succeeds to load. This causes Duplicati to think that the OpenSSL library installed is 1.0 and then calls the missing method.

kenkendk commented 7 years ago

@symposion Check out my comments to the other issue on how to disable OpenSSL usage: https://github.com/duplicati/duplicati/issues/2783

kenkendk commented 7 years ago

@warwickmm It was a copy-paste error, it returns an OpenSSL 1.0 implementation if 1.1 is found: https://github.com/kenkendk/FasterHashing/blob/master/FasterHashing/FasterHash.cs#L96