⎕SE.FontObj←'APL385 Unicode' 22 ⎕PW←155 ⎕SE.SALT.Explore 'C:\Conga\TestCertificates' )load conga )copy util DISP )copy c:\conga\dws\congadev Demo ⍝ --- A Handmade, But Secure, Server --- certpath←Samples.CertPath certpath srvcert←certpath,'server/server-cert.pem' srvkey←certpath,'server/server-key.pem' cltcert←certpath,'client/geoff-cert.pem' cltkey←certpath,'client/geoff-key.pem' DRC.Init '' DRC.SetProp'.' 'RootCertDir'(certpath,'ca') DRC.SecureServer 'STATS' 1234 srvcert srvkey 64 DRC.SecureClient 'C1' 'localhost' 1234 cltcert cltkey 16 DISP (rc obj event data)←4↑DRC.Wait 'STATS' DRC.GetProp obj 'PeerCert' DISP DRC.Send 'C1.CMD1' (1 2 3 4 4) DISP (rc obj event data)←4↑DRC.Wait 'STATS' DRC.Respond obj (Demo.StatCalc data) DISP DRC.Wait 'C1' DRC.Close¨'C1' 'STATS' ⍝ --- A WebServer in 1 Function --- )ed #.Samples.SecureCallback WebServer.HttpsRun&'#.Samples.SecureCallback' 8080 'HTTPSRV' ⎕←(r cmd)←2↑##.DRC.SecureClient'' 'localhost' 8080 cltcert cltkey 16 'Text' 10000 certs←2⊃##.DRC.GetProp cmd'PeerCert' 1⊃certs ⍝ Certificate 1↓certs ⍝ "Signing Chain" (rc hdrs certs data)←cltcert cltkey Samples.HTTPSGet'https://localhost:8080/foo?arg1=1 2 3&arg2=4 5 6' rc hdrs certs data ⎕USING←'System.Windows.Forms,System.Windows.Forms.dll' 'System.Drawing,System.Drawing.dll' form←⎕NEW Form wb←⎕NEW WebBrowser form wb←⎕NEW¨Form WebBrowser (wb form).Size←⎕NEW Size (400 300) form.Controls.Add wb wb.DocumentText←data form.ShowDialog ⍬ Demo.StatCalc 1 2 3 4 4 )ed #.Demo.SecureCallback DRC.Close 'HTTPSRV' WebServer.HttpsRun&'#.Demo.SecureCallback' 8080 'HTTPSRV' (rc hdrs certs data)←cltcert cltkey Samples.HTTPSGet'https://localhost:8080/statcalc?arg=1 2 3 4 4' wb.DocumentText←data form.ShowDialog ⍬ ⎕USING←'System.Diagnostics,system.dll' Process.Start⊂'https://localhost:8080/statcalc?arg=1 2 3 4 4' )erase form wb DRC.Close 'HTTPSRV' )clear