Commit Graph

328 Commits

Author SHA1 Message Date
andrew-signal
de881ddde4 backups: Exporter now returns [Result<String, Error>] instead of a serialized JSON array object
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-11-11 16:52:47 -05:00
moiseev-signal
177a495eba java: Use kotlin.Pair 2025-11-06 15:37:29 -08:00
Alex Bakon
1b2304022a Expose net remote config keys in TypeScript
Co-authored-by: Max Moiseev <moiseev@signal.org>
2025-11-06 15:17:32 -08:00
Jordan Rose
42ab48e33c signal-neon-futures: Don't run a full benchmark in --test mode 2025-10-21 15:21:45 -07:00
Jordan Rose
be59696a1b Enforce additional Python style checks
- flake8-comprehensions
- flake8-deprecated
- flake8-import-order
- flake8-quotes

The quoting rules are, roughly:
- Prefer single-quoted strings
- Unless it's a multi-line string / docstring
- Or the string contains an apostrophe
2025-10-16 13:48:03 -07:00
Jordan Rose
85686caa01 node: Combine Native.js and .d.ts into Native.ts
This allows the file to be checked by tsc, which would have caught
some of the missing type aliases sooner (now added to Native.ts.in).
Strictly speaking the behavior is slightly different: we have returned
to exporting many items individually instead of collecting them on a
single object.

Co-authored-by: Alex Bakon <akonradi@signal.org>
2025-10-15 17:50:37 -07:00
Jordan Rose
2b6c801fb6 bridge: Expose sendMultiRecipientMessage in UnauthMessagesService 2025-10-14 18:17:25 -07:00
Jordan Rose
4503a19190 Unify IdentityKeyPair_Deserialize implementations
...in the process revealing that the Java declaration had a missing
exception spec.
2025-10-09 11:31:20 -07:00
Jordan Rose
fb570d7c99 bridge: Add support for returning pairs from bridge_fns 2025-10-09 11:31:20 -07:00
Jordan Rose
6594c2a71a node: Use Neon TLS to access LibSignalErrorBase
...rather than relying on a consistent 'this' object when invoking
functions exported via Neon.
2025-10-08 11:03:13 -07:00
Jordan Rose
42ff946228 node: Enforce @typescript-eslint/method-signature-style 2025-09-24 16:30:43 -07:00
Alex Bakon
a5f2d4248c Migrate signal-neon-futures Node tests to ESM and upgrade deps 2025-09-18 16:05:52 -04:00
Jordan Rose
15af92c93d protocol: Record signed prekey and base key used with a Kyber prekey 2025-09-16 15:33:59 -07:00
Alex Bakon
fb33f261bf Upgrade crates to Rust 2024 edition
Co-authored-by: Andrew <andrew@signal.org>
2025-09-03 15:12:59 -04:00
Alex Bakon
4ea5b762ba Format Rust using 2024 edition rules 2025-09-03 14:22:08 -04:00
Jordan Rose
5c7227b0d8 Placate new mismatched_lifetime_syntaxes warning 2025-08-26 09:32:28 -07:00
Jordan Rose
8fdb2778bc protocol: Split FingerprintError out from SignalProtocolError
The "fingerprint" / safety number operations *are* tied to the
"protocol" in that they provide a way to verify identity keys, but
they are also completely distinct from the message handling that the
rest of SignalProtocolError is used for.
2025-08-15 12:21:25 -07:00
Alex Bakon
bb05cc016e Streamline bridging of SVR-B function arguments 2025-07-29 14:18:16 -04:00
Jordan Rose
0d48e043d1 chat: Use LanguageList all the way up to the bridge layer
And save a few bytes with no spaces after commas.
2025-07-09 11:15:01 -07:00
Jordan Rose
e48357b6f7 CI: Build with -Zdirect-minimal-versions in Slow Tests
Fix -Zdirect-minimal-versions build, then make sure we don't regress
in the future.
2025-06-26 17:30:38 -07:00
Jordan Rose
841f57c30f Move (RegistrationSessionState)RequestedInformation -> ChallengeOption 2025-06-23 10:37:55 -07:00
Jordan Rose
97a2ded3f6 node: Replace Buffer with Uint8Array nearly everywhere
Exceptions:
- Buffers decoding from strings (usually for tests)
- Buffer.concat, if immediately fed into libsignal, which we know
  won't rely on the diverging behavior of slice()
- Encoding GroupIdentifier to base64

Everywhere else, Uint8Array was nearly a drop-in replacement. Places
where it wasn't:
- For tests, use assertArrayEquals more, which converts to hex first
  (better diffs anyway)
- Use TextEncoder and TextDecoder for going back and forth between
  strings and UTF-8 buffers *not* in the tests
2025-06-12 16:49:20 -07:00
Alex Bakon
8a9e18b6c6 Remove unused #[allow], replace with #[expect] 2025-06-03 16:07:06 -04:00
Alex Bakon
b56f448167 Remove some #[allow]s by addressing them 2025-06-03 16:04:36 -04:00
Jordan Rose
f631b09160 node: Update to Neon 1.1
This removes one (1) hack where Neon now provides stronger promises
about lifetimes. (Unfortunately the others are still technically
unsafe.)
2025-05-28 12:00:50 -07:00
Alex Bakon
151c96e52b Apply lint fixes from latest clippy 2025-05-23 10:29:25 -04:00
Alex Bakon
b95359ced8 Allow using registration client to check SVR2 credentials 2025-05-01 08:51:00 -04:00
Alex Bakon
8f1baf561c Use an enum value for IdentityKeyStore.saveIdentity in libraries 2025-04-25 12:52:58 -04:00
Alex Bakon
289d21c829 Bridge other registration response fields to Node 2025-04-11 17:26:32 -04:00
Alex Bakon
6e0e617aa1 Bridge register account function to Node 2025-04-11 14:25:36 -04:00
Alex Bakon
0d916d3aa0 Bridge registration client to Java 2025-04-09 18:57:07 -04:00
Jordan Rose
8f971d83b6 node: Update npm dependencies
`npm update`, plus updates for uuid, node-gyp, and rimraf,
and removing now-unused @types/uuid and @types/long.
2025-04-04 10:13:00 -07:00
Alex Bakon
394ade4a5f Bridge registration session state as handle 2025-03-26 09:15:20 -04:00
Alex Bakon
9385ad2287 Expose registration service client in Node library 2025-03-25 13:23:35 -04:00
Jordan Rose
b742b3bd75 Check in each build script that debug-level logs *are* stripped
This is a bit "belt and suspenders" in that the build scripts are also
the code setting the `log` crate feature that strips the logs, but it
does at least add confidence that we haven't flipped a condition
somewhere, or that the `log` crate feature doesn't work the same way
anymore.
2025-03-21 17:16:33 -07:00
Dimitris Apostolou
eb471374b6 Avoid duplicate crates 2025-03-05 14:27:06 -08:00
Jordan Rose
2ebd7cd2b3 Check for X-Signal-Alert header, and report it in a callback
This on-connect header will be used for lightweight "alerts" from the
server to an authenticated client. For now, it's only threaded through
to the Node implementation; the iOS and Android ones will come later.
2025-03-04 15:07:23 -08:00
Alex Bakon
f05d606e67 Accept uppercase and mixed-case scheme for proxy
Co-authored-by: Jordan Rose <jrose@signal.org>
2025-02-18 10:14:48 -05:00
Jordan Rose
60621db7d1 signal-neon-futures: Turn off backtraces when running tests
On slow machines (like GitHub runners), capturing the first backtrace
was taking longer than the default Mocha timeout for each test. Take
that out of the automated testing; it can still be set manually if
necessary.
2025-02-12 15:10:02 -08:00
Jordan Rose
03a8f3b2c0 Update minidump to 0.22, now that our MSRV is new enough 2025-02-12 10:57:01 -08:00
Jordan Rose
faaa374502 Rust: Move version, authors, and license up to workspace Cargo.toml
For 'authors' and 'license' this is a bulk setting for basically every
crate in the repo. It's not really *shorter* to say that they all get
their values from the root Cargo.toml, but it sets a precedent for
other values.

'version' is a little more interesting. The versions we use for tags
only really apply to the app libraries; it would be odd for Rust
clients to see a bump in the "version" for libsignal-protocol whenever
we do a release when most releases have no changes in
libsignal-protocol. So for now, only the bridge crates are taking the
version from the workspace; if we ever, say, release
libsignal-protocol on crates.io, it'll be important that it has its
own versioning scheme separate from libsignal as a whole.
2025-02-05 13:22:35 -08:00
Andrew
a071849ae5 Reset for version v0.65.7 2025-02-04 17:05:54 -05:00
Andrew
5522925a07 Reset for version v0.65.6 2025-02-03 17:51:54 -05:00
Jordan Rose
3bd5a0a73b Reset for version v0.65.5 2025-01-27 13:00:01 -08:00
andrew-signal
37da5d806e Update release notes to running methodology 2025-01-21 15:05:06 -10:00
Andrew
10dcf92058 Bump to version v0.65.3 2025-01-21 10:16:23 -10:00
Jordan Rose
864a1a1a87 Bump to version v0.65.2 2025-01-15 15:44:44 -08:00
Alex Bakon
908fa98ee4 Bump to version v0.65.1 2025-01-15 11:51:42 -05:00
Jordan Rose
0b9a142268 Make Desktop Linux build reproducible, like the Java/Android build
These docker settings have been copied over from how Signal-Desktop
itself builds reproducibly.
2025-01-14 12:19:17 -08:00
Jordan Rose
701895d541 Bump to version v0.65.0 2025-01-07 14:38:17 -08:00