====== 3. Gradnja ======
Tukaj boste izvedeli, kako prevesti OpenSSL za različne platforme.
----
===== Katero gradnjo potrebujem? =====
^ Cilj ^ Platforma ^ Navodila ^
| .NET na Windows | Windows x64 | [[.:windows-x64|Windows x64 gradnja]] |
| FIPS 140-3 skladnost | Windows x64 | [[.:windows-fips|FIPS gradnja]] |
| Blazor WebAssembly | WASM | [[.:wasm-blazor|WASM/Blazor gradnja]] |
| Docker/Container | Linux | [[.:linux-wsl|Linux gradnja (WSL)]] |
----
===== Pomoč pri odločitvi =====
**Niste prepričani?** Začnite z [[.:windows-x64|Windows x64 gradnjo]] - pokriva večino primerov uporabe.
**Ali potrebujem FIPS?**
* Državni organi / Javna uprava → **Da**
* Banke / Finančni sektor → **Da**
* Zdravstvo → **Pogosto da**
* Interne poslovne aplikacije → **Večinoma ne**
**Ali potrebujem WASM?**
* Blazor WebAssembly aplikacija → **Da**
* Blazor Server aplikacija → **Ne** (uporabi Windows gradnjo)
* Strežniška aplikacija → **Ne**
----
===== Pregled gradnje =====
==== Windows x64 (standardno) ====
Najpogostejša gradnja za .NET aplikacije:
perl Configure VC-WIN64A --prefix=D:\Projects\openssl-3.6.0\bin
nmake
nmake install_sw
**Rezultat:**
* ''libcrypto-3-x64.dll'' - Kriptografska knjižnica
* ''libssl-3-x64.dll'' - TLS knjižnica
* ''openssl.exe'' - Orodje ukazne vrstice
→ [[.:windows-x64|Popolna navodila]]
==== Windows x64 FIPS ====
Za FIPS 140-3 skladnost:
perl Configure VC-WIN64A enable-fips --prefix=D:\Projects\openssl-3.6.0\bin
nmake
nmake install_sw install_fips
**Dodatni rezultat:**
* ''fips.dll'' - FIPS Provider modul
* ''fipsmodule.cnf'' - FIPS konfiguracija
→ [[.:windows-fips|Popolna navodila]]
==== WASM za Blazor ====
Za Blazor WebAssembly:
# V WSL z Emscripten
emconfigure ./Configure linux-generic32 no-asm no-threads no-shared
emmake make
**Rezultat:**
* ''openssl.js'' - JavaScript ovoj
* ''openssl.wasm'' - WebAssembly modul
→ [[.:wasm-blazor|Popolna navodila]]
==== Linux (v WSL) ====
Za Docker vsebnike ali Linux strežnike:
./Configure linux-x86_64 --prefix=/opt/openssl
make -j$(nproc)
make install
**Rezultat:**
* ''libcrypto.so.3'' - Shared Library
* ''libssl.so.3'' - TLS Library
→ [[.:linux-wsl|Popolna navodila]]
----
===== Možnosti gradnje =====
Najpomembnejše možnosti ''Configure'':
^ Možnost ^ Opis ^
| ''VC-WIN64A'' | Cilj: Visual C++, Windows 64-bit |
| ''linux-x86_64'' | Cilj: Linux 64-bit |
| ''--prefix='' | Namestitveni imenik |
| ''--openssldir='' | Konfiguracijski imenik |
| ''no-asm'' | Brez assembly (počasneje, a brez NASM) |
| ''no-shared'' | Samo statične knjižnice |
| ''enable-fips'' | Aktiviranje FIPS Provider |
| ''no-threads'' | Brez podpore za niti (za WASM) |
----
===== Trajanje gradnje =====
^ Platforma ^ Strojna oprema ^ Trajanje ^
| Windows x64 | i7, 16GB RAM | 10-15 min |
| Windows x64 | i5, 8GB RAM | 20-30 min |
| WASM | Poljubno | 5-10 min |
| Linux | 4 jedra | 5-10 min |
----
===== Naprej na =====
* [[.:windows-x64|Windows x64 gradnja - Korak za korakom]]
* [[wvds:sl:openssl:testen:start|4. Testiranje - Preverjanje namestitve]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//