mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-19 19:42:19 +02:00
Upgrade rustc to latest nightly
This commit is contained in:
parent
49f9fa5498
commit
b064ec78c5
17
Cargo.lock
generated
17
Cargo.lock
generated
@ -1047,9 +1047,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "displaydoc"
|
||||
version = "0.2.4"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
|
||||
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -1505,6 +1505,12 @@ version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.3.9"
|
||||
@ -2131,6 +2137,7 @@ dependencies = [
|
||||
"signal-crypto",
|
||||
"smallvec",
|
||||
"strum",
|
||||
"strum_macros",
|
||||
"subtle",
|
||||
"test-case",
|
||||
"test-log",
|
||||
@ -3867,11 +3874,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "strum_macros"
|
||||
version = "0.26.2"
|
||||
version = "0.26.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
|
||||
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
|
||||
dependencies = [
|
||||
"heck 0.4.1",
|
||||
"heck 0.5.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"rustversion",
|
||||
|
@ -46,7 +46,7 @@
|
||||
|
||||
<h2>Overview of licenses:</h2>
|
||||
<ul class="licenses-overview">
|
||||
<li><a href="#MIT">MIT License</a> (314)</li>
|
||||
<li><a href="#MIT">MIT License</a> (315)</li>
|
||||
<li><a href="#AGPL-3.0">GNU Affero General Public License v3.0</a> (25)</li>
|
||||
<li><a href="#Apache-2.0">Apache License 2.0</a> (12)</li>
|
||||
<li><a href="#BSD-3-Clause">BSD 3-Clause "New" or "Revised" License</a> (8)</li>
|
||||
@ -3422,6 +3422,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
<li><a href="https://github.com/gimli-rs/gimli">gimli 0.28.1</a></li>
|
||||
<li><a href="https://github.com/withoutboats/heck">heck 0.3.3</a></li>
|
||||
<li><a href="https://github.com/withoutboats/heck">heck 0.4.1</a></li>
|
||||
<li><a href="https://github.com/withoutboats/heck">heck 0.5.0</a></li>
|
||||
<li><a href="https://github.com/fitzgen/peeking_take_while">peeking_take_while 0.1.2</a></li>
|
||||
<li><a href="https://github.com/servo/unicode-bidi">unicode-bidi 0.3.15</a></li>
|
||||
<li><a href="https://github.com/unicode-rs/unicode-normalization">unicode-normalization 0.1.23</a></li>
|
||||
@ -6347,7 +6348,7 @@ SOFTWARE.
|
||||
<h4>Used by:</h4>
|
||||
<ul class="license-used-by">
|
||||
<li><a href="https://github.com/Peternator7/strum">strum 0.26.2</a></li>
|
||||
<li><a href="https://github.com/Peternator7/strum">strum_macros 0.26.2</a></li>
|
||||
<li><a href="https://github.com/Peternator7/strum">strum_macros 0.26.4</a></li>
|
||||
</ul>
|
||||
<pre class="license-text">MIT License
|
||||
|
||||
@ -6743,6 +6744,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
<li><a href="https://github.com/dtolnay/anyhow">anyhow 1.0.86</a></li>
|
||||
<li><a href="https://github.com/dtolnay/async-trait">async-trait 0.1.80</a></li>
|
||||
<li><a href="https://github.com/smol-rs/atomic-waker">atomic-waker 1.1.2</a></li>
|
||||
<li><a href="https://github.com/yaahc/displaydoc">displaydoc 0.2.5</a></li>
|
||||
<li><a href="https://github.com/dtolnay/dyn-clone">dyn-clone 1.0.17</a></li>
|
||||
<li><a href="https://github.com/smol-rs/fastrand">fastrand 2.1.0</a></li>
|
||||
<li><a href="https://github.com/rust-lang/cargo">home 0.5.9</a></li>
|
||||
@ -6800,37 +6802,6 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
</pre>
|
||||
</li>
|
||||
<li class="license">
|
||||
<h3 id="MIT">MIT License</h3>
|
||||
<h4>Used by:</h4>
|
||||
<ul class="license-used-by">
|
||||
<li><a href="https://github.com/yaahc/displaydoc">displaydoc 0.2.4</a></li>
|
||||
</ul>
|
||||
<pre class="license-text">Permission is hereby granted, free of charge, to any
|
||||
person obtaining a copy of this software and associated
|
||||
documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice
|
||||
shall be included in all copies or substantial portions
|
||||
of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
</pre>
|
||||
</li>
|
||||
<li class="license">
|
||||
|
@ -3192,7 +3192,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## gimli 0.28.1, heck 0.3.3, heck 0.4.1, peeking_take_while 0.1.2, unicode-bidi 0.3.15, unicode-normalization 0.1.23, unicode-segmentation 1.11.0
|
||||
## gimli 0.28.1, heck 0.3.3, heck 0.4.1, heck 0.5.0, peeking_take_while 0.1.2, unicode-bidi 0.3.15, unicode-normalization 0.1.23, unicode-segmentation 1.11.0
|
||||
|
||||
```
|
||||
Copyright (c) 2015 The Rust Project Developers
|
||||
@ -5879,7 +5879,7 @@ SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## strum 0.26.2, strum_macros 0.26.2
|
||||
## strum 0.26.2, strum_macros 0.26.4
|
||||
|
||||
```
|
||||
MIT License
|
||||
@ -6235,7 +6235,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## curve25519-dalek-derive 0.1.1, adler 1.0.2, anyhow 1.0.86, async-trait 0.1.80, atomic-waker 1.1.2, dyn-clone 1.0.17, fastrand 2.1.0, home 0.5.9, is-terminal 0.4.12, itoa 1.0.11, linkme-impl 0.3.26, linkme 0.3.26, linux-raw-sys 0.4.14, minimal-lexical 0.2.1, num_enum 0.6.1, num_enum_derive 0.6.1, once_cell 1.19.0, paste 1.0.15, pin-project-lite 0.2.14, prettyplease 0.2.20, proc-macro-crate 1.3.1, proc-macro2 1.0.83, quote 1.0.36, rustc-hash 1.1.0, rustix 0.38.34, rustversion 1.0.17, semver 1.0.23, send_wrapper 0.6.0, serde 1.0.202, serde_derive 1.0.202, serde_json 1.0.117, syn-mid 0.6.0, syn 1.0.109, syn 2.0.66, thiserror-impl 1.0.61, thiserror 1.0.61, unicode-ident 1.0.12, utf-8 0.7.6
|
||||
## curve25519-dalek-derive 0.1.1, adler 1.0.2, anyhow 1.0.86, async-trait 0.1.80, atomic-waker 1.1.2, displaydoc 0.2.5, dyn-clone 1.0.17, fastrand 2.1.0, home 0.5.9, is-terminal 0.4.12, itoa 1.0.11, linkme-impl 0.3.26, linkme 0.3.26, linux-raw-sys 0.4.14, minimal-lexical 0.2.1, num_enum 0.6.1, num_enum_derive 0.6.1, once_cell 1.19.0, paste 1.0.15, pin-project-lite 0.2.14, prettyplease 0.2.20, proc-macro-crate 1.3.1, proc-macro2 1.0.83, quote 1.0.36, rustc-hash 1.1.0, rustix 0.38.34, rustversion 1.0.17, semver 1.0.23, send_wrapper 0.6.0, serde 1.0.202, serde_derive 1.0.202, serde_json 1.0.117, syn-mid 0.6.0, syn 1.0.109, syn 2.0.66, thiserror-impl 1.0.61, thiserror 1.0.61, unicode-ident 1.0.12, utf-8 0.7.6
|
||||
|
||||
```
|
||||
Permission is hereby granted, free of charge, to any
|
||||
@ -6264,35 +6264,6 @@ DEALINGS IN THE SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## displaydoc 0.2.4
|
||||
|
||||
```
|
||||
Permission is hereby granted, free of charge, to any
|
||||
person obtaining a copy of this software and associated
|
||||
documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice
|
||||
shall be included in all copies or substantial portions
|
||||
of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
```
|
||||
|
||||
## winnow 0.5.40
|
||||
|
||||
```
|
||||
|
@ -3425,7 +3425,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
<key>License</key>
|
||||
<string>MIT License</string>
|
||||
<key>Title</key>
|
||||
<string>gimli 0.28.1, heck 0.3.3, heck 0.4.1, peeking_take_while 0.1.2, unicode-bidi 0.3.15, unicode-normalization 0.1.23, unicode-segmentation 1.11.0</string>
|
||||
<string>gimli 0.28.1, heck 0.3.3, heck 0.4.1, heck 0.5.0, peeking_take_while 0.1.2, unicode-bidi 0.3.15, unicode-normalization 0.1.23, unicode-segmentation 1.11.0</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
@ -6480,7 +6480,7 @@ SOFTWARE.
|
||||
<key>License</key>
|
||||
<string>MIT License</string>
|
||||
<key>Title</key>
|
||||
<string>strum 0.26.2, strum_macros 0.26.2</string>
|
||||
<string>strum 0.26.2, strum_macros 0.26.4</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
@ -6894,40 +6894,7 @@ DEALINGS IN THE SOFTWARE.
|
||||
<key>License</key>
|
||||
<string>MIT License</string>
|
||||
<key>Title</key>
|
||||
<string>curve25519-dalek-derive 0.1.1, adler 1.0.2, anyhow 1.0.86, async-trait 0.1.80, atomic-waker 1.1.2, dyn-clone 1.0.17, fastrand 2.1.0, home 0.5.9, is-terminal 0.4.12, itoa 1.0.11, linkme-impl 0.3.26, linkme 0.3.26, linux-raw-sys 0.4.14, minimal-lexical 0.2.1, num_enum 0.6.1, num_enum_derive 0.6.1, once_cell 1.19.0, paste 1.0.15, pin-project-lite 0.2.14, prettyplease 0.2.20, proc-macro-crate 1.3.1, proc-macro2 1.0.83, quote 1.0.36, rustc-hash 1.1.0, rustix 0.38.34, rustversion 1.0.17, semver 1.0.23, send_wrapper 0.6.0, serde 1.0.202, serde_derive 1.0.202, serde_json 1.0.117, syn-mid 0.6.0, syn 1.0.109, syn 2.0.66, thiserror-impl 1.0.61, thiserror 1.0.61, unicode-ident 1.0.12, utf-8 0.7.6</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Permission is hereby granted, free of charge, to any
|
||||
person obtaining a copy of this software and associated
|
||||
documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without
|
||||
limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice
|
||||
shall be included in all copies or substantial portions
|
||||
of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>MIT License</string>
|
||||
<key>Title</key>
|
||||
<string>displaydoc 0.2.4</string>
|
||||
<string>curve25519-dalek-derive 0.1.1, adler 1.0.2, anyhow 1.0.86, async-trait 0.1.80, atomic-waker 1.1.2, displaydoc 0.2.5, dyn-clone 1.0.17, fastrand 2.1.0, home 0.5.9, is-terminal 0.4.12, itoa 1.0.11, linkme-impl 0.3.26, linkme 0.3.26, linux-raw-sys 0.4.14, minimal-lexical 0.2.1, num_enum 0.6.1, num_enum_derive 0.6.1, once_cell 1.19.0, paste 1.0.15, pin-project-lite 0.2.14, prettyplease 0.2.20, proc-macro-crate 1.3.1, proc-macro2 1.0.83, quote 1.0.36, rustc-hash 1.1.0, rustix 0.38.34, rustversion 1.0.17, semver 1.0.23, send_wrapper 0.6.0, serde 1.0.202, serde_derive 1.0.202, serde_json 1.0.117, syn-mid 0.6.0, syn 1.0.109, syn 2.0.66, thiserror-impl 1.0.61, thiserror 1.0.61, unicode-ident 1.0.12, utf-8 0.7.6</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
|
@ -109,6 +109,7 @@ def main(args=None):
|
||||
if 'npm_package_version' in cargo_env:
|
||||
cargo_env['RUSTFLAGS'] += ' -Clink-arg=-Wl,-current_version,%s' % cargo_env['npm_package_version']
|
||||
|
||||
print("with environment: %s" % (' '.join("%s=%s" % (k, v) for (k, v) in cargo_env.items())))
|
||||
cmd = subprocess.Popen(cmdline, env=cargo_env)
|
||||
cmd.wait()
|
||||
|
||||
|
@ -1 +1 @@
|
||||
nightly-2024-02-14
|
||||
nightly-2024-06-21
|
||||
|
@ -45,3 +45,6 @@ test-case = "3.3"
|
||||
|
||||
[build-dependencies]
|
||||
prost-build = "0.12"
|
||||
|
||||
[lints.rust]
|
||||
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }
|
||||
|
@ -292,7 +292,12 @@ impl TryFrom<[u8; std::mem::size_of::<EndorsementsHeader>()]> for EndorsementsHe
|
||||
type Error = super::Error;
|
||||
|
||||
fn try_from(src: [u8; std::mem::size_of::<EndorsementsHeader>()]) -> super::Result<Self> {
|
||||
unsafe { Ok(transmute(src)) }
|
||||
unsafe {
|
||||
Ok(transmute::<
|
||||
[u8; std::mem::size_of::<EndorsementsHeader>()],
|
||||
Self,
|
||||
>(src))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,7 +154,8 @@ impl TryFrom<[u8; std::mem::size_of::<SgxQuoteBody>()]> for SgxQuoteBody {
|
||||
type Error = super::Error;
|
||||
|
||||
fn try_from(bytes: [u8; std::mem::size_of::<SgxQuoteBody>()]) -> super::Result<Self> {
|
||||
let quote_body: SgxQuoteBody = unsafe { transmute(bytes) };
|
||||
let quote_body =
|
||||
unsafe { transmute::<[u8; std::mem::size_of::<SgxQuoteBody>()], SgxQuoteBody>(bytes) };
|
||||
if quote_body.version.value() != QUOTE_V3 {
|
||||
return Err(Error::new(format!(
|
||||
"unsupported SGX quote version: {}",
|
||||
@ -350,7 +351,9 @@ impl TryFrom<[u8; std::mem::size_of::<SgxEcdsaSignatureHeader>()]> for SgxEcdsaS
|
||||
fn try_from(
|
||||
bytes: [u8; std::mem::size_of::<SgxEcdsaSignatureHeader>()],
|
||||
) -> super::Result<Self> {
|
||||
Ok(unsafe { transmute(bytes) })
|
||||
Ok(unsafe {
|
||||
transmute::<[u8; std::mem::size_of::<SgxEcdsaSignatureHeader>()], Self>(bytes)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -121,6 +121,6 @@ impl TryFrom<[u8; std::mem::size_of::<SgxReportBody>()]> for SgxReportBody {
|
||||
type Error = super::Error;
|
||||
|
||||
fn try_from(src: [u8; std::mem::size_of::<SgxReportBody>()]) -> super::Result<Self> {
|
||||
unsafe { Ok(transmute(src)) }
|
||||
unsafe { Ok(transmute::<[u8; std::mem::size_of::<SgxReportBody>()], Self>(src)) }
|
||||
}
|
||||
}
|
||||
|
@ -45,9 +45,13 @@ pub struct Signature<'a>(&'a [u8]);
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Clock {
|
||||
#[allow(unused)]
|
||||
pub millis_since_clear: u64,
|
||||
#[allow(unused)]
|
||||
pub resets: u32,
|
||||
#[allow(unused)]
|
||||
pub restarts: u32,
|
||||
#[allow(unused)]
|
||||
pub is_safe: bool,
|
||||
}
|
||||
|
||||
|
17
rust/bridge/node/build.rs
Normal file
17
rust/bridge/node/build.rs
Normal file
@ -0,0 +1,17 @@
|
||||
//
|
||||
// Copyright 2024 Signal Messenger, LLC.
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
//
|
||||
|
||||
use std::env;
|
||||
|
||||
fn main() {
|
||||
if env::var("TARGET").expect("set by Cargo") == "x86_64-unknown-linux-gnu" {
|
||||
// The nightly compiler uses a new linker, rust-lld, by default on
|
||||
// x86_64-unknown-linux-gnu, which causes issues with the `linkme` crate.
|
||||
// We could disable rust-lld instead but then we'd lose out on the faster
|
||||
// link times, so pass additional flags to the linker instead. See
|
||||
// https://github.com/dtolnay/linkme/issues/94
|
||||
println!("cargo::rustc-link-arg=-znostart-stop-gc");
|
||||
}
|
||||
}
|
@ -87,7 +87,7 @@ impl<T> OwnedBufferOf<T> {
|
||||
/// Callers of this function must ensure that
|
||||
/// - the `OwnedBufferOf` was originally created from `Box`
|
||||
/// - any C code operating on the buffer left all its elements in a valid
|
||||
/// state.
|
||||
/// state.
|
||||
pub unsafe fn into_box(self) -> Box<[T]> {
|
||||
let Self { base, length } = self;
|
||||
if base.is_null() {
|
||||
|
@ -231,7 +231,7 @@ impl SignalNodeError for SignalProtocolError {
|
||||
Some(error) => cx.throw(error),
|
||||
None => {
|
||||
// Make sure we still throw something.
|
||||
cx.throw_error(&self.to_string())
|
||||
cx.throw_error(self.to_string())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -695,7 +695,7 @@ impl ProtocolAddress {
|
||||
/// Create a new address.
|
||||
///
|
||||
/// - `name` defines a user's public identity, and therefore must be globally unique to that
|
||||
/// user.
|
||||
/// user.
|
||||
/// - Each Signal client instance then has its own `device_id`, which must be unique among
|
||||
/// all clients for that user.
|
||||
///
|
||||
|
@ -10,7 +10,7 @@ futures-util = "0.3.7"
|
||||
mediasan-common = "0.5.0"
|
||||
mp4san = { version = "0.5.0", optional = true }
|
||||
thiserror = "1.0.38"
|
||||
webpsan = { version = "0.5.0", optional = true, default_features = false }
|
||||
webpsan = { version = "0.5.0", optional = true, default-features = false }
|
||||
|
||||
[features]
|
||||
default = ["mp4san", "webpsan"]
|
||||
|
@ -37,7 +37,7 @@ cbc = "0.1.2"
|
||||
clap = { version = "4.2.1", features = ["derive"] }
|
||||
clap-stdin = "0.3.0"
|
||||
derive-where = "1.2.5"
|
||||
displaydoc = "0.2.4"
|
||||
displaydoc = "0.2.5"
|
||||
env_logger = "0.10.0"
|
||||
futures = "0.3.29"
|
||||
hex = "0.4.3"
|
||||
@ -54,6 +54,10 @@ serde_json = { version = "1.0", optional = true }
|
||||
sha2 = "0.10"
|
||||
smallvec = "1.13.2"
|
||||
strum = { version = "0.26", features = ["derive"] }
|
||||
# This isn't strictly necessary but we need at least this version to avoid
|
||||
# warnings from the latest nightly rustc. Remove this when the referenced strum
|
||||
# version has at least this version as a dependency.
|
||||
strum_macros = { version = "0.26.4" }
|
||||
subtle = "2.5.0"
|
||||
thiserror = "1.0.50"
|
||||
uuid = "1.1.2"
|
||||
|
@ -10,7 +10,7 @@ authors = ["Signal Messenger LLC"]
|
||||
license = "AGPL-3.0-only"
|
||||
|
||||
[lib]
|
||||
proc_macro = true
|
||||
proc-macro = true
|
||||
|
||||
[dependencies]
|
||||
heck = "0.3.1"
|
||||
|
@ -34,7 +34,6 @@ tokens_alias!(
|
||||
VisitContainerUnknownFields,
|
||||
crate::unknown::visit_static::VisitContainerUnknownFields
|
||||
);
|
||||
tokens_alias!(UnknownFieldVisitor, crate::unknown::UnknownFieldVisitor);
|
||||
tokens_alias!(Visitor, crate::unknown::visit_static::Visitor);
|
||||
tokens_alias!(PathType, crate::unknown::Path<'_>);
|
||||
tokens_alias!(Path, crate::unknown::Path);
|
||||
|
@ -51,10 +51,10 @@ pub struct CompletedBackup<M: Method> {
|
||||
|
||||
#[derive_where(Default)]
|
||||
struct ChatsData<M: Method> {
|
||||
items: HashMap<ChatId, ChatData<M>>,
|
||||
pinned: Vec<(PinOrder, RecipientId)>,
|
||||
pub items: HashMap<ChatId, ChatData<M>>,
|
||||
pub pinned: Vec<(PinOrder, RecipientId)>,
|
||||
/// Count of the total number of chat items held across all values in `items`.
|
||||
chat_items_count: usize,
|
||||
pub chat_items_count: usize,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
@ -140,7 +140,7 @@ pub struct InvalidExpiration {
|
||||
#[cfg_attr(test, derive_where(PartialEq; M::List<ChatItemData<M>>: PartialEq))]
|
||||
pub struct ChatData<M: Method> {
|
||||
pub recipient: RecipientId,
|
||||
pub(super) items: M::List<ChatItemData<M>>,
|
||||
pub items: M::List<ChatItemData<M>>,
|
||||
pub expiration_timer: Option<Duration>,
|
||||
pub mute_until: Option<Timestamp>,
|
||||
pub style: Option<ChatStyle>,
|
||||
|
@ -52,9 +52,6 @@ impl TryFrom<Vec<u8>> for Key {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
|
||||
pub struct StickerId(u32);
|
||||
|
||||
#[derive(Debug, thiserror::Error, displaydoc::Display)]
|
||||
#[cfg_attr(test, derive(PartialEq))]
|
||||
pub enum StickerPackError {
|
||||
@ -147,13 +144,13 @@ mod test {
|
||||
}
|
||||
|
||||
impl proto::Sticker {
|
||||
pub(crate) const TEST_ID: StickerId = StickerId(9988);
|
||||
pub(crate) const TEST_ID: u32 = 9988;
|
||||
|
||||
pub(crate) fn test_data() -> Self {
|
||||
Self {
|
||||
packId: proto::StickerPack::TEST_ID_BYTES.into(),
|
||||
packKey: proto::StickerPack::TEST_KEY.into(),
|
||||
stickerId: Self::TEST_ID.0,
|
||||
stickerId: Self::TEST_ID,
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
@ -27,10 +27,7 @@ pub mod key;
|
||||
pub mod parse;
|
||||
pub mod unknown;
|
||||
|
||||
#[cfg(not(feature = "expose-proto-types"))]
|
||||
pub(crate) mod proto;
|
||||
#[cfg(feature = "expose-proto-types")]
|
||||
pub mod proto;
|
||||
|
||||
pub struct BackupReader<R> {
|
||||
purpose: Purpose,
|
||||
|
@ -19,9 +19,6 @@ macro_rules! impl_from_oneof {
|
||||
|
||||
use self::backup::*;
|
||||
|
||||
#[cfg(feature = "expose-proto-types")]
|
||||
pub use self::backup::*;
|
||||
|
||||
impl_from_oneof!(
|
||||
chat_item::DirectionalDetails,
|
||||
chat_item::IncomingMessageDetails,
|
||||
|
@ -426,22 +426,22 @@ impl<S: AsyncDuplexStream> ClientResponseCollector<S> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Numeric code set by the server on the websocket close frame.
|
||||
#[repr(u16)]
|
||||
#[derive(Copy, Clone, num_enum::TryFromPrimitive, strum::IntoStaticStr)]
|
||||
enum CdsiCloseCode {
|
||||
InvalidArgument = 4003,
|
||||
RateLimitExceeded = 4008,
|
||||
ServerInternalError = 4013,
|
||||
ServerUnavailable = 4014,
|
||||
InvalidToken = 4101,
|
||||
}
|
||||
|
||||
/// Produces a [`LookupError`] for the provided [`CloseFrame`].
|
||||
///
|
||||
/// Returns `Some(err)` if there is a relevant `LookupError` value for the
|
||||
/// provided close frame. Otherwise returns `None`.
|
||||
fn err_for_close(CloseFrame { code, reason }: CloseFrame<'_>) -> Option<LookupError> {
|
||||
/// Numeric code set by the server on the websocket close frame.
|
||||
#[repr(u16)]
|
||||
#[derive(Copy, Clone, num_enum::TryFromPrimitive, strum::IntoStaticStr)]
|
||||
enum CdsiCloseCode {
|
||||
InvalidArgument = 4003,
|
||||
RateLimitExceeded = 4008,
|
||||
ServerInternalError = 4013,
|
||||
ServerUnavailable = 4014,
|
||||
InvalidToken = 4101,
|
||||
}
|
||||
|
||||
let Ok(code) = CdsiCloseCode::try_from(u16::from(code)) else {
|
||||
log::warn!("got unexpected websocket error code: {code}",);
|
||||
return None;
|
||||
|
@ -118,10 +118,10 @@ impl OpaqueMaskedShareSet {
|
||||
///
|
||||
/// In its essence it is simply a union of three other error types:
|
||||
/// - libsignal_svr3::Error for the errors originating in the PPSS implementation. Most of them are
|
||||
/// unlikely due to the way higher level APIs invoke the lower-level primitives from
|
||||
/// libsignal_svr3.
|
||||
/// unlikely due to the way higher level APIs invoke the lower-level primitives from
|
||||
/// libsignal_svr3.
|
||||
/// - DeserializeError for the errors deserializing the OpaqueMaskedShareSet that is stored as a
|
||||
/// simple blob by the clients and may be corrupted.
|
||||
/// simple blob by the clients and may be corrupted.
|
||||
/// - libsignal_net::svr::Error for network related errors.
|
||||
#[derive(Debug, Error, displaydoc::Display)]
|
||||
#[ignore_extra_doc_attributes]
|
||||
|
@ -75,9 +75,9 @@ fn main() {
|
||||
public_path,
|
||||
} => {
|
||||
let key_pair = KeyPair::generate(key_ty.into());
|
||||
std::fs::write(secret_path, &key_pair.secret_key.serialize())
|
||||
std::fs::write(secret_path, key_pair.secret_key.serialize())
|
||||
.expect("can write to file");
|
||||
std::fs::write(public_path, &key_pair.public_key.serialize())
|
||||
std::fs::write(public_path, key_pair.public_key.serialize())
|
||||
.expect("can write to file");
|
||||
}
|
||||
Command::Encapsulate { public_path } => {
|
||||
|
Loading…
Reference in New Issue
Block a user