0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 20:03:07 +02:00
Commit Graph

1188 Commits

Author SHA1 Message Date
Jordan Rose
78bfc21a32 Bump rust-toolchain to nightly-2021-09-19 (same as zkgroup)
This provides newer armv8 intrinsics, as well as support for the
aarch64-apple-ios-sim target.
2021-10-05 18:01:50 -07:00
Jordan Rose
f7c43d2f70
Merge pull request #369 from signalapp/jrose/update_versions.py
Add bin/update_versions.py to make it easier to do a release
2021-10-01 17:16:52 -07:00
Jordan Rose
a1f45b0af2 Add bin/update_versions.py to make it easier to do a release
We were already *reading* all these files (to check that the versions
were in sync); might as well *write* all the files as well.
2021-10-01 16:55:33 -07:00
Jordan Rose
5896c80aaf Bump version to v0.9.6 2021-10-01 16:46:56 -07:00
Jordan Rose
33a783c28f
Merge pull request #368 from signalapp/jrose/release-instructions
Add release instructions (for Signal engineers)
2021-09-30 13:32:58 -07:00
Jordan Rose
b56f02e8fa Add release instructions (for Signal engineers) 2021-09-30 12:32:15 -07:00
Jordan Rose
bb30a3b6d3
Merge pull request #365 from signalapp/jrose/frozen-lockfiles-in-ci
GitHub: Make sure lockfiles don't get rewritten during testing
2021-09-27 15:11:12 -07:00
Jordan Rose
093d82115c GitHub: Make sure lockfiles don't get rewritten during testing
Otherwise, we're not testing what we think we're testing.
2021-09-27 14:44:12 -07:00
Jordan Rose
b83d498311
Merge pull request #364 from signalapp/jrose/build-tweaks
Tweak the build to be more friendly
2021-09-24 16:57:57 -07:00
Jordan Rose
dc032ecb04 Java: adjust 'clean' behavior
- Run `cargo clean` when `gradlew clean` is invoked.
- But don't use `gradlew clean` in Docker except for publishing
2021-09-24 16:31:08 -07:00
Jordan Rose
f441c6c559 Update build instructions for Java and for Swift
Adjusts for recent changes and to clarify issues raised by the
community.
2021-09-24 16:31:08 -07:00
Jordan Rose
5d99e87e2c Swift: Add an error message for missing rust-src when using xargo
xargo does print a reasonably nice error for this, but it doesn't
mention which toolchain to install rust-src for. Check ourselves so
that CocoaPods clients don't have to do something weird like "cd into
the package and run rustup there".
2021-09-24 16:31:08 -07:00
Jordan Rose
d2c34f0f46
Merge pull request #362 from signalapp/jrose/curve25519-speedups
Stop deriving curve25519 public keys when we don't need to
2021-09-23 16:35:25 -07:00
Jordan Rose
bfba43ed55 Stop needlessly deriving the public key for all curve25519 operations
The one operation that needs it, signature calculation, doesn't even
use the pre-derived public key. We were just spending time doing
nothing.
2021-09-23 16:13:46 -07:00
Jordan Rose
94d9a164f6 Sealed Sender v2: avoid rederiving public keys unnecessarily
While a Curve25519 private key can always derive its corresponding
public key, doing so is not a free operation. Make sure we're only
ever doing so once, or not at all if we already have that information.
This results in a ~10% speedup to SSv2 encrypt and decrypt operations.

Also, convert the output of HKDF to a fixed-size array for storage,
instead of keeping around a boxed slice. This seems to allow for
further optimization and another 5% or so speedup.
2021-09-23 16:13:46 -07:00
Jordan Rose
f3a1dff371 Bump version to v0.9.5 2021-09-23 13:44:30 -07:00
Graeme Connell
995d65978b Switch from AESGCM to ChaChaPoly. 2021-09-22 15:07:57 -06:00
Graeme Connell
f9b03af232 Add info log for connecting successfully to code.
Fix lib comment.
2021-09-22 09:20:43 -06:00
Jordan Rose
3e776afa4e
Merge pull request #357 from signalapp/jrose/simplify-curve25519-dalek-dependency
Simplify curve25519-dalek dependency
2021-09-21 15:38:10 -07:00
Graeme Connell
9caa6615b9 JNI for HSM enclave client. 2021-09-21 16:37:07 -06:00
Jordan Rose
3318d306b3 Simplify curve25519-dalek dependency
Signal has a fork of curve25519-dalek to add some features that are
used by zkgroup. However, libsignal-protocol and poksho don't use
those features directly, and thus they don't depend on our fork
specifically. Anyone outside of Signal using libsignal-protocol can
thus use the standard curve25519-dalek and avoid building it twice.
Signal will continue using our fork thanks to the workspace patch in
the root Cargo.toml.

Additionally, remove all the passthrough features for customizing
curve25519-dalek; we don't use any of them, and clients can always
specify them directly.
2021-09-21 11:59:51 -07:00
Jordan Rose
a7bf226166
Merge pull request #354 from signalapp/jrose/node-update-dependencies
Node: update dependencies
2021-09-21 11:50:31 -07:00
Graeme Connell
9aa79c0c59 Client-side rust-only HSM enclave library. 2021-09-21 12:07:27 -06:00
Jordan Rose
b4aec0cacb Node: update dependencies
- Upgrade electron and typescript to match Desktop.
- Manually upgrade node-gyp and electron-mocha.
- Don't explicitly specify mocha; let electron-mocha choose it.
- Don't explicitly specify @types/node; let electron choose it.
- yarn upgrade
2021-09-21 10:28:11 -07:00
Jordan Rose
ddce4ee3a4 Make it clear to node-gyp which action arguments are paths
On Windows, node-gyp tries to be helpful by changing forward slashes
to backslashes and making paths relative to the source root rather
than the build directory, and indeed we rely on that. However, it has
to guess what's a path and what isn't. Previously, we worked around
that by manually stripping the prepended "..\", but the node-gyp
maintainers suggested a better workaround of using joined arguments
instead (`--foo=bar` instead of `--foo bar`).
2021-09-21 10:28:11 -07:00
Jordan Rose
0d5d70038d
Merge pull request #351 from signalapp/jrose/lazily-deserialize-previous-sessions
protocol: Deserialize archived sessions lazily instead of eagerly
2021-09-16 11:21:16 -07:00
Ehren Kret
973f7545b0 Install proper NDK version to fix Java CI 2021-09-13 18:33:46 -05:00
Ehren Kret
5b1d4fb0a3 Bump version to 0.9.4 2021-09-13 16:52:24 -05:00
Ehren Kret
54d79841c9 Wrap callback args with a local frame as well 2021-09-13 16:52:24 -05:00
Ehren Kret
53ecd6e589 Bump version to 0.9.3 2021-09-13 15:21:13 -05:00
Ehren Kret
2a8b4a2d97 Fix gradle build 2021-09-13 15:15:30 -05:00
Ehren Kret
f9f45149a1 auto_local may not be catching all the local objects created
trying using a small local frame instead
2021-09-10 17:38:24 -05:00
Ehren Kret
a3578fa6d4 Bump version to 0.9.2 2021-09-10 10:24:54 -05:00
Ehren Kret
b1618aa5c3 Fix warnings 2021-09-10 10:22:31 -05:00
Ehren Kret
07a4713bf1 Clean garbage on the fly instead of pushing a huge local frame 2021-09-10 10:22:31 -05:00
Ehren Kret
35eccb94d1 Bump version to 0.9.1 2021-09-09 13:07:09 -05:00
Ehren Kret
3ed0ff84a3 Increase local JNI frame to 8192 for all JNI calls
This is overkill for most calls but multi-recipient messages require
potentially a lot of objects. The codegen is in the way of making a
surgical change at the moment so hitting it with a broad fix for
now. May return to add a conditional to the macro definition later.
2021-09-09 12:25:37 -05:00
Ehren Kret
d40eb7255c Add missing section to end of LICENSE file 2021-09-09 09:30:13 -05:00
Jordan Rose
33c88b2600 protocol: Deserialize archived sessions lazily instead of eagerly
The only operation that touches archived sessions is decryption, and
even then only in two cases: when checking to see if an incoming
PreKey message matches an existing session, and after decrypting on
the current session fails. Neither of those are unlikely, but they
happen an order of magnitude less than normal decryptions (not to
mention encryptions), so it's worth making the fast path faster.
2021-09-03 16:58:44 -07:00
Jordan Rose
4ca02dd809 protocol: Add benchmarks for decryption with an archived session
One for when the session is used, and one for when it's ignored.
2021-09-03 16:58:44 -07:00
Alan Evans
aaa24f6efa
Handle repeated (public_key, chain_id) pairs 2021-09-03 14:03:25 -03:00
Jordan Rose
6026b8474e Bump version to 0.9.0 2021-08-31 14:50:01 -07:00
Jordan Rose
8af66489bb
Merge pull request #349 from signalapp/jrose/InvalidRegistrationId
Sealed sender v2: add an InvalidRegistrationId exception/error
2021-08-31 14:46:33 -07:00
Jordan Rose
8c5b6af3fa Sealed sender v2: add an InvalidRegistrationId exception/error
This dedicated error is thrown when a recipient has a registration ID
that's out of the range used by Signal [0, 0x3FFF]. These IDs cannot
be encoded in the sealed sender v2 format and are not supported, even
though they don't cause any problems for 1:1 messages.
2021-08-31 13:11:10 -07:00
Jordan Rose
1f477c860c swiftlint: Allow test files to be longer than library files 2021-08-31 13:11:10 -07:00
Jordan Rose
aa486c64a3 Java: preserve underlying exception as the cause of a ProtocolException
Otherwise we'll lose the "cause" message in stack traces.
2021-08-31 12:46:51 -07:00
Jordan Rose
eee8d90a62
Merge pull request #348 from signalapp/jrose/java-no-eager-strip
Java: don't eagerly strip libsignal_client.so; let gradle do it for us
2021-08-30 12:48:07 -07:00
Jordan Rose
eab0e57640 Java: don't eagerly strip libsignal_client.so; let gradle do it for us
This is a step towards saving the debug info somewhere for the builds
we actually ship.
2021-08-30 12:33:18 -07:00
Jordan Rose
72ba4e6959 Bump version to 0.8.4 2021-08-18 12:13:11 -07:00
Jordan Rose
7a81e96a1d
Merge pull request #344 from signalapp/log-on-decrypt
protocol: More logging for successful decryption of 1:1 messages
2021-08-18 12:10:35 -07:00