DLLs work on Windows but not on Android

Dear Unity community,

I’m trying to use OpenSSL in our project but it only works for Windows. This OpenSSL solution is using libeay32.dll , ssleay32.dll and a C# .net 3.5 wrapper called ManagedOpenSsl.dll Does someone know how to make this work for Android too? When the encryption method is called, it does not encrypt and I see these errors in logcat:

*12-22 16:27:40.081 13134 13172 D Unity : Unable to lookup library path for ‘libeay32’, native render plugin support disabled.

12-22 16:27:40.081 13134 13172 E Unity : Unable to find libeay32

12-22 16:27:40.467 13134 13172 D Unity : Unable to lookup library path for ‘ssleay32’, native render plugin support disabled.*

12-22 16:27:40.468 13134 13172 E Unity : Unable to find ssleay32

The dll’s are located in the plugins /Assets/Plugins folder, other dll’s work but these do not.

Kind regards,
Yorick

These files aren’t the same for each operating system. DLLs are windows-specific (without third party software)

Windows: .dll Dynamic Link Library

Linux (Android is a flavor of Linux): .so Shared Object

Mac: .dylib Dynamic Libraries

Also, you can’t just rename the binary either, they much be compiled for each, although it’s possible to compile for one system (say Linux) from another (say Windows) with the proper software. I believe Unity does support such software, however if you got these DLLs somewhere else, you’ll need to find the appropriate files for the target platform. If you compiled these DLLs yourself, you’ll need to recompile to the proper format, plenty of info online regarding how to do so.