# TIIGER TLS ## Building ### LINUX Systémové a softvérové špecifikácie:
- Ubuntu 20.04.6 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64) - gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) - GNU Make 4.2.1 built for x86_64-pc-linux-gnu - Rust version 1.72.1 (d5c2e9c34 2023-09-13) [update na 1.73.0 (cc66ad468 2023-10-03)] - MIRACL core v4.1 - Python 3.8.10 - libsodium 1.0.19 ## Server ```curl https://sh.rustup.rs -sSf | sh``` - inštalácia potrebných nástrojov na kompiláciu kódu v jazyku Rust ``` sudo apt install python3 git clone https://github.com/miracl/core.git cd core/rust python3 config64.py test cd ../.. ``` - inštalácia pythonu (ak sa ešte nenechádza v systéme), stiahnutie a auto-build MIRACL knižnice ``` git clone https://github.com/Crypto-TII/TLS1.3.git cd TLS1.3/rust/server nano Cargo.toml ``` - stiahnutie TIIGER TLS knižnice - v súbore Cargo.toml je nutné správne nalinkovať cestu k zložke *mcore*, ktorá vznikla auto-buildom MIRACL knižnice v predošlom kroku ``` cargo build cargo run ``` - príkazy na kompiláciu serveru a jeho následné spustenie - server je defaultne prístupný cez webový prehliadač na adrese https://127.0.0.1:4433; pripojenie vytvoreným klientom je popísané nižšie TODO:
:white_square_button: doplniť popis pre zmenu podporovaných certifikátov ## Klient ``` sudo apt install python3 git clone https://github.com/miracl/core.git *// môžeme preskočiť ak už máme python3 a miracl* cd core/cpp python3 config64.py test cd ../.. ``` - auto-build MIRACL knižnice pre jazyk C++ ``` wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz tar xvf LATEST.tar.gz cd libsodium-stable/ ./configure make && make check sudo make install ``` - stiahnutie a inštalácia knižnice libsodium ``` git clone https://github.com/Crypto-TII/TLS1.3.git cd TLS1.3/cpp mkdir -p sal/miracl/includes cp /core/cpp/core.a sal/miracl cp /core/cpp/*.h sal/miracl/includes ``` ``` cmake -DSAL=MIRACL_SODIUM -D CMAKE_CXX_COMPILER=/usr/bin/gcc cd CMakeFiles/client.dir nano link.txt ``` - na koniec riadku za prepínač *-lsodium* pridáme prepínač *-lstdc++* ``` cd ../.. make ./client ``` TODO:
:white_square_button: doplniť popis funkcií podporovaných klientom ### WINDOWS Systémové a softvérové špecifikácie:
- Microsoft Windows 10 Home, build 10.0.19045 - gcc version 13.2.0 (MinGW-W64 x86_64-ucrt-posix-seh, built by Brecht Sanders) - Rust version 1.73.0 - Python 3.10.8 ## Server https://www.python.org/downloads/windows/ - stiahnutie a inštalácia pythonu pre Windows - PATH je možné nastaviť priamo pri inštalácii (inak je nutné nastaviť ju manuálne) - Python3 je tiež možné záskať z Microsoft Storu https://github.com/miracl/core/archive/refs/heads/master.zip - stiahnutie MIRACL knižnice (identická s verziou pre Linux, vrátane konfigurácie) https://win.rustup.rs/ - stiahnutie .exe súboru na rýchlu inštaláciu Rustu a ďalších nástrojov ``` cd core/rust python config64.py test cd ../.. ``` - auto-build MIRACL knižnice prostredníctvom python scriptu ``` cd .\TLS1.3\rust\server\ notepad.exe .\Cargo.toml ``` - v súbore Cargo.toml je nutné správne nalinkovať cestu k zložke *mcore*, ktorá vznikla auto-buildom MIRACL knižnice v predošlom kroku ``` cargo build cargo run ``` - príkazy na kompiláciu serveru a jeho následné spustenie - správne spustenie serveru môžeme overiť na adrese https://127.0.0.1:4433 ## Client ``` cd core\cpp python config64.py test cd ../.. ``` - https://download.libsodium.org/libsodium/releases/libsodium-1.0.19-stable-mingw.tar.gz
:white_check_mark: doplniť postup linkovania knižnice s prekladačom gcc - nájdeme miesto, kde sme uložili knižnicu WinLibs a prejdeme do zložky */mingw64/lib/gcc/x86_64-w64-mingw32/11.2.0/* - do tejto zložky skopírujeme súbor libsodium.a zo stiahnutého balíka knižnice libsodium */libsodium-1.0.19-stable-mingw.tar/libsodium-win64/lib/* - následne skopírujeme celý obsah */libsodium-1.0.19-stable-mingw.tar/libsodium-win64/include/* do zložky */mingw64/lib/gcc/x86_64-w64-mingw32/11.2.0/include/* ``` cd TLS1.3/cpp mkdir -p sal/miracl/includes cp /core/cpp/core.a sal/miracl cp /core/cpp/*.h sal/miracl/includes ``` ``` cmake -DSAL=MIRACL_SODIUM -D CMAKE_CXX_COMPILER=D:/mingw64/bin/gcc.exe -G "Unix Makefiles" ``` :white_square_button: doplniť úpravy v súboroch tls_sockets.h a tls_sockets.cpp - tls_sockets.h:22:10: fatal error: sys/socket.h: No such file or directory #include - tls_sockets.cpp:31:47: error: cannot convert 'timeval*' to 'const char*' setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); ``` cd CMakeFiles/client.dir ``` - do súboru *linkLibs.rsp* pridáme prepínače *-lws2_32* a *-lstdc++* ``` cd ../.. make ``` ## References