this is awesome: See this page fetch itself, byte by byte, over TLS https://subtls.pages.dev/
I've been (very very slowly) working on a guide to writing your own TLS implementation from scratch and this is motivating me to make some progress on it
first I need to finish the guide to implementing DNS from scratch though (which is much easier)
@b0rk Hopefully you are already aware of @bert_hubert's tdns: https://powerdns.org/hello-dns/
@rgacogne oh cool! that's much more advanced than what I'm working on, which is more like 180 lines of Python. I'll make sure to reference it though!
@rgacogne @b0rk @bert_hubert any reference on reverse proxy too? ๐Ÿ˜„ i was thinking to try implement one in elixir some day ๐Ÿ‘€
@cevado I feel like there must be a bunch of guides out there for how to write a reverse proxy in Go (like https://www.youtube.com/watch?v=tWSmUsYLiE4 for example), maybe adapt one of them to Elixir?
FOSDEM 2019: How to write a reverse proxy with Go in 25 minutes.

YouTube
@b0rk thanks ๐Ÿ™... i was looking int caddy, but it's not just a reverse proxy ๐Ÿ˜ฌ
@b0rk Sounds like fun! Some years ago I wrote a DNS server for the ESP8266 microcontroller called ICBIND. Which did not have enough memory available to store the entire zone file and work out the compression pointers. I had to do some interesting hacks to serve my zone anyway. Loads of fun! https://github.com/yschaeff/ICantBelieveItsNotDNS
GitHub - yschaeff/ICantBelieveItsNotDNS: "I Can't Believe It's Not DNS!" (ICBIND) is an authoritative DNS server for the ESP8266 written in MicroPython.

"I Can't Believe It's Not DNS!" (ICBIND) is an authoritative DNS server for the ESP8266 written in MicroPython. - GitHub - yschaeff/ICantBelieveItsNotDNS: "I Can't Beli...

GitHub
@b0rk ๐Ÿ˜ ๐Ÿ˜
@b0rk "TLS The Hard Way?"
@danciruli I have a name but I won't share it until it's released :)

@b0rk Woah! This gives me a bit of an idea -- I've been implementing my own Layer 1 and Layer 2 in Go for fun/learning. It's very unstable and still has gremlins I'm working on purging, BUT:

I can exchange IP (including, via BGP, to the regular internet!). Only hiccup is it's ham bands, so I can't encrypt -- I wonder if there's a carve-out band for using my SDR at low power where I could import subtls on top of my Layer 1 / 2, and have an understandable stack from Layer 1 to TLS ๐Ÿคฏ

@paul yes!!

I really want to get working layer 1 + layer 2 implementations that I can run over the normal internet on a Mac so that I can have the full stack, but I cannot figure out how to make tun/tap work on a Mac to save my life

(I already have ipv4 + tcp + udp + dns + tls implemented in Python)

@b0rk oh! I don't have a Mac, but I got OpenBSD working! Want me to add you to all my repos? Some are already public, but I'm super happy to add you to my 'friends of' group on github! It's at https://github.com/hztools
hz.tools

@paultag's SDR code. hz.tools has 13 repositories available. Follow their code on GitHub.

GitHub
@paul yes I'd love that! OpenBSD is closer than I've gotten
@b0rk Sounds cool! Just in case you've not seen it yet, Bear SSL https://bearssl.org/ might be an interesting reference as it's a from scratch implementation.
BearSSL - Main

@b0rk it truly is, thanks for sharing
@b0rk So much security traffic, for so little actual content. Itโ€™s depressingโ€ฆ
@adrianco @b0rk You may want to be sitting down for when you find out how JavaScript works. :-)
@b0rk that is truly a thing of recursive beauty :)
@b0rk Agreed, awesome.
weird how server responds HTTP/1.1 for a 1.0 request ๐Ÿค”
@sushovande @b0rk considering HTTP 1.0 doesn't require the Host header I think you may find it difficult for Cloudflare to support ๐Ÿ˜โ€‹
@b0rk very cool thanks for sharing. I enjoyed the easter egg as well.