update readme
This commit is contained in:
parent
4b6d13bbaa
commit
e187764f3d
@ -7,8 +7,8 @@ Tento priečinok obsahuje detailný postup inštalácie potrebných knižníc na
|
|||||||
Inštalované a testované na:
|
Inštalované a testované na:
|
||||||
| Platform | OS | compiler | cmake | ninja |
|
| Platform | OS | compiler | cmake | ninja |
|
||||||
|:-----------------:|:---------------------------:|:------------------------------------------------:|:-------:|:-------:|
|
|:-----------------:|:---------------------------:|:------------------------------------------------:|:-------:|:-------:|
|
||||||
| Linux | Ubuntu 20.04.1 WLS2 | gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) | 1.10.1 | 3.22.1 |
|
| Linux | Ubuntu 22.04.3 LTS <br> (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64) | gcc version 11.4.0 <br> (Ubuntu 11.4.0-1ubuntu1~22.04) | version 1.10.1 | version 3.22.1 |
|
||||||
| Windows | Windows 10.0.19043 | gcc version 14.0.0 20240107 (experimental) (MinGW-W64 x86_64-msvcrt-posix-seh) | 1.11.1 | 3.28.1 |
|
| Windows | Windows 10.0.22631 | gcc version 14.0.0 20240107 (experimental) <br> (MinGW-W64 x86_64-msvcrt-posix-seh) | version 1.11.1 | version 3.28.1 |
|
||||||
|
|
||||||
### :exclamation: **OpenSSL 3.2 je minimálna verzia OpenSSL, ktorá umožňuje využívať PQ algoritmy pri komunikácii** :exclamation:
|
### :exclamation: **OpenSSL 3.2 je minimálna verzia OpenSSL, ktorá umožňuje využívať PQ algoritmy pri komunikácii** :exclamation:
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ sudo ldconfig -v
|
|||||||
|
|
||||||
#### LIBOQS
|
#### LIBOQS
|
||||||
```
|
```
|
||||||
sudo apt install astyle cmake gcc ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz python3-yaml valgrind -y
|
sudo apt install astyle cmake ninja-build libssl-dev python3-pytest python3-pytest-xdist unzip xsltproc doxygen graphviz python3-yaml valgrind -y
|
||||||
git clone https://github.com/open-quantum-safe/liboqs.git
|
git clone https://github.com/open-quantum-safe/liboqs.git
|
||||||
cd liboqs/
|
cd liboqs/
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
@ -67,7 +67,7 @@ cd /usr/local/ssl/
|
|||||||
sudo nano openssl.cnf
|
sudo nano openssl.cnf
|
||||||
```
|
```
|
||||||
|
|
||||||
- po inštalácii pridáme do konfiguračného súboru modul, ktorý permanentne aktivuje OQS provider a jeho funkcie pri používani OpenSSL
|
- po inštalácii pridáme do konfiguračného súboru *openssl.cnf* modul, ktorý permanentne aktivuje OQS provider a jeho funkcie pri používani OpenSSL
|
||||||
- `Note: Be sure to always activate the "default" provider`
|
- `Note: Be sure to always activate the "default" provider`
|
||||||
- v prípade potreby je možné konfiguračný súbor nahradiť súborom z tohto priečinku
|
- v prípade potreby je možné konfiguračný súbor nahradiť súborom z tohto priečinku
|
||||||
```
|
```
|
||||||
@ -78,32 +78,112 @@ oqsprovider = oqsprovider_sect
|
|||||||
activate = 1
|
activate = 1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- overiť funkčnosť knižníc môžeme príkazom `openssl list -providers`, ktorý by nám mal vrátiť výsledok:
|
||||||
|
```
|
||||||
|
Providers:
|
||||||
|
default
|
||||||
|
name: OpenSSL Default Provider
|
||||||
|
version: 3.2.0
|
||||||
|
status: active
|
||||||
|
oqsprovider
|
||||||
|
name: OpenSSL OQS Provider
|
||||||
|
version: 0.5.4-dev
|
||||||
|
status: active
|
||||||
|
```
|
||||||
|
|
||||||
### WINDOWS
|
### WINDOWS
|
||||||
|
|
||||||
Winlibs
|
#### WinLibs gcc
|
||||||
|
- zo stránky [WinLibs GCC](https://winlibs.com) stiahneme .zip archív, rozbalíme ho a skopírujeme celú zložku na nami určené miesto
|
||||||
|
- prejdeme do *Settings-System-Advanced system settings-Environment Variables-System variables-Path-Edit* a pridáme cestu k priečinku s prekladačom, napríklad: `D:\mingw64\bin\`
|
||||||
|
- nastaviť cestu k prekladaču môžeme aj úpravou premennej v príkazovom riadku príkazom `SET PATH=\path\;%PATH%`, napríklad `SET PATH=D:\mingw64\bin\;%PATH%`
|
||||||
|
- v priečinku /bin/ sa nachádza aplikácia *mingw32-make.exe*, ktorú si pre jednoduchšie používanie premenujeme na *make.exe*
|
||||||
|
|
||||||
copy + path update
|
#### CMake
|
||||||
make rename
|
- zo stránky [CMake](https://cmake.org/download/) v sekcii *Binary distributions stiahneme* Windows x64 ZIP súbor, ktorý rozbalíme na nami určené miesto
|
||||||
|
- prejdeme do *Settings-System-Advanced system settings-Environment Variables-System variables-Path-Edit* a pridáme cestu k */bin/* priečinku, napríklad: D:\cmake-3.28.1-windows-x86_64\bin\`
|
||||||
|
- nastaviť cestu k súborom môžeme aj príkazom `SET PATH`, napríklad `SET PATH=D:\cmake-3.28.1-windows-x86_64\bin\;%PATH%`
|
||||||
|
|
||||||
|
|
||||||
LIBOQS
|
#### OpenSSL (FireDaemon OpenSSL)
|
||||||
|
- v našom prípade sme využívali predkompilovanú verziu OpenSSL zo stránky [FireDaemon OpenSSL](https://kb.firedaemon.com/support/solutions/articles/4000121705)
|
||||||
|
- stiahneme .zip archív, rozbalíme ho a priečinky *x64* a *ssl* skopírujeme na nami vybrané miesto
|
||||||
|
- prejdeme do priečinku *ssl* a súbor *openssl.cnf* skopírujeme do priečinku vyššie (k predošlým priečinkom *x64* a *ssl*)
|
||||||
|
- nastavíme cestu k aplikácii OpenSSL a konfiguračnému súboru prostredníctvom konzolových príkazov:
|
||||||
```
|
```
|
||||||
|
set OPENSSL_HOME=C:\Program Files\Common Files\FireDaemon SSL 3
|
||||||
|
set OPENSSL_CONF=%OPENSSL_HOME%\ssl\openssl.cnf
|
||||||
|
set PATH=%OPENSSL_HOME%\bin;%PATH%
|
||||||
|
```
|
||||||
|
- z priečinku */bin/* skopírujeme súbory *libssl.lib* a *libcrypto.lib* do */lib/* priečinku nášho prekladača, v našom prípade teda do `D:\mingw64\lib\`
|
||||||
|
|
||||||
|
#### LIBOQS
|
||||||
|
- stiahneme .zip súbor knižnice liboqs z oficiálneho GITu - [liboqs](https://github.com/open-quantum-safe/liboqs)
|
||||||
|
- stiahnutý súbor rozbalíme na nami zvolené miesto
|
||||||
|
- následne knižnicu nainštalujeme týmito príkazmi:
|
||||||
|
```
|
||||||
|
cd liboqs-main
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -GNinja .. -DOPENSSL_ROOT_DIR='D:\TUKE\DIPLOMOVKA\WIN\openssl-3\x64\bin\' -DOQS_ALGS_ENABLED=ALL -DCMAKE_C_LINK_LIBRARY_FLAG="-lssl -lcrypto"
|
cmake -GNinja .. -DOPENSSL_ROOT_DIR='C:\Program Files\Common Files\FireDaemon SSL 3\bin\' -DOQS_ALGS_ENABLED=ALL -DCMAKE_C_LINK_LIBRARY_FLAG="-lssl -lcrypto"
|
||||||
d:\mingw64\lib\ - nakopírované ssl a crypto
|
|
||||||
cmake_install.cmake - set(CMAKE_INSTALL_PREFIX - uprava cesty kde chceme inštalovať
|
|
||||||
```
|
|
||||||
OQS-PROVIDER
|
|
||||||
```
|
|
||||||
cmake -GNinja .. -DOPENSSL_ROOT_DIR="C:\Program Files\Common Files\FireDaemon SSL 3" -Dliboqs_DIR=d:\liboqs\lib\cmake\liboqs\ -DBUILD_SHARED_LIBS=OFF
|
|
||||||
ninja
|
ninja
|
||||||
ninja install
|
ninja install
|
||||||
```
|
```
|
||||||
|
Poznámka: premennú `OPENSSL_ROOT_DIR` je potrebné definovať ak sme OpenSSL umiestnili na iný disk než na aký inštalujeme liboqs, cmake nás informuje či bola manuálne nastavená premenná ignorovaná
|
||||||
|
|
||||||
- oqs_test_tlssig.c - added certsdir mingw64 check
|
Poznámka2: vo vygenerovanom súbore *cmake_install.cmake* sa nachádza premenná `set(CMAKE_INSTALL_PREFIX)`, ktorá umožňuje zmeniť miesto inštalácie celej knižnice
|
||||||
- alebo ignorovat testy
|
|
||||||
|
|
||||||
|
Poznámka3: podľa nastavení systému môžu byť potrebné na vykonanie príkazu `ninja install` administrátorské práva
|
||||||
|
|
||||||
config do hlavnej zložky - c:\Program Files\Common Files\FireDaemon SSL 3\
|
#### OQS-PROVIDER
|
||||||
|
- stiahneme .zip súbor knižnice oqs-provider z oficiálneho GITu - [oqsprovider](https://github.com/open-quantum-safe/oqs-provider)
|
||||||
|
- stiahnutý súbor rozbalíme na nami vybrané miesto
|
||||||
|
- v súbore *CMakeLists.txt* pridáme na riadok 90 a 91 pred funkcie *enable_testing()* a *add_subdirectory(test)* symbol `#`, ktorým zakomentujeme a nezrealizujeme kompiláciu testov - pri kompilácii testu *oqs_test_tlssig.c* by nám vyskočila chyba, ktorá by spôsobila, že by celá kompilácia knižnice spadla
|
||||||
|
```
|
||||||
|
cmake -GNinja -DOPENSSL_ROOT_DIR="C:\Program Files\Common Files\FireDaemon SSL 3" -Dliboqs_DIR=d:\liboqs\lib\cmake\liboqs\ -S . -B _build -DBUILD_SHARED_LIBS=OFF
|
||||||
|
cd _build
|
||||||
|
ninja
|
||||||
|
ninja install
|
||||||
|
```
|
||||||
|
Poznámka: premennú *OPENSSL_ROOT_DIR* je potrebné definovať ak sme OpenSSL umiestnili na iný disk než na aký inštalujeme liboqs, cmake nás informuje či bola manuálne nastavená premenná ignorovaná
|
||||||
|
|
||||||
|
Poznámka2: cmake nás môže upozorniť na to, že nenašiel v našom systéme knižnicu liboqs, čo sa môže stať, ak sme pri inštalácii knižnice liboqs zmenili premennú CMAKE_INSTALL_PREFIX. cmake nás upozorní na to, že premenná `liboqs_DIR` musí obsahovať cestu k súboru *liboqsTargets.cmake*
|
||||||
|
|
||||||
|
Poznámka3: chybu v teste *oqs_test_tlssig.c* môžeme opraviť aj doplnením podmienenej kompilácie pre MINGW64 kompilátor a úpravou problematickej definície funkcie *mkdir*, z ktorej odstránime druhý argument
|
||||||
|
|
||||||
|
- po inštalácii všetkých knižníc pridáme do konfiguračného súboru *openssl.cnf* modul, ktorý permanentne aktivuje OQS provider a jeho funkcie pri používani OpenSSL
|
||||||
|
- `Note: Be sure to always activate the "default" provider`
|
||||||
|
- v prípade potreby je možné konfiguračný súbor nahradiť súborom z tohto priečinku
|
||||||
|
```
|
||||||
|
[provider_sect]
|
||||||
|
default = default_sect
|
||||||
|
oqsprovider = oqsprovider_sect
|
||||||
|
[oqsprovider_sect]
|
||||||
|
activate = 1
|
||||||
|
```
|
||||||
|
|
||||||
|
- overiť funkčnosť knižníc môžeme príkazom `openssl list -providers`, ktorý by nám mal vrátiť výsledok:
|
||||||
|
```
|
||||||
|
Providers:
|
||||||
|
default
|
||||||
|
name: OpenSSL Default Provider
|
||||||
|
version: 3.2.0
|
||||||
|
status: active
|
||||||
|
oqsprovider
|
||||||
|
name: OpenSSL OQS Provider
|
||||||
|
version: 0.5.4-dev
|
||||||
|
status: active
|
||||||
|
```
|
||||||
|
|
||||||
|
## References
|
||||||
|
[OpenSSL](https://github.com/openssl/openssl)
|
||||||
|
|
||||||
|
[liboqs](https://github.com/open-quantum-safe/liboqs)
|
||||||
|
|
||||||
|
[oqsprovider](https://github.com/open-quantum-safe/oqs-provider)
|
||||||
|
|
||||||
|
[WinLibs GCC](https://winlibs.com)
|
||||||
|
|
||||||
|
[CMake](https://cmake.org/)
|
||||||
|
|
||||||
|
[FireDaemon OpenSSL](https://kb.firedaemon.com/support/solutions/articles/4000121705)
|
||||||
|
Loading…
Reference in New Issue
Block a user