Building OpenSSL

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Building OpenSSL

Osman Zakir
I want to build OpenSSL for an x64 Windows 10 OS.  I tried to configure it on the Developer Command Prompt for VS 2019 by running "perl Configure VC-WIN64A", but it gave me this error:

"
Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module) (@INC contains: C:/openssl-1.1.1d/util/perl C:/Perl64/site/lib C:/Perl64/lib) at C:/Perl64/site/lib/ActivePerl/Config.pm line 400.
Compilation failed in require at C:/Perl64/site/lib/ExtUtils/MakeMaker.pm line 9.​
BEGIN failed--compilation aborted at C:/Perl64/site/lib/ExtUtils/MakeMaker.pm line 9.​
Compilation failed in require at C:/Perl64/site/lib/IPC/Cmd.pm line 235.
"

2 questions:
  1.  How can I get Win32/Console.pm and Win32::Console?  
  2.  What does the "A" mean in "Win64A", and what happens if I put "Win64I" instead?
Thanks in advance.
Reply | Threaded
Open this post in threaded view
|

Re: Building OpenSSL

Osman Zakir
Okay, I was able to build it and am running the tests now.  

How do I know whether to enable RC5 or MD4, though?  Which one do I enable?  Sorry if this is a stupid question.  And what's "afalg" (in "test_afalf")?  
Reply | Threaded
Open this post in threaded view
|

Re: Building OpenSSL

Osman Zakir
I tried enabling both MD2 and RC5 but I got linker errors when trying to build:

"
Creating library apps\openssl.lib and object apps\openssl.exp
speed.obj : error LNK2019: unresolved external symbol EVP_md2 referenced in function EVP_Digest_MD2_loop​
speed.obj : error LNK2019: unresolved external symbol MD2_options referenced in function speed_main​
version.obj : error LNK2001: unresolved external symbol MD2_options​
speed.obj : error LNK2019: unresolved external symbol RC5_32_set_key referenced in function speed_main​
speed.obj : error LNK2019: unresolved external symbol RC5_32_cbc_encrypt referenced in function speed_main​
apps\openssl.exe : fatal error LNK1120: 4 unresolved externals​
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX64\x64\link.EXE"' : return code '0x460'​
Stop.​
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\HostX64\x64\nmake.exe"' : return code '0x2'​
Stop.
"

Any help would be appreciated.  Thanks in advance.

From: openssl-users <[hidden email]> on behalf of Osman Zakir <[hidden email]>
Sent: Thursday, September 12, 2019 9:39 PM
To: [hidden email] <[hidden email]>
Subject: Re: Building OpenSSL
 
Okay, I was able to build it and am running the tests now.  

How do I know whether to enable RC5 or MD4, though?  Which one do I enable?  Sorry if this is a stupid question.  And what's "afalg" (in "test_afalf")?  
Reply | Threaded
Open this post in threaded view
|

RE: Building OpenSSL

Michael Wojcik
> From: openssl-users [mailto:[hidden email]] On Behalf Of Osman Zakir
> Sent: Thursday, September 12, 2019 13:45

> I tried enabling both MD2 and RC5

Your previous note said "RC5 or MD4". Are you talking about MD2 or MD4?

> but I got linker errors when trying to build:

How did you "enable" them? If you reconfigured, did you do a "make clean" afterward before trying to build?

> How do I know whether to enable RC5 or MD4, though?

That depends on the needs of your application(s).

> Which one do I enable?  Sorry if this is a stupid question.

Neither. Either. Both. (All, since there seems to be some MD2/MD4 confusion here.) It depends entirely on what you're building OpenSSL for. You haven't told us, so we have no way of answering your question.

Most people have no need for MD2, MD4, or RC5.

>  And what's "afalg" (in "test_afalf")?

AF_ALG is a Linux network address family for userland access to the kernel cryptography subystem. OpenSSL's afalg is (I believe) an engine (i.e. an OpenSSL plugin) that lets OpenSSL use AF_ALG for some cryptographic operations. It's similar in purpose to several of the other engines, such as capi (interface to Windows Crypto API) and pkcs11 (interface to crypto hardware supporting the PKCS#11 standard). If that doesn't answer your question, then you probably don't need to know about it.

--
Michael Wojcik
Distinguished Engineer, Micro Focus