Patch title: Release 92 bulk changes
Abstract:
File: /protocol/http/site.page
Key:
    Removed line
    Added line
   
module "/pliant/util/crypto/rsa.pli"
module "/pliant/util/crypto/legal.pli"
module "/pliant/admin/file.pli"
module "/pliant/language/context.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/fullpliant/user.pli"
module "/pliant/protocol/dns/name.pli"
module "site.pli"
module "/pliant/language/stream.pli"
module "/pliant/util/network/ping.pli"
module "/pliant/util/encoding/base64.pli"


  page button "Test strong crypto access"
    var Str host := sid
    var CBool ok := true
    if user_secret_database:data:user:user_name:private_key=
      text "You have no private key !" ; eol
      ok := false
    eif user:user_name:public_key=""
      text "You have no public key !" ; eol
      ok := false
    if site:host:public_key<>"" and name_database:data:host:
      text "'"+host+"' is defined both as a web site and as 
      ok := false
    eif site:host:public_key="" and name_database:data:host:
      text "This computer does not know '"+host+"' public ke
      ok := false
    if net_ping:host=failure
      text "Cannot access '"+host+"' through the network !" 
module "/pliant/util/crypto/rsa.pli"
module "/pliant/util/crypto/legal.pli"
module "/pliant/admin/file.pli"
module "/pliant/language/context.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/fullpliant/user.pli"
module "/pliant/protocol/dns/name.pli"
module "site.pli"
module "/pliant/language/stream.pli"
module "/pliant/util/network/ping.pli"
module "/pliant/util/encoding/base64.pli"


  page button "Test strong crypto access"
    var Str host := sid
    var CBool ok := true
    if user_secret_database:data:user:user_name:private_key=
      text "You have no private key !" ; eol
      ok := false
    eif user:user_name:public_key=""
      text "You have no public key !" ; eol
      ok := false
    if site:host:public_key<>"" and name_database:data:host:
      text "'"+host+"' is defined both as a web site and as 
      ok := false
    eif site:host:public_key="" and name_database:data:host:
      text "This computer does not know '"+host+"' public ke
      ok := false
    if net_ping:host=failure
      text "Cannot access '"+host+"' through the network !" 
    var Int port := name_database:data:host:host:http_port
    (var Stream tcp) open "tcp://"+host+"/client/"+(string 500+(shunt port=defined port 80)) in+out+safe
    if tcp=failure
      text "Secured HTTP server service is not running on "+host+" !" ; eol
      ok := false
      ok := false
    else
      var Int port := name_database:data:host:host:http_port
      (var Stream tcp) open "tcp://"+host+"/client/"+(string
      if tcp=failure
        text "Secured HTTP server service is not running on 
    if tcp=success
      tcp writeline "server-site: "+base64_encode:host
      tcp writeline "client-user: "+base64_encode:user_name
      tcp writeline "query-server-key"
      tcp writeline "query-client-key"
      tcp writeline ""
      while { var Str l := tcp readline ; l<>"" }
        l parse "server-key" ":" any:(var Str server_public_key)
        l parse "client-key" ":" any:(var Str client_public_key)
      if server_public_key<>"" and (server_public_key=site:host:public_key or server_public_key=name_database:data:host:host:public_key)
        void
      eif site:host:public_key="" and name_database:data:host:host:public_key=""
        text host+" says that its public key is: " ; eol
        fixed text:server_public_key ; eol
      eif server_public_key=""
        text "'"+host+"' does not have a public key !"
        ok := false
        ok := false
      if tcp=success
        tcp writeline "server-site: "+base64_encode:host
        tcp writeline "client-user: "+base64_encode:user_nam
        tcp writeline "query-server-key"
        tcp writeline "query-client-key"
        tcp writeline ""
        while { var Str l := tcp readline ; l<>"" }
          l parse "server-key" ":" any:(var Str server_publi
          l parse "client-key" ":" any:(var Str client_publi
        if server_public_key<>"" and (server_public_key=site
          void
        eif site:host:public_key="" and name_database:data:h
          text host+" says that it's public key is: " ; eol
          fixed text:server_public_key ; eol
        eif server_public_key=""
          text "'"+host+"' does not have a public key !"
          ok := false
        else
          text "The public key of '"+host+"' on this compute
          text "'"+host+"' says that it's public key is: " ;
          fixed text:server_public_key ; eol
          ok := false
        if client_public_key=user:user_name:public_key
          void
        eif user:user_name:public_key=""
          void # this computer has no public key
        eif client_public_key=""
          text "'"+host+"' does not know your public key !"
          ok := false
        else
          text "Your public key on '"+host+"' is wrong !" ; 
          text "The right one is: " ; eol
          fixed (text user:user_name:public_key) ; eol
          ok := false
      else
        text "The public key of '"+host+"' on this computer seems to be wrong !" ; eol
        text "'"+host+"' says that its public key is: " ; eol
        fixed text:server_public_key ; eol
        ok := false
      if client_public_key=user:user_name:public_key
        void
      eif user:user_name:public_key=""
        void # this computer has no public key
      eif client_public_key=""
        text "'"+host+"' does not know your public key !"
        ok := false
      else
        text "Your public key on '"+host+"' is wrong !" ; eol
        text "The right one is: " ; eol
        fixed (text user:user_name:public_key) ; eol
        ok := false
    if ok
      [Everything seems to be ok.]


    if ok
      [Everything seems to be ok.]