Patch title: Release 93 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 !" 
    var Int port := name_database:data:host:host:http_port
    (var Stream tcp) open "tcp://"+host+"/client/"+(string 5
    if tcp=failure
      text "Secured HTTP server service is not running on "+
      ok := false
    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 ""
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 5
    if tcp=failure
      text "Secured HTTP server service is not running on "+
      ok := false
    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 ""
      var List:Str answer
      while { var Str l := tcp readline ; l<>"" }
      while { var Str l := tcp readline ; l<>"" }
        answer += l
        l parse "server-key" ":" any:(var Str server_public_
        l parse "client-key" ":" any:(var Str client_public_
      if server_public_key<>"" and (server_public_key=site:h
        void
      eif site:host:public_key="" and name_database:data:hos
        text host+" says that its public key is: " ; eol
        fixed text:server_public_key ; eol
      eif server_public_key=""
        l parse "server-key" ":" any:(var Str server_public_
        l parse "client-key" ":" any:(var Str client_public_
      if server_public_key<>"" and (server_public_key=site:h
        void
      eif site:host:public_key="" and name_database:data:hos
        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 !"
        text "'"+host+"' does not have a public key !" ; eol
        ok := false
      else
        text "The public key of '"+host+"' on this computer 
        text "'"+host+"' says that its public key is: " ; eo
        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 !" ; eo
        text "The right one is: " ; eol
        fixed (text user:user_name:public_key) ; eol
        ok := false
    if ok
      [Everything seems to be ok.]
        ok := false
      else
        text "The public key of '"+host+"' on this computer 
        text "'"+host+"' says that its public key is: " ; eo
        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 !" ; eo
        text "The right one is: " ; eol
        fixed (text user:user_name:public_key) ; eol
        ok := false
    if ok
      [Everything seems to be ok.]
    else
      para
        text "Here is the raw answer from '"+host+"':" ; eol
        fixed
          each a answer
            text a ; eol