| Crates.io | pake-kem |
| lib.rs | pake-kem |
| version | 0.1.0-pre.5 |
| created_at | 2024-10-10 23:48:55.593706+00 |
| updated_at | 2025-10-22 21:47:11.998314+00 |
| description | An implementation of a password-authenticated key exchange (PAKE) based from a key encapsulation mechanism (KEM). |
| homepage | |
| repository | https://github.com/facebook/pake-kem |
| max_upload_size | |
| id | 1404712 |
| size | 98,022 |
An implementation of a password-authenticated key exchange (PAKE) based from a key encapsulation mechanism (KEM).
⚠️ Warning: This implementation has not been audited. Use at your own risk!
The API can be found here along with an example for usage.
Add the following line to the dependencies of your Cargo.toml:
pake-kem = "0.1.0-pre.5"
This is NOT a post-quantum PAKE. This is a stopgap PAKE with a more complex set of security guarantees. It should only be used in scenarios that fit these guarantees. The first two are typical of any PAKE, the latter two are more particular to this one:
A user should assume that a password used with this PAKE will eventually get revealed (via point 3). Further, they should assume that it is not a secure key exchange mechanism once quantum computers exist (via point 4).
This PAKE is appropriate if, for example, you are using one-time-use passwords, and you don't intend to keep this PAKE as a long-term solution.
The original author of this code is Kevin Lewi (@kevinlewi). To learn more about contributing to this project, see this document.
The author would like to thank Michael Rosenberg (@rozbb) for the initial discussions which helped lead to the creation of this library.
This project is dual-licensed under either the MIT license or the Apache License, Version 2.0. You may select, at your option, one of the above-listed licenses.