4 ms·
Libsodium is a great library, but as I'm in the Rust ecosystem and since we all must Rewrite it in Rust I am very interested in the RustCrypto project[0]. I pr
by conradludgate 3y ago
Libsodium is a great library, but as I'm in the Rust ecosystem and since we all must Rewrite it in Rust I am very interested in the RustCrypto project[0].
I previously used sodiumoxide[1] libsodium bindings in my projects but they are in maintenance only mode and wouldn't accept patches to build on other platforms (we had raspberry pi users complaining they couldn't build our software because of sodiumoxide). Maintaining cross platform C libraries which use assembly primitives is pretty tricky. The ring[2] library - which is used by rustls (a better tls library for rust) - is notoriously annoying to cross compile because of its use of C and assembly.
[0]: https://github.com/rustcrypto https://github.com/rustcrypto
[1]: https://github.com/sodiumoxide/sodiumoxide https://github.com/sodiumoxide/sodiumoxide
[2]: https://github.com/briansmith/ring https://github.com/briansmith/ring
- commandersaki 3y agoThe `dryoc' crate gives tit for tat compatibility with libsodium using native rust primitives.
- loup-vaillant 3y agoTo be honest maintaining bindings for a whole library is kind of a bear, so many people who do this tend to stick to the most used high-level interfaces. Even for my library, which has fewer than 50 functions. If you use a sufficiently narrow subset, my advice would be to do your bindings yourself. It’s thankless work, but it’s work you control, and you’ll be able to tailor your side to your liking.
- aborsy 3y agoWhat command line tool do you recommend for file encryption and signatures by the end user?
- loup-vaillant 3y agoRight now the most established are Age and Signify, respectively. I have no experience with them, but they’re reputable, and what little I saw was good.