Ahoj Johanko,
rekl bych, ze pri tom navazani komunikace je to trochu jinak (nebo jsem spatne pochopil napsane? Cetl jsem si to nekolikrat...). Budu se drzet konvence klient krtecek a server pikatchu.
A: Navazani sifrovaneho spojeni:
A1: krtecek pozada pikatchu o pikatchu_public_key.
A2: krtecek vygeneruje CISLO1, zasifruje jej pomoci pikatchu_public_key a vysledek posle pikatchu
A3: pikatchu si pomoci pikatchu_private_key odkryptuje CISLO1, ktere pak pouzivaji pro sifrovani spojeni
B: Overeni, ze krtecek je skutecne krtecek (deje se jiz na sifrovanem spojeni)
B1: krtecek posle pikatchu krtecek_public_key
B2: pikatchu se koukne do authorized_keys, jestli tam krtecek_public_key ma, pokud ano, vygeneruje CISLO2 a posle krteckovi CISLO2 zasifrovane pomoci krtecek_public_key
B3: krtecek pomoci krtecek_private_key odsifruje zasifrovane CISLO2 a posle pikatchu odsifrovane CISLO2
B4: pikatchu porovna zaslane CISLO2 s puvodnim CISLO2, pokud jsou stejne, krtecek uspesnym odsifrovanim prokazal, ze je skutecne krtecek
Umyslne jsem vynechal zbytne veci, napr. v A ze krtecek si v realu mezi A1 1 A2 zkusi najit pikatchu_public_key ve svem seznamu, pokud ho tam nema, umozni doplneni seznamu, pokud ma, ale lisi se, tak zarve, atd.