<br><br><div class="gmail_quote">On Tue, Mar 29, 2011 at 6:06 PM, Robert Raschke <span dir="ltr"><<a href="mailto:rtrlists@googlemail.com">rtrlists@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br><div class="gmail_quote"><div class="im">On Tue, Mar 29, 2011 at 11:12 AM, Emile Joubert <span dir="ltr"><<a href="mailto:emile@rabbitmq.com" target="_blank">emile@rabbitmq.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
Hi,<br>
<br>
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:<br>
<br>
----------<br>
<br>
Erlang R14B02 (erts-5.8.3) [smp:2:2] [rq:2] [async-threads:0]<br>
<br>
Eshell V5.8.3  (abort with ^G)<br>
1> crypto:start().<br>
<br>
=ERROR REPORT==== 29-Mar-2011::11:05:13 ===<br>
Unable to load crypto library. Failed with error:<br>
"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.'"<br>
OpenSSL might not be installed on this system.<br>
<br>
=ERROR REPORT==== 29-Mar-2011::11:05:13 ===<br>
The on_load function for module crypto returned {error,<br>
                                                 {load_failed,<br>
                                                  "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.'"}}<br>
** exception error: undefined function crypto:start/0<br>
<br>
----------<br>
<br>
C:\Program Files (x86)\erl5.8.3\lib\crypto-2.0.2.1\priv\lib<br>
does contain crypto.dll. Installing a 64bit version of OpenSSL for Windows doesn't help.<br>
<br>
The crypto documentation refers to Win32 - should I infer that crypto will not work on 64bit Windows operating systems?<br>
<br>
<br>
<br>
Regards<br>
<br>
Emile<br>
<br></blockquote></div><div><br>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.<br>

<br>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.<br>

<br>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.<br><br>Robby<br>

<br></div></div>
</blockquote></div><br>Apologies, the last paragraph was meant to read:<br><br>One way of "solving" this kind of thing is to copy the OpenSSL dlls into the same folder where the erl.exe (or werl.exe) that you are running lives. Cause that in turn takes precedence over the Windows one. Grrr.<br>
<br><br>