Update dependency @wireapp/core-crypto to v10 - #21991
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/wireapp-core-crypto-10.x
branch
2 times, most recently
from
July 31, 2026 18:06
65aad7f to
caa97fd
Compare
renovate
Bot
force-pushed
the
renovate/wireapp-core-crypto-10.x
branch
3 times, most recently
from
August 14, 2026 12:07
a7c724e to
9824de7
Compare
renovate
Bot
force-pushed
the
renovate/wireapp-core-crypto-10.x
branch
from
August 22, 2026 13:07
9824de7 to
aded487
Compare
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.
This PR contains the following updates:
9.3.4→10.4.0Release Notes
wireapp/core-crypto (@wireapp/core-crypto)
v10.4.0Compare Source
PkiEnvironmentnow supports adding multiple trust anchors. Previously,addTrustAnchorreplaced any existing trustanchor. Get all added trust anchor certificates via
getTrustAnchors. Remove a trust anchor viaremoveTrustAnchorby providing the Subject Public Key Info (SPKI) fingerprint.
Fixes a bug which caused MLS messages that arrived out of order to be discarded instead of buffered for replay.
When a message for epoch
n + 1arrived while the conversation was still in epochn, CoreCrypto buffered it in thedatabase, but a stale foreign key constraint rejected that write for every conversation which had already been
established. The message was never replayed once the epoch advanced, producing a keystore error based on Sqlite
ConstraintViolation, 787instead.This bug affected versions 10.0.0-10.3.0; earlier versions had foreign key constraint checks disabled.
Wiping a conversation, or abandoning an external join which the delivery service rejected, now also discards the
messages and commits that conversation had buffered. Previously those rows stayed in the database indefinitely, with
nothing able to read or remove them. This does not remove existing stale rows, but prevents new ones from leaking into
the database.
Operations within a CoreCrypto transaction are now applied to the database in the order they were performed, and all
reads within a transaction reflect earlier writes in that same order. Previously reads would sometimes but not always
reflect writes within the transaction, and operations would be played back into the database in arbitrary order
(hashmap).
proteusNewPrekeyAutostill reuses the ids of deleted prekeys before allocating new ones, but no longer ensures thatthose ids are reused in strictly ascending order.
v10.3.0Compare Source
DecryptedMessageis now an enum withText,Commit, andProposalvariants. For migration, see the migrationguide.
Fixes a bug which caused stored Proteus sessions to be established afresh rather than loaded, discarding the session
state already in the database. Every release from v10.0.0 through v10.2.0 is affected.
Proteus sessions are keyed by a text identifier, which the generated lookup query bound as binary data. SQLite never
considers a binary value equal to a text one, so the query matched no rows, and a stored session appeared not to
exist. CoreCrypto holds up to 200 recently used sessions in memory, which hid this until that cache went cold: on a
restart, on a new CoreCrypto instance, or once more than 200 sessions had been used. Code which asks
proteusSessionExistsbefore deciding whether to establish a session — asproteusDecryptSafedoes — was answered"no" for every stored session, and the replacement session it then established overwrote the state that was in the
database all along. The same fault caused
proteusSessionDeleteto delete nothing while reporting success, andaffected lookups of CRLs and E2EI intermediate certificates by their string identifiers.
CoreCrypto cannot repair an affected database. It has no way to distinguish a session which ought to still be there
from one whose deletion silently failed, and overwritten session state is not recoverable. Clients which have that
context may wish to implement a repair pass of their own.
proteusSessionExistsnow returns an error, rather thanfalse, when a session is stored but cannot be loaded.Treating a failed load as an absent session is what allowed the bug above to overwrite live state, so code which
establishes a session in response to
falseno longer does so in that case.proteusDecryptSafelikewise returns theerror instead of establishing a replacement session.
v10.2.0Compare Source
v10.0.0Compare Source
Configuration
📅 Schedule: (in timezone Europe/Berlin)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.