TLS 1.3 KLIENT S PODPOROU PRE PQ ALGORITMY
Originalna verzia klienta od Michaela Scotta:
https://github.com/Crypto-TII/TLS1.3

Upravena verzia pre Windows platformu v ramci Diplomovej prace
Bc. Jozef Šimko

Navod na kompilaciu originalnej verzie:
https://git.kemt.fei.tuke.sk/js331zc/MastersThesis/src/branch/master/TIIGER_TLS

Prikazy na kompilaciu (Windows):
cmake -G "MinGW Makefiles" -DCMAKE_CXX_COMPILER=C:/mingw64/bin/gcc.exe
mingw32-make

alebo 

cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=C:/mingw64/bin/gcc.exe
make

Priklad pouzitia:
./client.exe -r test.openquantumsafe.org:6109

18.04.2024
---------------------------
- pridana RDTSC instrukcia na meranie casu pri overovani podpisu
- oprava vypisu povodnej funkcie clock() - vysledok je v sekundach
- pridana podmienena kompilacia vo funkcii SAL_initLib() pre spravne
skompilovanie kniznice bez PQ nastavenia 

11.04.2024
---------------------------
- testovane s OpenSSL nativnym serverom s podporou pre PQ algoritmy
(OpenSSL 3.3.0, liboqs 0.10.0, oqsprovider 0.5.3)


29.02.2024
---------------------------
- vymazanie nadbytocnych suborov: blogy, wifi.h, arduino/client.cpp,
nevyuzite .xpp subory
- uprava CMakelistu:
	- doplnenie prepinacov pre Windows platformu -lws2_32
	- pridany prepinac pre linkovanie .cpp suborov s gcc prekladacom -lstdc++
	- pridany prepinac pre linkovanie liboqs kniznice -loqs
	- odstranenie nepotrebnych podmienok a funkcii

tls_octads.h
tls_sockets.h
tls_logger.cpp
tls_octads.cpp
tls_sockets.cpp
- odstranenie funkcii pre ARDUINO

tls_sockets.h
- pridana podpora pre Windows

tls_x509.h
- definovanie novych premennych pouzitych pre PQ algoritmy

tls1_3.h
- zmenene hodnoty vybranych premennych, prisposobene pre potreby vybranych PQ 
algoritmov
- pridanie ID pre nove PQ algoritmy

tls_cacerts.cpp
- pridany root CA pre lokalny openssl server
- pridany root CA pre test server - https://test.openquantumsafe.org/

tls_cert_chain.cpp
- pridane funkcie na overenie podpisu vybranych PQ algoritmov

tls_logger.cpp
- doplnene vypisy pre PQ algoritmy

tls_sal.cpp
- pridana kniznica liboqs
- modifikacia (pseudo)nahodneho generatora cisel - vymena miracl core funkcie za 
liboqs funkciu
- pridane funkcie pre generovanie sukromneho a verejneho kluca pre KEM
protokoly
- pridane funkcie na decapsulaciu pre KEM protokoly
- pridane funkcii na overenie a podpis novymi PQ algoritmami

tls_sockets.cpp
- uprava funkcie setsockopt(), aby fungovala aj na Windows platforme

tls_x509.cpp
- pridane OID pre vybrane PQ algoritmy
- pridane funkcie pre ziskanie verejneho a sukromneho kluca z PQ certifikatov

TESTOVANIE
Prostredie a nastroje:
- testovane na Windows 10.0.22631 x64
- cmake 3.28.2 , GNU Make 4.4.1 , gcc version 13.2.0 - sucast WinLibs 13.2.0
- miracl core 4.1
- liboqs 0.9.2

Testy:
- testovane s OpenSSL nativnym serverom s podporou pre PQ algoritmy
(OpenSSL 3.2.1, oqsprovider 0.5.3)

- testovane na test serveroch https://test.openquantumsafe.org/
- vysledky testov v prilozenom subore OQS_TEST_results.txt








