wm withdraw .; #kons_font 11; ## najprostszy przyklad jeszcze raz... # + z tclkit dziala TYLKO wersja v1.4 pakietu tls ?!?!? # ## podsumowanie tworzenia CA i signed certs: # 1. CA.pl -newca; # tworzy CA; (cert tego CA to demoCA/cacert.pem) # 2. CA.pl -newreq; # tworzy prosbe o podpisanie cert # 3. CA.pl -sign; # podpisuje cert # + trzeba obejrzec pliki .pem i wybrac wlasciwe... # + klucz prywatny jest w newreq.pem (usunac pozostala czesc!!) # lappend auto_path ./tls1.4; package re tls #% 1.4; tclkit/ok #lappend auto_path ~/tcl/tls1.6.1; package re tls #% 1.6.1; tclkit/seg.fault. na serwerze #lappend auto_path ./tls1.5; package re tls #% 1.50; tclkit/seg.fault. na serwerze # klient # set s [tls::socket localhost 10000] tls::handshake $s puts $s "A ku ku !!!"; flush $s tls::status $s #% sha1_hash B68DBD973C8AAA38A0BFE6365A37D4D3B6B1FF24 subject {/C=pl/ST=Some-State/O=Internet Widgits Pty Ltd/CN=www1} issuer {/C=pl/ST=Some-State/O=Internet Widgits Pty Ltd/CN=qqq} notBefore {Apr 5 09:16:12 2013 GMT} notAfter {Apr 5 09:16:12 2014 GMT} serial 1 sbits 256 cipher DHE-RSA-AES256-SHA # + tls1.5 close $s tls::ciphers tls1 # serwer # tls::socket -server obsluga \ -keyfile mojkluczpryw.pem \ -certfile mojcert.pem \ 10000 #proc haslo {} {return "qwerty"} proc tls::password {} {return "qwerty"} proc obsluga {s args} { _puts "obsluga, s=$s, args=$args" tls::handshake $s #close $s fileevent $s readable "obslugaKli $s" } proc obslugaKli s { if {[eof $s]} {close $s; return} set linia [gets $s] _puts "obslugaKli, linia=$linia" }