1 engine, 3 apps

  • Notion Classic : where it started: a client for the productivity app Notion, for System 7.
  • Claude 68 : a Claude chat client for System 7 on the same engine, and an easy starting point for building your own HTTPS apps.
  • MacPlayer : Anthony Super's 68k Spotify remote, working again without a router doing the HTTPS for it. Only the one-time login needs a modern computer.

All three open their own TLS 1.2 connection, with an X25519 key exchange and ChaCha20-Poly1305. The cryptography runs on the 68030. A PiSCSI or BlueSCSI plays the SCSI network card and only moves packets. I haven't tested it with a real network card yet; if you have one, see Measure your Mac below.

A Covid project that stalled

In 2019 a friend gave me her father’s old Macintosh Classic II. Around then I saw the super cool MacPlayer project on Hackaday: a Spotify remote Anthony Super ran on his SE/30, with two little speakers beside it. A real living-room showpiece (I later bought an SE/30 myself). But my Classic II had no network card, so it sat in a corner gathering dust.

That changed in 2022, when I found RaSCSI (now PiSCSI): a Raspberry Pi that pretends to be a SCSI hard disk and can also emulate a network card.

Then I watched Notion’s interview with Macintosh developer Andy Hertzfeld and got an idea: wouldn’t it be fun to bring Notion back to the old Mac? Its UI suited the 1-bit screen perfectly.

With help from Macintosh C Programming by Example, but mostly the MacPlayer source code, I loaded a Notion page in the Basilisk II emulator. To make the api connection I've simply turned on HTTPS in the MacHTTP source code. 

mbedtls_ssl_conf_authmode(&_conf, MBEDTLS_SSL_VERIFY_NONE); 
// BAD BAD BAD! No remote certificate verification (requires root cert) 

It was working in the Basilisk emulator! But then I tried it on the real Classic II and got mbedtls_ssl_handshake returned -76.  The modern Mac had been doing the heavy lifting... My Dunning-Kruger low point

To get HTTPS working it needed a modern machine to make the conversion, so I wrote a simple Python proxy that passed the HTTPS to plain HTTP. which could also be running on the PiSCSI.

 - YESSSS, it worked! Showing the Notion page on my Compact mac

However, because a 512 × 342 screen can't hold much text, it had to scroll in order to be usable.  Scrolling inside a textfield was easy but a Notion page needs multiple textfields..  Unfortunately, I was unable to get the page to scroll. And after many attempts the project was put on hold. - May 2023

Vibe coding

2026 - For work I was using Claude Code, and was impressed. Could it help fixing my old scroll problem? In no time. So started to wonder.. could I drop the proxy too? Claude advised keep the proxy, It would take months of writing custom code to get HTTPS to work.

How hard can it be?

After all, there are ESP32s and other low-powered IoT devices make secure API calls, without root certificates just like and like System 7. 

With stock mbedTLS, a first connection checks two P-256 signatures and a P-384 one. All of this has to happen within 15 seconds... 

On my first attempt with the added root certificates, it took my classic Mac 120.4 seconds, but server had hung up long ago!

The math was too heavy

I searched the web for faster algorithms, all the way down to papers like Rivain 2011, and had Claude analyze them. I even tried to offload some of the work to the 68882 FPU coprocessor, which unfortunately turned out to be slower. There was progress, but the first handshake stayed above 15 seconds.

So the plan became to sacrifice a connection: the first does the slow certificate check, caches the answer and dies; the second finds the answer waiting and gets in.

Testing was low-tech: first test in Basilisk II, then copy it over using a PowerBook G4 as an intermediary, run it, wait, photograph the CRT, and type...

Read more »