OpenSSL
Status
Status 06 January 2023
Building normally with both clang-cl and VS.
It is now possible to use clang-cl as assembler which enhances performance of several crypto functions.
Downloads
Available LTS in OpenSSL 3.0 and later.
Clang-cl assembler support is available from OpenSSL 3.1
Environment
To build all versions you need Strawberry Perl.
To build the emulated version you will also need NASM.
Source Code
https://github.com/openssl/openssl
Packaged source from the OpenSSL website: /source/index.html (openssl.org)
Compiling (Native)
Configure with
perl Configure VC-WIN64-ARM
Compile with
nmake
Compiling (Emulated)
Configure with
perl Configure VC-WIN64A
Compile with
nmake
Compiling with clang-cl as assembler/compiler
Configure with
perl Configure VC-WIN64-CLANGASM-ARM
for clang-cl as just the assembler.Configure with
perl Configure VC-CLANG-WIN64-CLANGASM-ARM
for clang-cl as the assembler and compiler.Compile with
nmake
Installing
To have two different easily accessible binaries install with
nmake install DESTDIR=...
Benchmarking
Run a fast benchmarking suite with
openssl.exe speed rsa4096
There are several different algorithms/number of bits you can try like
aes
orrsa512
.You can also run without extra arguments for the full benchmark suite, it takes a considerable amount of time.
Blog Post
You can find the blog post for the investigation here: OpenSSL for Windows on Arm | Blog | Linaro