Code from research projects

Open Quantum Safe

Software for prototyping quantum-resistant cryptography. Includes C library of key exchange algorithms and integration into OpenSSL.

Project homepage

View presentation (slides 64–67)

Post-quantum public key infrastructure

Scripts for generating and testing hybrid certificates for post-quantum PKI.

Download ZIP file

Read the paper

Double-authentication-preventing signatures

C code implementing various double-authentication-preventing signature schemes.

Browse code on Github

Read the paper

"Frodo": learning with errors key exchange

C code implementing key exchange protocol based on the learning with errors problem.

Browse code on Github

Read the paper

Ring learning with errors key exchange

C code implementing the ring learning with errors primitive as well as a ring-LWE-based key exchange protocol and integration into OpenSSL.

Browse code on Github

Read the paper

Password-authenticated key exchange for Firefox

Prototype extension for Mozilla Firefox that performs password-authenticated key exchange with channel bindings.

Read the paper and download code

Miscellaneous software

Automator SCP

An Automator action for Mac OS X that allows files to be uploaded and downloaded with scp (the secure copy protocol, part of SSH).

More information

Download on Github

Gists on Github

Various snippets of code, including a Solarized colour scheme for tcsh and shell scripts for binary/hex conversion.

Browse code on Github

Contributions to open source projects



I worked on code for the Mozilla project, or more specifically the Netscape Security Services (NSS) library, which is part of Mozilla. In collaboration with researchers at Sun Microsystems Laboratories, I developed an implementation of elliptic-curve cryptography for the NSS toolkit.



OpenSSL is an open-source cryptography library. While working as an intern at Sun Micrososytems Laboratories, I contributed code for elliptic-curve cryptography (ECC) to OpenSSL. Specifically, our contribution included a library for arithmetic over a characteristic two field, key agreement and signature algorithms, and SSL handshake modifications for ECC.

Unmaintained miscellaneous software


iCalCopy copies events and to do items from one iCal calendar to another.

More information

Scripts for BibDesk and TeXShop

Scripts that allow you to insert BibDesk citations into TeXShop and integrate BibDesk and TeXShop with CVS.

More information

TLS Keying Material Exporters

Patches to TLS that allow an application to get additional application-specific keying material derived from the TLS master secret.

More information