diff --git a/Cargo.lock b/Cargo.lock index eaf40ec..1ecac4f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -589,6 +589,7 @@ version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] @@ -1154,6 +1155,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "either" version = "1.9.0" @@ -1581,6 +1588,12 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + [[package]] name = "gurk" version = "0.4.0" @@ -2037,6 +2050,15 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + [[package]] name = "jpeg-decoder" version = "0.3.0" @@ -2067,7 +2089,7 @@ checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libsignal-protocol" version = "0.1.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.22.2#39293fa9067c8b305a76b8d748f6931e645a8f15" +source = "git+https://github.com/signalapp/libsignal?tag=v0.28.1#86b2fcc427bf32530866f4e30b18707c1f3682f7" dependencies = [ "aes", "aes-gcm-siv", @@ -2076,18 +2098,23 @@ dependencies = [ "block-modes", "curve25519-dalek", "displaydoc", + "generic-array", "hex", "hkdf 0.11.0", "hmac 0.11.0", "itertools 0.10.5", "log", "num_enum", + "pqcrypto-kyber", + "pqcrypto-traits", "prost 0.9.0", "prost-build 0.9.0", "rand 0.7.3", "sha2 0.9.9", + "signal-crypto", "subtle", "thiserror", + "typenum", "uuid", "x25519-dalek", ] @@ -2095,7 +2122,7 @@ dependencies = [ [[package]] name = "libsignal-service" version = "0.1.0" -source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=c2f70ef#c2f70efd88bbebc9b646690a8449c451af619f2c" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=8789920#87899201123b8095cd0f30317620a6d5b7fd652b" dependencies = [ "aes", "aes-gcm", @@ -2128,7 +2155,7 @@ dependencies = [ [[package]] name = "libsignal-service-hyper" version = "0.1.0" -source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=c2f70ef#c2f70efd88bbebc9b646690a8449c451af619f2c" +source = "git+https://github.com/whisperfish/libsignal-service-rs?rev=8789920#87899201123b8095cd0f30317620a6d5b7fd652b" dependencies = [ "async-trait", "async-tungstenite", @@ -2857,7 +2884,7 @@ dependencies = [ [[package]] name = "poksho" version = "0.7.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.22.2#39293fa9067c8b305a76b8d748f6931e645a8f15" +source = "git+https://github.com/signalapp/libsignal?tag=v0.28.1#86b2fcc427bf32530866f4e30b18707c1f3682f7" dependencies = [ "curve25519-dalek", "hmac 0.11.0", @@ -2920,10 +2947,41 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "pqcrypto-internals" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9d34bec6abe2283e6de7748b68b292d1ffa2203397e3e71380ff8418a49fb46" +dependencies = [ + "cc", + "dunce", + "getrandom 0.2.10", + "libc", +] + +[[package]] +name = "pqcrypto-kyber" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9d9695c19e525d5366c913562a331fbeef9a2ad801d9a9ded61a0e4c2fe0fb" +dependencies = [ + "cc", + "glob", + "libc", + "pqcrypto-internals", + "pqcrypto-traits", +] + +[[package]] +name = "pqcrypto-traits" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97e91cb6af081c6daad5fa705f8adb0634c027662052cb3174bdf2957bf07e25" + [[package]] name = "presage" version = "0.6.0-dev" -source = "git+https://github.com/whisperfish/presage?rev=0.5.2#673d30686c8da8df6f45d2e9cf9d2d5eec2651c9" +source = "git+https://github.com/whisperfish/presage?rev=db46e0d8dbb5e65bb4deeace4ea3502bacb8180f#db46e0d8dbb5e65bb4deeace4ea3502bacb8180f" dependencies = [ "base64 0.12.3", "futures", @@ -2942,7 +3000,7 @@ dependencies = [ [[package]] name = "presage-store-sled" version = "0.6.0-dev" -source = "git+https://github.com/whisperfish/presage?rev=0.5.2#673d30686c8da8df6f45d2e9cf9d2d5eec2651c9" +source = "git+https://github.com/whisperfish/presage?rev=db46e0d8dbb5e65bb4deeace4ea3502bacb8180f#db46e0d8dbb5e65bb4deeace4ea3502bacb8180f" dependencies = [ "async-trait", "base64 0.12.3", @@ -3592,6 +3650,19 @@ dependencies = [ "syn 2.0.33", ] +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha-1" version = "0.10.1" @@ -3647,6 +3718,23 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "signal-crypto" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.28.1#86b2fcc427bf32530866f4e30b18707c1f3682f7" +dependencies = [ + "aes", + "block-modes", + "displaydoc", + "generic-array", + "ghash", + "hmac 0.11.0", + "sha-1 0.9.8", + "sha2 0.9.9", + "subtle", + "thiserror", +] + [[package]] name = "signal-hook" version = "0.3.17" @@ -4303,7 +4391,7 @@ dependencies = [ "log", "rand 0.8.5", "rustls", - "sha-1", + "sha-1 0.10.1", "thiserror", "url", "utf-8", @@ -5102,10 +5190,22 @@ dependencies = [ "syn 2.0.33", ] +[[package]] +name = "zkcredential" +version = "0.1.0" +source = "git+https://github.com/signalapp/libsignal?tag=v0.28.1#86b2fcc427bf32530866f4e30b18707c1f3682f7" +dependencies = [ + "curve25519-dalek", + "displaydoc", + "lazy_static", + "poksho", + "serde", +] + [[package]] name = "zkgroup" version = "0.9.0" -source = "git+https://github.com/signalapp/libsignal?tag=v0.22.2#39293fa9067c8b305a76b8d748f6931e645a8f15" +source = "git+https://github.com/signalapp/libsignal?tag=v0.28.1#86b2fcc427bf32530866f4e30b18707c1f3682f7" dependencies = [ "aead", "aes-gcm-siv", @@ -5117,6 +5217,9 @@ dependencies = [ "poksho", "serde", "sha2 0.9.9", + "signal-crypto", + "subtle", + "zkcredential", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index efee309..880aa2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,8 +28,8 @@ debug = true dev = ["prost", "base64"] [dependencies] -presage = { git = "https://github.com/whisperfish/presage", rev = "0.5.2" } -presage-store-sled = { git = "https://github.com/whisperfish/presage", rev = "0.5.2" } +presage = { git = "https://github.com/whisperfish/presage", rev = "db46e0d8dbb5e65bb4deeace4ea3502bacb8180f" } +presage-store-sled = { git = "https://github.com/whisperfish/presage", rev = "db46e0d8dbb5e65bb4deeace4ea3502bacb8180f" } anyhow = "1.0.66" async-trait = "0.1.58" diff --git a/src/ui/draw.rs b/src/ui/draw.rs index 39901ae..6ee9103 100644 --- a/src/ui/draw.rs +++ b/src/ui/draw.rs @@ -267,7 +267,7 @@ fn draw_messages(f: &mut Frame, app: &mut App, area: Rect) { prepare_receipts(app, height); let Some(&channel_id) = app.channels.selected_item() else { - return + return; }; let channel = app .storage