[erlang-questions] Re: crypto on 64bit windows?

Robert Raschke rtrlists@REDACTED
Tue Mar 29 19:06:16 CEST 2011


On Tue, Mar 29, 2011 at 11:12 AM, Emile Joubert <emile@REDACTED> wrote:

>
> Hi,
>
> Should the crypto module work on 64bit windows? It works fine on 32bit
> Windows XP, but on 64bit XP and 64bit Windows7 I get the following error:
>
> ----------
>
> Erlang R14B02 (erts-5.8.3) [smp:2:2] [rq:2] [async-threads:0]
>
> Eshell V5.8.3  (abort with ^G)
> 1> crypto:start().
>
> =ERROR REPORT==== 29-Mar-2011::11:05:13 ===
> Unable to load crypto library. Failed with error:
> "load_failed, Failed to load NIF library
> c:/PROGRA~2/ERL58~1.3/lib/crypto-2.0.2.1/priv/lib/crypto: 'The specified
> module could not be found.'"
> OpenSSL might not be installed on this system.
>
> =ERROR REPORT==== 29-Mar-2011::11:05:13 ===
> The on_load function for module crypto returned {error,
>                                                 {load_failed,
>                                                  "Failed to load NIF
> library c:/PROGRA~2/ERL58~1.3/lib/crypto-2.0.2.1/priv/lib/crypto: 'The
> specified module could not be found.'"}}
> ** exception error: undefined function crypto:start/0
>
> ----------
>
> C:\Program Files (x86)\erl5.8.3\lib\crypto-2.0.2.1\priv\lib
> does contain crypto.dll. Installing a 64bit version of OpenSSL for Windows
> doesn't help.
>
> The crypto documentation refers to Win32 - should I infer that crypto will
> not work on 64bit Windows operating systems?
>
>
>
> Regards
>
> Emile
>
>
The crypto.dll needs to find libeay32.dll (on 32-bit systems at least, not
sure what it is called on 64-bit) and if it finds the wrong one (an old one
for example) then crypto.dll won't load.

We've had a lot of fun recently with machines where some rather annoying
miscreant application plonked it's version of libeay32.dll in the
\Windows\system32 folder. And due to the wonders of Windows DLL loading
paths, that takes precedence before anything in your PATH.

One way of "solving" this kind of thing is to copy the OpenSSL dlls into the
same folder where your erl.exe is getting started from. Cause that in turn
takes precedence over the Windows one. Grrr.

Robby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110329/a373b9ea/attachment.htm>


More information about the erlang-questions mailing list