Cryptography is considered to be one of the best application of rust. So I was wondering what cryptography crates people usually use. I see many crates that are abandoned, and other discussions I found on this topic are 2+ years old.
aws-lc-rs is probably the most popular but also quite annoying because it uses C, so cross-compiling is a bit of a pain. I only managed to do it thanks to cargo zigbuild which is amazing. (And kind of embarrassing that Rust has to use Zig to get a nice cross-compiling UX, but hey it works.)
The other one is ring, which I’m not really sure the status of but I recall they had some super weird versioning policies that weren’t very popular.
I only managed to do it thanks to cargo zigbuild which is amazing. (And kind of embarrassing that Rust has to use Zig to get a nice cross-compiling UX, but hey it works.)
As in
crossdidn’t work for this?crossrequires Docker which is a really awkward dependency, especially on Windows and Mac, or if you’re already in Docker, e.g. in CI or a dev container.Plus it’s quite slow. Cargo zigbuild was a much nicer solution when I finally resorted to it. Zig is easy to install, even on Debian - just download and untar.
The RustCrypto organization has a bunch of crates for common crypto schemes. From when I looked into some of it, it looked pretty solid. It seems well maintained compared to other options, although most crates still have not reached version 1.0 and might be relatively new in the grand scheme of things, which is something to consider when security is critical.
Cryptography is considered to be one of the best application of rust.
Cryptography itself requires using assembly to avoid timing attacks. Using Rust on top of that is indeed a good match, and a widely used one (e.g. aws-lc-rs)
blessed.rs is my usual place to get started with these sorts of questions, and they have a section on cryptography crates.


