OK, turing.

<- leave blank

Thu Mar 21 12:59:34 EDT 2019

# Full TLS Setup

Transport Layer Security, or TLS can be used to provide a secure communications
channel between Ubqt servers and clients, and is also optional for use in many
Ubqt services that connect to internet resources.

## Certificates, Keys

Ubqt uses certificate and key pairs to establish TLS connections.

In order to connect securely, we need to create a certificate and key on both the
server, and the client.

Related reading:
 - https://en.wikipedia.org/wiki/Public_key_certificate
 - https://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange

## Server

In many applications, self-signed certificates are unwanted, due to the
client/server trust being broken.  However, for most common ubqt installations,
the same authority manages both sides.  (You!)
To use Certificate Authorities, such as Let's Encrypt is also possible, and will
be covered in future versions of this guide.

For systems with openssl, generating a self-signed key/pair can be done as
follows:

`openssl req -newkey rsa:4096 -nodes -sha512 -x509 -days 3650 -nodes -out
-etc/ssl/certs/ubqt.pem -keyout /etc/ssl/private/ubqt.pem`

This will create the two named files, and the server will look for each under that
specific name, if none is provided on the command line.

To sign client certificates, we need a Certificate Signing Request file, for
example:

`openssl req -new -eky /etc/ssl/private/ubqt.pem -out /etc/ssl/certs/ubqt.csr`

### Plan9

Refer to http://man.cat-v.org/9front/8/rsa
A full guide coming soon!
Servers will prefer the factotum whenever possible for key values,

## Client

Here, we create and sign client certificates against our server's root
certificate, created above:

```
# Create the client key
openssl genrsa -out myclient.key 4096

# Create a client sign request
openssl req -new -key myclient.key -out myclient.csr

# Sign the request to create a valid cert
# We'll make it last 1024 days
openssl x509 -req -in myclient.csr -CA /etc/ssl/certs/ubqt.pem -CAkey
/etc/ssl/private/ubqt.pem -CAcreateserial -out myclient.pem -days 1024 -sha512
```

### Plan9





Thu Mar 21 11:32:35 EDT 2019
https://i.imgur.com/nhDyQ1s.png

Wed Mar 20 20:15:40 EDT 2019
diff -r 3dd6a3188153 sys/src/cmd/nusb/kb/kb.c
--- a/sys/src/cmd/nusb/kb/kb.c Mon Mar 18 07:16:37 2019 +0100
+++ b/sys/src/cmd/nusb/kb/kb.c Thu Mar 21 01:15:39 2019 +0100
@@ -761,7 +761,7 @@
			continue;

		/* combine all the slots */
- abs = x = y = b = 0;
+ abs = x = y = z = b = 0;
		for(i=0; i<p.ns; *l = *s, i++){
			s = &p.s[i];

@@ -773,7 +773,7 @@
				*l = *s;

			/* convet absolute z to relative */
- z = s->z;
+ z += s->z;
			if(s->abs & 4)
				z -= l->z;

@@ -783,10 +783,10 @@
						i, s->id, s->b, s->m,
						(uint)s->x / 2147483648.0,
						(uint)s->y / 2147483648.0,
- z);
+ s->z);
				else
					fprint(2, "ptr[%d]: id=%x b=%x m=%x x=%d
					y=%d z=%d\n",
- i, s->id, s->b, s->m, s->x, s->y, z);
+ i, s->id, s->b, s->m, s->x, s->y, s->z);
			}

			/* map to mouse buttons */
@@ -795,8 +795,6 @@
				b |= 2;
			if(s->b & 2)
				b |= 4;
- if(z != 0)
- b |= z > 0 ? 8 : 16;

			/* X/Y are absolute?  */
			if((s->abs & 3) == 3){
@@ -814,8 +812,11 @@
				y += s->y;
			}
		}
+
+ if(z != 0)
+ b |= z > 0 ? 8 : 16;

- if(abs || x != 0 || y != 0 || b != lastb){
+ if(abs || x != 0 || y != 0 || z != 0 || b != lastb){
			lastb = b;

			if(f->minfd < 0){


Wed Mar 20 10:40:49 EDT 2019
radical white terrorism

Wed Mar 20 09:52:55 EDT 2019
https://www.youtube.com/watch?v=MwsWskgKe5E

Tue Mar 19 23:38:30 EDT 2019
no human carries a map

Tue Mar 19 20:38:18 EDT 2019
https://www.youtube.com/watch?v=AFBQfrf9Y2E

Tue Mar 19 20:37:26 EDT 2019
https://www.reddit.com/r/plan9/comments/ar7rrc/arrived_now/egu4bdw

Tue Mar 19 20:36:29 EDT 2019
https://medium.com/@toms.pete/prairie-dog-e7ad2a522038

Tue Mar 19 13:47:51 EDT 2019
I remember it all as if it were yesterday...  I was in my lab...  in Nazi
Germany...

Tue Mar 19 11:45:11 EDT 2019
cirno% lc /bin/service
!il17007* !tcp110* !tcp17009* !tcp23* !tcp515* !tcp7* !tcp995* telcodata*
!il17008* !tcp113* !tcp17010* !tcp25* !tcp53* !tcp80* startnfs* telcofax*
!il17019* !tcp143* !tcp19* !tcp445* !tcp564* !tcp9* tcp17019*
!il17031* !tcp17007* !tcp21* !tcp513* !tcp565* !tcp993* tcp17020*
cirno% cat //bin/service/!tcp80
#!/bin/rc
exec /rc/bin/rc-httpd/rc-httpd >>[2]/sys/log/www
cirno%

next