facebook / opaque-ke

An implementation of the OPAQUE password-authenticated key exchange protocol
Apache License 2.0
300 stars 46 forks source link

Update to VOPRF draft version 19 #307

Closed daxpedda closed 1 year ago

daxpedda commented 1 year ago

This updates opaque-ke to rely on VOPRF draft version 19, which is update here https://github.com/facebook/voprf/pull/101.

The requires us to update to elliptic-curve v0.13.0-pre.4 and Rust 1.61. This also changes some of hash traits we used, namely instead of Digest we no require Default + FixedOutput + HashMarker, which should pose no downstream issues.

Apparently the test vectors provided by the VOPRF draft spec were not actually updated with new Ciphersuite ID, this is something that still has to be done. See https://github.com/cfrg/draft-irtf-cfrg-opaque/issues/382. Took the new test vectors from https://github.com/cfrg/draft-irtf-cfrg-opaque/pull/383.

Builds on top of https://github.com/facebook/opaque-ke/pull/304. Builds on top of https://github.com/facebook/voprf/pull/106. Replaces https://github.com/facebook/opaque-ke/pull/311. Replaces https://github.com/facebook/opaque-ke/pull/312.

daxpedda commented 1 year ago

I have taken the new test vectors from https://github.com/cfrg/draft-irtf-cfrg-opaque/pull/383. So only waiting for https://github.com/facebook/voprf/pull/101 to be merged.

daxpedda commented 1 year ago

This is good to go now!

If it would be possible to get a pre-release out before that though it would be appreciated, then we have a working crates.io version that is compatible with the latest stable RustCrypto ecosystem.

kevinlewi commented 1 year ago

Pre-release v3.0.0-pre.1 published!

daxpedda commented 1 year ago

Rebased after conflicts from #309.

daxpedda commented 1 year ago

This is ready now!