Files
vxrenovateandbreakingbread 0d257aaf78
Rust CI / cargo fmt (push) Successful in 3s
Rust CI / cargo clippy (push) Successful in 1m25s
Rust CI / test (1.90.0 / no backend / no frontend) (push) Successful in 2m28s
Rust CI / test (stable / no backend / no frontend) (push) Successful in 2m27s
Rust CI / test (1.90.0 / no backend / --features argon2) (push) Successful in 2m32s
Rust CI / test (stable / no backend / --features serde) (push) Successful in 2m53s
Rust CI / test (stable / no backend / --features argon2) (push) Successful in 2m34s
Rust CI / test (1.90.0 / no backend / --features serde) (push) Successful in 2m51s
Rust CI / test (stable / --features curve25519 / no frontend) (push) Successful in 2m28s
Rust CI / test (1.90.0 / --features curve25519 / --features serde) (push) Successful in 2m55s
Rust CI / test (1.90.0 / --features curve25519 / no frontend) (push) Successful in 2m27s
Rust CI / test (1.90.0 / --features curve25519 / --features argon2) (push) Successful in 2m37s
Rust CI / test (stable / --features curve25519 / --features argon2) (push) Successful in 2m36s
Rust CI / test (1.90.0 / --features ecdsa / no frontend) (push) Successful in 2m50s
Rust CI / test (1.90.0 / --features ecdsa / --features argon2) (push) Successful in 2m56s
Rust CI / test (stable / --features curve25519 / --features serde) (push) Successful in 2m56s
Rust CI / test (stable / --features ecdsa / no frontend) (push) Successful in 2m48s
Rust CI / test (stable / --features ecdsa / --features serde) (push) Successful in 3m16s
Rust CI / test (stable / --features ecdsa / --features argon2) (push) Successful in 2m56s
Rust CI / test (1.90.0 / --features ecdsa / --features serde) (push) Successful in 3m17s
Rust CI / test (1.90.0 / --features ed25519 / no frontend) (push) Successful in 2m50s
Rust CI / test (1.90.0 / --features ed25519 / --features argon2) (push) Successful in 2m57s
Rust CI / test (stable / --features ed25519 / --features argon2) (push) Successful in 3m0s
Rust CI / test (stable / --features ed25519 / no frontend) (push) Successful in 2m52s
Rust CI / test (1.90.0 / --features ed25519 / --features serde) (push) Successful in 3m20s
Rust CI / test (1.90.0 / --features ristretto255 / no frontend) (push) Successful in 3m0s
Rust CI / test (stable / --features ed25519 / --features serde) (push) Successful in 3m19s
Rust CI / test (stable / --features ristretto255 / --features argon2) (push) Successful in 3m10s
Rust CI / test (stable / --features ristretto255 / no frontend) (push) Successful in 3m2s
Rust CI / test (1.90.0 / --features ristretto255 / --features argon2) (push) Successful in 3m4s
Rust CI / test (1.90.0 / --features ristretto255 / --features serde) (push) Successful in 3m30s
Rust CI / test (stable / --features ristretto255 / --features serde) (push) Successful in 3m31s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m7s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / no frontend) (push) Successful in 5m19s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Successful in 6m26s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features argon2) (push) Failing after 10m23s
Rust CI / test (1.90.0 / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Failing after 19m30s
Rust CI / test (stable / --features ristretto255,curve25519,ecdsa,ed25519 / --features serde) (push) Failing after 51s
Rust CI / test (stable / --features ristretto255,kem / no frontend) (push) Successful in 3m49s
Rust CI / test (1.90.0 / --features ristretto255,kem / no frontend) (push) Failing after 1m7s
Rust CI / test (stable / --features ristretto255,kem / --features argon2) (push) Successful in 3m55s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features argon2) (push) Successful in 3m57s
Rust CI / test (1.90.0 / --features ristretto255,kem / --features serde) (push) Successful in 4m21s
Rust CI / test (stable / --features ristretto255,kem / --features serde) (push) Successful in 4m23s
Rust CI / test simple_login example (push) Successful in 19s
Rust CI / test digital_locker example (push) Successful in 17s
Rust CI / cargo bench compilation () (push) Successful in 1m41s
Rust CI / cargo bench compilation (--features ristretto255) (push) Successful in 1m52s
Rust CI / cargo bench compilation (--features ristretto255,kem) (push) Successful in 2m26s
Rust CI / no-std (wasm32-unknown-unknown / no backend) (push) Successful in 27s
Rust CI / no-std (thumbv6m-none-eabi / ecdsa) (push) Successful in 27s
Rust CI / no-std (wasm32-unknown-unknown / ecdsa) (push) Successful in 27s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 17s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255,curve25519,ecdsa,ed25519) (push) Successful in 18s
Rust CI / cargo audit (push) Successful in 5s
Rust CI / no-std (thumbv6m-none-eabi / no backend) (push) Successful in 27s
Rust CI / no-std (thumbv6m-none-eabi / curve25519) (push) Successful in 27s
Rust CI / no-std (wasm32-unknown-unknown / curve25519) (push) Successful in 28s
Rust CI / no-std (wasm32-unknown-unknown / ed25519) (push) Successful in 27s
Rust CI / no-std (thumbv6m-none-eabi / ed25519) (push) Successful in 28s
Rust CI / no-std (thumbv6m-none-eabi / ristretto255) (push) Successful in 27s
Rust CI / no-std (wasm32-unknown-unknown / ristretto255) (push) Successful in 27s
chore: update RustCrypto deps to stable (#8)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [curve25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) ([source](https://github.com/dalek-cryptography/curve25519-dalek/tree/HEAD/curve25519-dalek)) | dependencies | patch | `5.0.0-rc.1` → `5.0.0` |
| [ed25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) ([source](https://github.com/dalek-cryptography/curve25519-dalek/tree/HEAD/ed25519-dalek)) | dependencies | patch | `3.0.0-rc.1` → `3.0.0` |
| [p256](https://github.com/RustCrypto/elliptic-curves/tree/master/p256) ([source](https://github.com/RustCrypto/elliptic-curves)) | dev-dependencies | patch | `0.14.0-rc.15` → `0.14.0` |
| [p384](https://github.com/RustCrypto/elliptic-curves/tree/master/p384) ([source](https://github.com/RustCrypto/elliptic-curves)) | dev-dependencies | patch | `0.14.0-rc.15` → `0.14.0` |

---

### Release Notes

<details>
<summary>dalek-cryptography/curve25519-dalek (curve25519-dalek)</summary>

### [`v5.0.0`](https://github.com/dalek-cryptography/curve25519-dalek/blob/HEAD/curve25519-dalek/CHANGELOG.md#500---2026-07-06)

##### Breaking Changes

- Update edition to 2024
- Update the MSRV from 1.60 to 1.85
- Remove `group-bits` feature due to soundness issues with underlying trait ([#&#8203;909](https://github.com/dalek-cryptography/curve25519-dalek/pull/909))
- Re-export `rand_core` ([#&#8203;908](https://github.com/dalek-cryptography/curve25519-dalek/pull/908))
- Rename `Scalar::batch_invert` -> `Scalar::invert_batch` for consistency. Also make it no-alloc. ([#&#8203;789](https://github.com/dalek-cryptography/curve25519-dalek/pull/789))
- Remove deprecated functions `FieldElement::as_bytes()` and `EdwardsPoint::nonspec_map_to_curve()` ([#&#8203;778](https://github.com/dalek-cryptography/curve25519-dalek/pull/778))
- Upgrade `rand_core` dependency to v0.10.0
- Upgrade `digest` and `sha2` deps

##### Other Changes

- Perf: Use maximum available NAF window size in `VartimePrecomputedStraus` ([#&#8203;848](https://github.com/dalek-cryptography/curve25519-dalek/pull/848))
- Perf: Skip checking 8 candidate points in `RistrettoPoint::lizard_decode` ([#&#8203;882](https://github.com/dalek-cryptography/curve25519-dalek/pull/882))
- Add Lizard bytes-to-point injection for Ristretto. Gated under `lizard` feature. ([#&#8203;826](https://github.com/dalek-cryptography/curve25519-dalek/pull/826))
- Add an allocating batch inversion called `Scalar::invert_batch_alloc` ([#&#8203;789](https://github.com/dalek-cryptography/curve25519-dalek/pull/789))
- Add `Scalar::div_by_2` ([#&#8203;805](https://github.com/dalek-cryptography/curve25519-dalek/pull/805))
- Add `EdwardsPoint::hash_to_curve` ([#&#8203;786](https://github.com/dalek-cryptography/curve25519-dalek/pull/786))
- Undeprecate `Scalar::from_bits()` ([#&#8203;780](https://github.com/dalek-cryptography/curve25519-dalek/pull/780))
- Use constant-time equality testing for compressed Ristretto and Edwards points, rather than autoderived equality

</details>

<details>
<summary>dalek-cryptography/curve25519-dalek (ed25519-dalek)</summary>

### [`v3.0.0`](https://github.com/dalek-cryptography/curve25519-dalek/blob/HEAD/ed25519-dalek/CHANGELOG.md#300---2026-07-06)

##### Breaking Changes

- Update edition to 2024
- Update the MSRV from 1.60 to 1.85
- Remove `std` feature now that `error::Error` is in `core`
- Make signing and verifying keys use `pkcs8::spki::SignatureAlgorithmIdentifier` instead of `DynSignatureAlgorithmIdentifier` ([#&#8203;779](https://github.com/dalek-cryptography/curve25519-dalek/pull/779))
- Upgrade `ed25519` dependency to v3.0.0
- Upgrade `signature` dependency to v3.0.0
- Upgrade `sha2` and `sha3` dependencies to v0.11
- Upgrade `getrandom` dependency to v0.4
- Upgrade `chacha20` dependency to v0.10
- Upgrade `rand_core` dependency to v0.10.0

##### Other Changes

- Re-export `rand_core` ([#&#8203;908](https://github.com/dalek-cryptography/curve25519-dalek/pull/908))
- Add allocation-free `EdwardsPoint::compress_batch` ([#&#8203;832](https://github.com/dalek-cryptography/curve25519-dalek/pull/832))
- Add `strobe-rs` dependency and delete vendored STROBE impl ([#&#8203;895](https://github.com/dalek-cryptography/curve25519-dalek/pull/895))
- Impl `MultipartSigner` and `MultipartVerifier` for `SigningKey` and `VerifyingKey` ([#&#8203;764](https://github.com/dalek-cryptography/curve25519-dalek/pull/764))
- Impl `KeySizeUser`, `TryKeyInit`, and `Generate` for `SigningKey`. Also impl `KeySizeUser` for `VerifyingKey` [#&#8203;733](https://github.com/dalek-cryptography/curve25519-dalek/pull/733)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: UneBaguette <[email protected]>
Reviewed-on: #8
Co-authored-by: Renovate Bot <[email protected]>
Co-committed-by: Renovate Bot <[email protected]>
2026-07-08 23:43:23 +02:00

131 lines
3.7 KiB
TOML

[package]
authors = [
"VexaHub Developers",
"Kevin Lewi <[email protected]>",
"François Garillot <[email protected]>",
]
categories = ["no-std", "cryptography"]
description = "An implementation of the OPAQUE password-authenticated key exchange protocol"
edition = "2024"
exclude = ["/src/tests/"]
keywords = ["cryptography", "opaque", "passwords", "authentication", "pake"]
license = "Apache-2.0 OR MIT"
name = "opaque-vx"
readme = "README.md"
repository = "https://github.com/vexahub/opaque-vx"
rust-version = "1.90"
version = "1.0.0-rc.0"
[features]
argon2 = ["dep:argon2"]
curve25519 = ["dep:curve25519-dalek"]
default = ["ristretto255", "serde"]
ecdsa = ["dep:ecdsa"]
ed25519 = ["dep:curve25519-dalek", "dep:ed25519-dalek"]
kem = ["dep:ml-kem"]
ristretto255 = ["dep:curve25519-dalek", "voprf/ristretto255-ciphersuite"]
serde = [
"dep:serde",
"curve25519-dalek?/serde",
"ecdsa?/serde",
"ed25519-dalek?/serde",
"elliptic-curve/serde",
"generic-array/serde",
"hybrid-array/serde",
"voprf/serde",
"zeroize/serde",
]
std = ["dep:getrandom", "rand/std"]
[dependencies]
argon2 = { version = "0.6.0-rc.8", default-features = false, features = [
"zeroize",
"alloc",
], optional = true }
curve25519-dalek = { version = "5", default-features = false, features = [
"zeroize",
], optional = true }
derive-where = { version = "1.6", features = ["zeroize-on-drop"] }
digest = { version = "0.11", features = ["zeroize"] }
displaydoc = { version = "0.2", default-features = false }
ecdsa = { version = "0.17", default-features = false, features = [
"algorithm",
], optional = true }
ed25519-dalek = { version = "3", default-features = false, features = [
"zeroize",
"digest",
"hazmat",
], optional = true }
elliptic-curve = { version = "0.14", features = ["sec1"] }
generic-array = { version = "1.4", features = ["hybrid-array-0_4", "zeroize"] }
hybrid-array = { version = "0.4", features = ["extra-sizes", "zeroize"] }
hkdf = "0.13"
hmac = { version = "0.13", features = ["zeroize"] }
ml-kem = { version = "0.3", default-features = false, features = [
"zeroize",
], optional = true }
rand = { version = "0.10", default-features = false }
serde = { version = "1", default-features = false, features = [
"derive",
], optional = true }
subtle = { version = "2.6", default-features = false }
voprf = { package = "voprf-vx", version = "1.0.0-rc.1", default-features = false, features = [
"danger",
] }
zeroize = { version = "1.9", features = ["zeroize_derive"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.4", features = ["wasm_js"], optional = true }
[dev-dependencies]
anyhow = "1"
bincode-next = { version = "3", features = ["serde", "alloc"] }
chacha20poly1305 = { version = "0.11", features = ["zeroize"] }
criterion = "0.8"
cryptoki = "0.12"
elliptic-curve = { version = "0.14", features = ["alloc", "pkcs8"] }
hex = "0.4"
p256 = { version = "0.14", default-features = false, features = [
"ecdsa",
"hash2curve",
"pkcs8",
"oprf",
] }
p384 = { version = "0.14", default-features = false, features = [
"hash2curve",
"pkcs8",
"oprf",
] }
p521 = { version = "0.14.0-rc.15", default-features = false, features = [
"hash2curve",
"pkcs8",
"oprf",
] }
pastey = "0.2"
proptest = "1"
rand = "0.10"
rand_chacha = "0.10"
regex = "1"
sha2 = { version = "0.11", default-features = false, features = ["zeroize"] }
thiserror = "2"
# MSRV
rustyline = "18"
scrypt = "0.12"
serde_json = "1"
[[bench]]
harness = false
name = "opaque"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
targets = []
[[example]]
name = "simple_login"
required-features = ["argon2"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(test_hsm)'] }