Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to VOPRF draft version 19 #307

Merged
merged 1 commit into from
Mar 5, 2023

Conversation

daxpedda
Copy link
Contributor

@daxpedda daxpedda commented Feb 1, 2023

This updates opaque-ke to rely on VOPRF draft version 19, which is update here facebook/voprf#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 cfrg/draft-irtf-cfrg-opaque#382.
Took the new test vectors from cfrg/draft-irtf-cfrg-opaque#383.

Builds on top of #304.
Builds on top of facebook/voprf#106.
Replaces #311.
Replaces #312.

@daxpedda daxpedda mentioned this pull request Feb 1, 2023
@daxpedda daxpedda force-pushed the voprf-draft-19 branch 3 times, most recently from 7f6ece9 to ce94f97 Compare February 4, 2023 10:05
@daxpedda daxpedda marked this pull request as ready for review February 4, 2023 10:06
@daxpedda daxpedda marked this pull request as draft February 4, 2023 10:06
@daxpedda daxpedda marked this pull request as ready for review February 4, 2023 22:39
@daxpedda daxpedda marked this pull request as draft February 4, 2023 22:39
@daxpedda
Copy link
Contributor Author

daxpedda commented Feb 7, 2023

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

@daxpedda daxpedda marked this pull request as ready for review February 8, 2023 08:32
@daxpedda
Copy link
Contributor Author

daxpedda commented Feb 8, 2023

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
Copy link
Contributor

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

@daxpedda
Copy link
Contributor Author

daxpedda commented Feb 9, 2023

Rebased after conflicts from #309.

Cargo.toml Outdated Show resolved Hide resolved
src/key_exchange/group/curve25519.rs Outdated Show resolved Hide resolved
@daxpedda daxpedda marked this pull request as ready for review March 5, 2023 02:38
@daxpedda daxpedda requested a review from kevinlewi March 5, 2023 02:38
@daxpedda
Copy link
Contributor Author

daxpedda commented Mar 5, 2023

This is ready now!

@daxpedda daxpedda mentioned this pull request Mar 5, 2023
Copy link
Contributor

@kevinlewi kevinlewi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Thanks once again :)

@kevinlewi kevinlewi merged commit c255364 into facebook:main Mar 5, 2023
kevinlewi added a commit that referenced this pull request Oct 10, 2024
* Fix Clippy (#289)

* Add Dependabot (#287)

* Fix Clippy

* Add Dependabot

* Bump actions/checkout from 2 to 3 (#291)

Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/cache from 2 to 3 (#292)

Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update dependencies (#288)

* Fix Clippy

* Update dependencies

* Fix CI (#298)

* Rename X25519 to Curve25519 (#302)

* Update `curve25519-dalek` to 4.0.0-pre.5 (#301)

* Update `curve25519-dalek`

* Improve documentation

* Update `voprf` to 0.5.0-pre.1

* Bump `voprf` to v0.5.0-pre.2 (#304)

* Only use explicit crate features (#306)

* Publishing v3.0.0-pre.1 (#309)

* Update `rustyline` to v0.11 (#313)

* Update VOPRF to draft 19 (#307)

* Update `argon2` to v0.5 (#314)

* Test P-384 (#290)

* Update scrypt requirement from 0.10 to 0.11 (#315)

Updates the requirements on [scrypt](https://github.com/RustCrypto/password-hashes) to permit the latest version.
- [Release notes](https://github.com/RustCrypto/password-hashes/releases)
- [Commits](RustCrypto/password-hashes@scrypt-v0.10.0...scrypt-v0.11.0)

---
updated-dependencies:
- dependency-name: scrypt
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Publishing v3.0.0-pre.2 (#318)

* Bump `voprf` to v0.5.0-pre.4 (#322)

* Correctly clamp Curve25519 secret keys (#323)

* Curve25519 test vectors (#319)

* Curve25519 test vectors

* Adjust `derive_auth_keypair()` for Curve25519

* Update test vectors

* Fix Curve25519 random scalar generation

Co-Authored-By: Kevin Lewi <klewi@cs.stanford.edu>

* Update test vectors

* Update test vectors

* Update test vectors

---------

Co-authored-by: Kevin Lewi <klewi@cs.stanford.edu>

* Updating dual-license language (#324)

* Update criterion requirement from 0.4 to 0.5 (#325)

Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](bheisler/criterion.rs@0.4.0...0.5.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update keypair generation to use derive_auth_keypair (#326)

* Fixing simple_login test to enable argon2 feature (#328)

* Publishing v3.0.0-pre.3 (#327)

* Update rustyline requirement from 11 to 12 (#332)

Updates the requirements on [rustyline](https://github.com/kkawakam/rustyline) to permit the latest version.
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](kkawakam/rustyline@v11.0.0...v12.0.0)

---
updated-dependencies:
- dependency-name: rustyline
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update parameter from sk to private_key (#329)

* Bump `curve25519-dalek` to v4.0.0-rc.3 (#330)

* add more resources (WebAssembly and React Native) (#335)

* add more resources (WebAssembly and React Native)

* Fixing clippy

---------

Co-authored-by: Kevin Lewi <klewi@fb.com>

* Publishing v3.0.0-pre.4 (#337)

* update docs: clarify export_key and session_key length (#338)

* Increase MSRV to 1.70 and update workflow dependencies (#342)

* Clarifying the persisting of server setup (#344)

* Add `clippy::doc_markdown` (#346)

* Fixing clippy errors (#347)

* Test P-521 (#349)

* Test P-521

* De-duplicate generic calls

* Simplify full test vectors generation

* Adding copyright header to generated test file (#351)

* Update rustyline requirement from 12 to 13 (#352)

Updates the requirements on [rustyline](https://github.com/kkawakam/rustyline) to permit the latest version.
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](kkawakam/rustyline@v12.0.0...v13.0.0)

---
updated-dependencies:
- dependency-name: rustyline
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/cache from 3 to 4 (#354)

Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Updating dependencies (#360)

* docs: add details for client login final step (#358)

This tweaks the documentation on the main module, in order to
add some details on the outcome of the client login final step.
In particular, it clarifies the result of `ClientLogin::finish()`
both on success and on errors and it adds some intra-crate links
to the relevant structures and fields.

* Publishing v3.0.0-pre.5 (#364)

* Revert "Update keypair generation to use derive_auth_keypair (#326)"

This reverts commit deb7ca3.

* Fixups to keep in sync with draft-10

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: daxpedda <daxpedda@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nik Graf <nik@nikgraf.com>
Co-authored-by: Luca Bruno <lucab@lucabruno.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants