An implementation of the OPAQUE password-authenticated key exchange protocol
by facebookRust
Last 12 weeks · 0 commits
4 of 6 standards met
Summary This PR introduces an internal marker trait and uses it to centralize the block-size constraints required by and . It also clarifies documentation by explicitly distinguishing a hash function's internal block size from its digest output size. Changes Add Add a blanket implementation for types satisfying the block-size requirements Replace duplicated typenum bounds in and Improve documentation around block-size constraints and Motivation The same typenum constraints were repeated across multiple trait definitions and implementations: Centralizing these constraints: Reduces duplication Improves readability of trait signatures Provides a single source of truth for block-size requirements Simplifies future maintenance The documentation updates also make it explicit that the constraint applies to a hash function's internal block size () rather than its digest output size. Compatibility This change is purely a refactor and documentation improvement. There are no functional, behavioral, or public API changes.
Summary The CI clippy job () fails with: is in the group that enables via , and promotes it to an error. The duplication is unavoidable: the dependency tree requires v2 (, ) and v3 (, ) simultaneously, and cargo cannot unify semver-incompatible major versions. Fix Add to the crate root with a comment explaining the two required versions. Verification now passes (was: ). Also verified: , with , and all pass.
Repository: facebook/opaque-ke. Description: An implementation of the OPAQUE password-authenticated key exchange protocol Stars: 416, Forks: 68. Primary language: Rust. Languages: Rust (100%). License: Apache-2.0. Latest release: v4.0.1 (9mo ago). Open PRs: 8, open issues: 0. Last activity: 2mo ago. Community health: 75%. Top contributors: kevinlewi, huitseeker, daxpedda, dependabot[bot], nikgraf, nitnelave, zer0x64, aidangilmore, cyyynthia, falko17 and others.