Repository navigation
End-to-end encrypted pushes on FCM, APNs and WNS - #79
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
… and the wasm build
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #79 +/- ##
==========================================
+ Coverage 94.25% 94.52% +0.26%
==========================================
Files 39 45 +6
Lines 4930 5937 +1007
Branches 58 61 +3
==========================================
+ Hits 4647 5612 +965
- Misses 244 285 +41
- Partials 39 40 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With the new
encryptionfeature, pushups creates an RFC 8291 key pair on the device, keeps it in the platform key store, and reports the public half with the token, so the app's server can encrypt every push for that device whatever the transport. pushups decrypts before any callback runs, andMessage.payloadis the plaintext the server encrypted. The ciphertext travels under thepushupskey of an FCM data message or an APNs payload, and as{"pushups":"..."}in a WNS raw body. Pushes without it arrive as before.Tokenmoves to a newpushups-tokencrate with serde, and its FCM, APNs and WNS variants gain akeysfield. A newpushups-sendercrate reads that token on the server and encrypts for it without compiling the app crate.#[notification_service]becomes#[rendering_handler]and also runs for every push on Android, Linux and Windows, where pushups shows the notification it returns.pushups::rotate_keys()replaces the keys and registers again. The MSRV rises to 1.88, which the Android and Windows key stores need.The Android key store is a git dependency on open-source-cooperative/android-native-keyring-store#50, which adds the explicit context a headless push needs, so publishing waits for its release. The check that the iOS extension reads its key on a locked iPhone is still to be done by hand.