david wong

Hey! I'm David, the author of the Real-World Cryptography book. I'm a crypto engineer at O(1) Labs on the Mina cryptocurrency, previously I was the security lead for Diem (formerly Libra) at Novi (Facebook), and a security consultant for the Cryptography Services of NCC Group. This is my blog about cryptography and security and other related topics that I find interesting.

EmbeddedDisco posted November 2018

Here's EmbeddedDisco!

I've been implementing the Disco protocol in C. It makes sense since Disco was designed specifically for embedded devices. The library is only 1,000 lines-of-code, including all the cryptographic primitives, and does everything the Go implementation does except for signing.

If you don't know what Disco is, it's a cryptographic library that allows you to secure communications (like TLS) and to hash, encrypt, authenticate, derive keys, generate random numbers, etc.

Check it out here. It's experimental. I'd be happy to receive any feedback :)

It's not as plug-and-play as the Golang version. There are no wrappers yet to encrypt, authenticate, hash, derive keys, etc. and I haven't made a decision as to what algorithm I should support for signatures (ed25519 with strobe? Or Strobe's Schnorr-variant with Curve25519?)

So it's mostly for people who know what they're doing for now.

Don't let that deter you though! I need people to play with it in order to improve the library. If you need help I'm here!

Well done! You've reached the end of my post. Now you can leave a comment or read something else.



Hi David,

This is great news, thanks for the update. I work on deeply embedded devices and follow your blog.

I will check out the work on github, but (warning: American) right now we're in the middle of our Thanksgiving week, so it won't be immediate. But I'm excited about this.


Hey Dan,

Awesome. If you obtain any results from trying this on embedded devices, can you share them?

leave a comment...