Arti no longer builds because of update to x25519-dalek prerelease
@juga reported that an application built on top of some of our crates started to not compile.
The root cause is as follows:
- Our dependency on
x25519-dalek
is specified asx25519-dalek = "2.0.0-pre.1"
. At the time, that was presumably the most recent version. -
x25519-dalek
have published a2.0.0-rc.2
which had a breaking change. https://github.com/dalek-cryptography/x25519-dalek/blob/main/CHANGELOG.md#2x-series - cargo considers that
2.0.0-rc.2
satisfied2.0.0-pre.1
even though the documentation says that crates are likely to have breaking changes. https://doc.rust-lang.org/cargo/reference/resolver.html#pre-releases. This is clearly a bug in cargo that will probably never be fixed.
Conclusion: when specifying a pre-release version, one should write something like x25519-dalek = "=2.0.0-pre.1"
.
I think we should do an emergency point release of tor-llcrypto
to crates.io so that things still build for people. I will make a branch starting at arti-v1.1.3
for this purpose.
CC @nickm
error[E0432]: unresolved import `x25519_dalek::StaticSecret`
--> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/tor-llcrypto-0.4.3/src/pk.rs:16:70
|
16 | pub use x25519_dalek::{EphemeralSecret, PublicKey, SharedSecret, StaticSecret};
| ^^^^^^^^^^^^
| |
| no `StaticSecret` in the root
| help: a similar name exists in the module: `SharedSecret`