Skip to content

Update dependency @wireapp/core-crypto to v10 - #21991

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/wireapp-core-crypto-10.x
Open

Update dependency @wireapp/core-crypto to v10#21991
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/wireapp-core-crypto-10.x

Conversation

@renovate

@renovate renovate Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@wireapp/core-crypto 9.3.410.4.0 age confidence

Release Notes

wireapp/core-crypto (@​wireapp/core-crypto)

v10.4.0

Compare Source

  • PkiEnvironment now supports adding multiple trust anchors. Previously, addTrustAnchor replaced any existing trust
    anchor. Get all added trust anchor certificates via getTrustAnchors. Remove a trust anchor via removeTrustAnchor
    by 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 + 1 arrived while the conversation was still in epoch n, CoreCrypto buffered it in the
    database, 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, 787 instead.

    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).

  • proteusNewPrekeyAuto still reuses the ids of deleted prekeys before allocating new ones, but no longer ensures that
    those ids are reused in strictly ascending order.

v10.3.0

Compare Source

  • DecryptedMessage is now an enum with Text, Commit, and Proposal variants. For migration, see the migration
    guide.

  • 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
    proteusSessionExists before deciding whether to establish a session — as proteusDecryptSafe does — 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 proteusSessionDelete to delete nothing while reporting success, and
    affected 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.

  • proteusSessionExists now returns an error, rather than false, 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 false no longer does so in that case. proteusDecryptSafe likewise returns the
    error instead of establishing a replacement session.

v10.2.0

Compare Source

v10.0.0

Compare Source


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the renovate label Jul 24, 2026
@renovate
renovate Bot force-pushed the renovate/wireapp-core-crypto-10.x branch 2 times, most recently from 65aad7f to caa97fd Compare July 31, 2026 18:06
@renovate
renovate Bot force-pushed the renovate/wireapp-core-crypto-10.x branch 3 times, most recently from a7c724e to 9824de7 Compare August 14, 2026 12:07
@renovate
renovate Bot force-pushed the renovate/wireapp-core-crypto-10.x branch from 9824de7 to aded487 Compare August 22, 2026 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants