This page explains each step in detail - ideal for beginners.
Visual Studio is Microsoft's development environment. It includes:
Option A: Via winget (recommended)
winget install Microsoft.VisualStudio.2022.Community
Option B: Manual Download
After download, the Visual Studio Installer opens:
Important: Installation takes about 10-20 GB and 30-60 minutes!
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
The Windows SDK contains header files like stdlib.h, windows.h, etc. Without these, the compiler cannot find basic functions.
Normally the SDK is installed with Visual Studio. If not:
winget install Microsoft.WindowsSDK.10.0.22621
Or via Visual Studio Installer:
# Check if SDK folder exists Test-Path "C:\Program Files (x86)\Windows Kits\10\Include"
Should output True.
Perl is a scripting language. OpenSSL uses Perl scripts for:
Configure - Detects the system and creates build filesThere are several Perl distributions for Windows:
winget install StrawberryPerl.StrawberryPerl
Default installation path: C:\Strawberry\perl\bin
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.
NASM is an assembler - it translates assembly code into machine code.
OpenSSL contains hand-optimized assembly routines for:
| Situation | NASM needed? |
| ———– | ————- |
| Production build | Yes, highly recommended |
| Development/test | Optional |
| FIPS build | Yes, mandatory |
Without NASM: OpenSSL compiles but uses slower C implementations.
winget install NASM.NASM
Important: NASM is often not automatically added to PATH!
# 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"
nasm -v
Expected output:
NASM version 2.16.01 compiled on Dec 21 2023
Git is a version control system. You need it to:
winget install Git.Git
git --version
Expected output:
git version 2.43.0.windows.1
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.
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional