Inhaltsverzeichnis
1.1 Install Windows Tools
This page explains each step in detail - ideal for beginners.
1. Visual Studio 2022
What is Visual Studio?
Visual Studio is Microsoft's development environment. It includes:
- C/C++ Compiler (cl.exe) - compiles the OpenSSL source code
- Linker (link.exe) - creates the final DLLs
- nmake - executes build commands
Installation
Option A: Via winget (recommended)
winget install Microsoft.VisualStudio.2022.Community
Option B: Manual Download
- Go to Visual Studio Downloads
- Select „Community“ (free)
- Start the installer
Select Workload
After download, the Visual Studio Installer opens:
- Click „Modify“ (if already installed) or „Install“
- Select: „Desktop development with C++„
- In the right panel, make sure:
- ☑ MSVC v143 - VS 2022 C++ x64/x86 Build-Tools
- ☑ Windows 10/11 SDK (latest version)
- Click „Install“
Important: Installation takes about 10-20 GB and 30-60 minutes!
Verification
After installation:
# 1. Open Developer PowerShell (search in Start Menu) # or load VS environment manually: & "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" # 2. Check compiler cl
Expected output:
Microsoft (R) C/C++ Optimizing Compiler Version 19.xx.xxxxx for x64
2. Windows SDK
What is the Windows SDK?
The Windows SDK contains header files like stdlib.h, windows.h, etc. Without these, the compiler cannot find basic functions.
Installation
Normally the SDK is installed with Visual Studio. If not:
winget install Microsoft.WindowsSDK.10.0.22621
Or via Visual Studio Installer:
- „Individual Components“ tab
- Search: „Windows SDK“
- Select version 10.0.22621 or newer
Verification
# Check if SDK folder exists Test-Path "C:\Program Files (x86)\Windows Kits\10\Include"
Should output True.
3. Strawberry Perl
What is Perl?
Perl is a scripting language. OpenSSL uses Perl scripts for:
Configure- Detects the system and creates build files- Code generation for different platforms
Why Strawberry Perl?
There are several Perl distributions for Windows:
- Strawberry Perl - Recommended, includes everything needed, easy to install
- ActivePerl - Commercial, not recommended
- Cygwin Perl - Can work, but more complicated
Installation
winget install StrawberryPerl.StrawberryPerl
Default installation path: C:\Strawberry\perl\bin
Verification
Open new terminal, then:
perl -v
Expected output:
This is perl 5, version 38, subversion 2 (v5.38.2)
If „perl is not recognized“ appears: Restart computer or set PATH manually.
4. NASM (Netwide Assembler)
What is NASM?
NASM is an assembler - it translates assembly code into machine code.
OpenSSL contains hand-optimized assembly routines for:
- AES encryption (up to 10x faster!)
- SHA hash functions
- Other cryptographic operations
Do I need NASM?
| Situation | NASM needed? |
| ———– | ————- |
| Production build | Yes, highly recommended |
| Development/test | Optional |
| FIPS build | Yes, mandatory |
Without NASM: OpenSSL compiles but uses slower C implementations.
Installation
winget install NASM.NASM
Important: NASM is often not automatically added to PATH!
Set PATH manually
# Typical NASM path (may vary!) $nasmPath = "$env:LOCALAPPDATA\bin\NASM" # Check if folder exists if (Test-Path $nasmPath) { Write-Host "NASM found in: $nasmPath" } else { # Check alternative paths Get-ChildItem -Path "C:\" -Filter "nasm.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty DirectoryName }
Then set PATH (temporary for this session):
$env:PATH = "$nasmPath;$env:PATH"
Verification
nasm -v
Expected output:
NASM version 2.16.01 compiled on Dec 21 2023
5. Git
What is Git?
Git is a version control system. You need it to:
- Download OpenSSL source code from GitHub
- Select the correct version (tag)
Installation
winget install Git.Git
Verification
git --version
Expected output:
git version 2.43.0.windows.1
Summary
After installing all tools, the following should work:
# Load Visual Studio environment & "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" # Check all tools cl # → Microsoft (R) C/C++ Optimizing Compiler... perl -v # → This is perl 5... nasm -v # → NASM version 2.xx... git --version # → git version 2.xx...
Tip: Save these commands in a check-tools.ps1 file for later use.
Continue to
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional