Skip to content

fix: Fix wrapped/encrypted key and token - #10036

Open
jiexi wants to merge 2 commits into
mainfrom
jl/kyc-controller-fix-encryption
Open

fix: Fix wrapped/encrypted key and token#10036
jiexi wants to merge 2 commits into
mainfrom
jl/kyc-controller-fix-encryption

Conversation

@jiexi

@jiexi jiexi commented Aug 31, 2026

Copy link
Copy Markdown
Member

Explanation

Fixes the wrapping of the encryptedDataKey and ukycCapabilityToken with incorrectly prepended the public key value to the encrypted/wrapped value

References

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them

Note

Medium Risk
Changes UKYC authorization wire crypto for data encryption key and capability token; wrong format would block session setup, but the change aligns with the server contract rather than altering business logic.

Overview
Corrects wrapEncryptionKey so data on UKYC authorizations is NaCl box ciphertext+tag only, not clientPublicKey || ciphertext. The session client public key is already sent on createUkycSession, so embedding it again broke the expected CapabilityAuthorization shape for encryptionDataKey and ukycCapabilityToken.

Tests and JSDoc now assume the server opens the box with the registered client key plus { data, nonce }. A changelog Fixed entry documents the behavior.

Reviewed by Cursor Bugbot for commit 835e646. Bugbot is set up for automated code reviews on this repo. Configure here.

@jiexi
jiexi requested a review from a team as a code owner August 31, 2026 20:39
@jiexi
jiexi deployed to default-branch August 31, 2026 20:39 — with GitHub Actions Active
@jiexi

jiexi commented Aug 31, 2026

Copy link
Copy Markdown
Member Author

@metamaskbot publish-preview

@jiexi
jiexi requested a review from a team as a code owner August 31, 2026 21:26

@Akaryatrh Akaryatrh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@8.0.0-preview-36bc195a7
@metamask-previews/accounts-controller@39.1.1-preview-36bc195a7
@metamask-previews/address-book-controller@7.1.2-preview-36bc195a7
@metamask-previews/ai-controllers@1.0.0-preview-36bc195a7
@metamask-previews/analytics-controller@2.0.0-preview-36bc195a7
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-36bc195a7
@metamask-previews/announcement-controller@8.1.0-preview-36bc195a7
@metamask-previews/app-metadata-controller@2.0.1-preview-36bc195a7
@metamask-previews/approval-controller@9.0.2-preview-36bc195a7
@metamask-previews/assets-controller@14.0.2-preview-36bc195a7
@metamask-previews/assets-controllers@111.1.3-preview-36bc195a7
@metamask-previews/authenticated-user-storage@3.0.2-preview-36bc195a7
@metamask-previews/base-controller@9.1.0-preview-36bc195a7
@metamask-previews/base-data-service@1.0.0-preview-36bc195a7
@metamask-previews/bitcoin-regtest-up@1.0.0-preview-36bc195a7
@metamask-previews/bridge-controller@80.1.0-preview-36bc195a7
@metamask-previews/bridge-status-controller@75.4.0-preview-36bc195a7
@metamask-previews/build-utils@3.0.4-preview-36bc195a7
@metamask-previews/chain-agnostic-permission@1.7.0-preview-36bc195a7
@metamask-previews/chomp-api-service@4.0.1-preview-36bc195a7
@metamask-previews/claims-controller@0.6.1-preview-36bc195a7
@metamask-previews/client-controller@1.0.1-preview-36bc195a7
@metamask-previews/client-utils@2.1.1-preview-36bc195a7
@metamask-previews/compliance-controller@2.1.0-preview-36bc195a7
@metamask-previews/composable-controller@12.0.1-preview-36bc195a7
@metamask-previews/config-registry-controller@3.1.0-preview-36bc195a7
@metamask-previews/connectivity-controller@0.3.0-preview-36bc195a7
@metamask-previews/controller-utils@12.3.0-preview-36bc195a7
@metamask-previews/core-backend@9.0.0-preview-36bc195a7
@metamask-previews/delegation-controller@3.0.2-preview-36bc195a7
@metamask-previews/earn-controller@12.2.6-preview-36bc195a7
@metamask-previews/eip-5792-middleware@3.0.5-preview-36bc195a7
@metamask-previews/eip-7702-internal-rpc-middleware@0.1.1-preview-36bc195a7
@metamask-previews/eip1193-permission-middleware@2.0.1-preview-36bc195a7
@metamask-previews/eth-block-tracker@15.0.1-preview-36bc195a7
@metamask-previews/eth-json-rpc-middleware@24.0.1-preview-36bc195a7
@metamask-previews/eth-json-rpc-provider@6.0.1-preview-36bc195a7
@metamask-previews/foundryup@1.0.1-preview-36bc195a7
@metamask-previews/gas-fee-controller@26.3.2-preview-36bc195a7
@metamask-previews/gator-permissions-controller@5.0.2-preview-36bc195a7
@metamask-previews/geolocation-controller@1.0.0-preview-36bc195a7
@metamask-previews/java-tron-up@1.0.0-preview-36bc195a7
@metamask-previews/json-rpc-engine@10.5.0-preview-36bc195a7
@metamask-previews/json-rpc-middleware-stream@8.0.8-preview-36bc195a7
@metamask-previews/keyring-controller@27.1.1-preview-36bc195a7
@metamask-previews/kyc-controller@0.0.0-preview-36bc195a7
@metamask-previews/local-node-utils@1.0.0-preview-36bc195a7
@metamask-previews/logging-controller@9.0.0-preview-36bc195a7
@metamask-previews/message-manager@14.1.2-preview-36bc195a7
@metamask-previews/messenger@2.0.0-preview-36bc195a7
@metamask-previews/messenger-cli@0.2.0-preview-36bc195a7
@metamask-previews/money-account-api-data-service@0.4.1-preview-36bc195a7
@metamask-previews/money-account-balance-service@2.4.3-preview-36bc195a7
@metamask-previews/money-account-controller@1.0.0-preview-36bc195a7
@metamask-previews/money-account-upgrade-controller@3.0.2-preview-36bc195a7
@metamask-previews/money-account-utils@1.1.0-preview-36bc195a7
@metamask-previews/multichain-account-service@13.0.2-preview-36bc195a7
@metamask-previews/multichain-api-middleware@4.0.3-preview-36bc195a7
@metamask-previews/multichain-network-controller@3.2.4-preview-36bc195a7
@metamask-previews/multichain-transactions-controller@7.1.2-preview-36bc195a7
@metamask-previews/name-controller@9.1.2-preview-36bc195a7
@metamask-previews/network-connection-banner-controller@0.2.1-preview-36bc195a7
@metamask-previews/network-controller@36.0.0-preview-36bc195a7
@metamask-previews/network-enablement-controller@6.0.5-preview-36bc195a7
@metamask-previews/notification-services-controller@26.0.1-preview-36bc195a7
@metamask-previews/passkey-controller@3.1.0-preview-36bc195a7
@metamask-previews/permission-controller@13.1.1-preview-36bc195a7
@metamask-previews/permission-log-controller@5.1.0-preview-36bc195a7
@metamask-previews/perps-controller@15.0.0-preview-36bc195a7
@metamask-previews/phishing-controller@17.4.0-preview-36bc195a7
@metamask-previews/platform-api-docs@0.0.0-preview-36bc195a7
@metamask-previews/polling-controller@16.0.9-preview-36bc195a7
@metamask-previews/preferences-controller@23.1.0-preview-36bc195a7
@metamask-previews/profile-metrics-controller@4.0.3-preview-36bc195a7
@metamask-previews/profile-sync-controller@29.0.0-preview-36bc195a7
@metamask-previews/ramps-controller@20.2.0-preview-36bc195a7
@metamask-previews/rate-limit-controller@7.0.1-preview-36bc195a7
@metamask-previews/react-data-query@1.0.0-preview-36bc195a7
@metamask-previews/remote-feature-flag-controller@6.1.0-preview-36bc195a7
@metamask-previews/sample-controllers@5.0.6-preview-36bc195a7
@metamask-previews/seedless-onboarding-controller@10.1.1-preview-36bc195a7
@metamask-previews/selected-network-controller@26.1.7-preview-36bc195a7
@metamask-previews/sentinel-api-service@1.0.1-preview-36bc195a7
@metamask-previews/shield-controller@6.0.1-preview-36bc195a7
@metamask-previews/signature-controller@39.2.10-preview-36bc195a7
@metamask-previews/smart-transactions-controller@26.0.0-preview-36bc195a7
@metamask-previews/snap-account-service@2.1.2-preview-36bc195a7
@metamask-previews/social-controllers@2.8.0-preview-36bc195a7
@metamask-previews/solana-test-validator-up@1.0.0-preview-36bc195a7
@metamask-previews/stellar-quickstart-up@0.0.0-preview-36bc195a7
@metamask-previews/storage-service@1.0.2-preview-36bc195a7
@metamask-previews/subscription-controller@8.0.1-preview-36bc195a7
@metamask-previews/transaction-controller@69.6.1-preview-36bc195a7
@metamask-previews/transaction-pay-controller@27.1.0-preview-36bc195a7
@metamask-previews/user-operation-controller@41.2.9-preview-36bc195a7
@metamask-previews/wallet@12.0.2-preview-36bc195a7
@metamask-previews/wallet-cli@0.0.0-preview-36bc195a7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants