mirror of
https://github.com/element-hq/matrix-authentication-service.git
synced 2026-10-12 15:47:30 +00:00
`rand` 0.10 and the new RustCrypto generation both build on `rand_core` 0.10, so they have to move together: - `rand`, `rand_chacha` and `rand_core` 0.10 - `digest` 0.11, `sha2` 0.11, `hmac` 0.13, `const-oid` 0.10 - `elliptic-curve` 0.14, `ecdsa` 0.17, `p256`, `p384` and `k256` 0.14, `signature` 3 - `der`, `spki` and `sec1` 0.8, `pkcs8` 0.11, `pem-rfc7468` 1.0 - `rsa` 0.10.0-rc.19 and `pkcs1` 0.8.0-rc.5, which have no stable release yet. They are pinned exactly, because release candidates break their API between releases. - `argon2` 0.6 and `pbkdf2` 0.13 On the `rand` side, `RngCore` becomes `Rng` and the old `Rng` becomes `RngExt`. `gen_*` becomes `random_*`, `thread_rng` becomes `rng`, `distributions` becomes `distr`, and `from_rng` can no longer fail. On the crypto side, `mas-jose` and `mas-keystore` move to `BoxedUint` for RSA, to the `pkcs1` and `pkcs8` reference types, and to the `Generate` trait for key generation, and `mas-jose` no longer depends on `generic-array`. Password hashing goes through `hash_password_with_rng`. Stored data is unaffected. The password hashing snapshots are unchanged, so bcrypt, Argon2 and PBKDF2 produce the same hashes for the same input and salt, and `pbkdf2` 0.13 keeps the same defaults (SHA-256, 600 000 rounds). The keystore snapshots change only because keys generated from a seeded RNG differ. The snapshots of keys loaded from files are unchanged. `opa-wasm` 0.3.3 already uses this generation, so most of the duplicate crates it pulled in go away. The `deny.toml` skip list now names what still pulls the older versions: cookie, sqlx, headers, wasmtime and pest for RustCrypto, and opentelemetry_sdk, sentry and ulid for `rand` 0.9.