next up previous contents index
Next: Modul FTP - File Up: Modul SSL - Secure Previous: Jak pracuje SSL v

Implementace SSL v PETu

 Každý HTTPS požadavek je uvozen klíčovým slovem CONNECT následovaný adresou cílového https serveru, číslem portu a cestu k požadované stránce. Funkce na rozpracování požadavku od klienta pozná, že se jedná o HTTPS požadavek a nastaví typ metody ve struktuře http_header na METHOD_CONNECT. Přehled všech podporovaných metod je možné nalézt v souboru http.h

Modul SSL je volán jen a jen v případě, že se jedná o metodu METHOD_CONNECT. V případě, že je tento modul volán, provádí následující kroky:

net_sslproxy()
Tato funkce int net_sslproxy(int sock,int srvsock) zajišťuje vlastní SSL proxying. Jediné co tato funkce dělá je, že inteligentně kopíruje data z jednoho socketu do druhého a naopak. SSL protokol je stavový protokol a proto není možné jen přečíst data z jednoho socketu a hrubě je zapsat na druhý socket. Je nutné, aby zápis i čtení probíhaly v non-block režimu. Ve smyčce se provádí následující operace:

Těmito operacemi je zaručena stavovost daného protokolu a klient se může s https serverem dohodnout na šifrovacích klíčích.


next up previous contents index
Next: Modul FTP - File Up: Modul SSL - Secure Previous: Jak pracuje SSL v
Stanislav Pavlicek
2000-06-12