How Usable are Rust Cryptography APIs?
Kai Mindermann, Philipp Keck, Stefan Wagner

TL;DR
This paper evaluates the usability of Rust cryptography APIs through systematic analysis and experiments, revealing usability gaps and providing design recommendations to enhance security and developer experience.
Contribution
It offers a systematic assessment of Rust cryptographic libraries' usability and proposes concrete API design improvements based on empirical findings.
Findings
Only half of the major libraries focus on usability and misuse resistance.
Participants performed better with rust-crypto despite it being less usable.
Recommendations include better documentation, higher-level APIs, and quality example code.
Abstract
Context: Poor usability of cryptographic APIs is a severe source of vulnerabilities. Aim: We wanted to find out what kind of cryptographic libraries are present in Rust and how usable they are. Method: We explored Rust's cryptographic libraries through a systematic search, conducted an exploratory study on the major libraries and a controlled experiment on two of these libraries with 28 student participants. Results: Only half of the major libraries explicitly focus on usability and misuse resistance, which is reflected in their current APIs. We found that participants were more successful using rust-crypto which we considered less usable than ring before the experiment. Conclusion: We discuss API design insights and make recommendations for the design of crypto libraries in Rust regarding the detail and structure of the documentation, higher-level APIs as wrappers for the existing…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
