Conversation
theidkamp
force-pushed
the
fxcm-2281-integrate-encryptor
branch
from
September 10, 2026 20:42
cbfbb17 to
516027a
Compare
theidkamp
force-pushed
the
fxcm-2281-integrate-encryptor
branch
4 times, most recently
from
September 15, 2026 07:34
503e4c4 to
c37bde5
Compare
5 tasks
theidkamp
force-pushed
the
fxcm-2281-integrate-encryptor
branch
from
September 18, 2026 13:08
c37bde5 to
57f41f7
Compare
theidkamp
marked this pull request as ready for review
September 22, 2026 13:49
Move autofill's credit-card encryption onto the shared db-crypto crate and let AutofillDb own the encryptor, as logins' LoginDb does. The consumer supplies it when building the store, so no key is passed into individual calls or down through the sync layers.
theidkamp
force-pushed
the
fxcm-2281-integrate-encryptor
branch
from
September 22, 2026 13:54
57f41f7 to
5574c93
Compare
This branch has not been deployed
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.
What
The autofill store now owns its encryption context:
Store::new()takes anEncryptorDecryptor(from the shareddb-cryptocrate, #7542) and passes it to the database. All code accessing the encrypted column obtains theencryptor/decryptor from the database, so encryption keys no longer need to be passed through the sync API.
constructor(string dbpath, EncryptorDecryptor encdec)scrub_undecryptable_credit_card_data_for_remote_replacement()no longer takes an encryption key.This follows the same structure as logins on the
db-cryptobranch:autofill/src/encryption.rshas been removed. Call sites now usedb_cryptotypes directly, string conversion lives next to its consumers, and the key-based UDL functions have moved tolib.rs.create_static_key_manager,create_managed_encdec,create_autofill_store_with_static_key_manager,and behind the new
keydbfeaturecreate_autofill_store_with_nss_keymanager(using the key nameas-autofill-key).Breaking changes
Code that constructs the store (or calls scrub) is affected, one call site per platform:
RustAutofillStore.sys.mjs(Store.init)AutofillCreditCardsAddressesStorage.kt(store init, usescreateAutofillStoreWithStaticKeyManager(dbPath, key)with the existing autofill key)RustAutofill.swift(store init + the scrub call, iOS is its only caller)The sync engine also no longer implements
set_local_encryption_key. The store ownsthe encryptor, so there is nothing to hand over. Consumers must stop passing an
encryption key for
creditcardsin the sync manager'slocal_encryption_keysbefore updating; passing one now hits sync15's default and panics at sync time
(a runtime break, not a compile break):
WorkManagerSyncManager.kt:410–414: drop the CreditCardskeyProviderguard and its
engineKeyProvidersregistration, leaving onlyregisterWithSyncManager()(matching the Passwords branch)RustSyncManager.swift: droplocalEncryptionKeys["creditcards"] = keyBlocked on #7542 this branch does not build until the shared crate lands.
Pull Request checklist
[ci full]to the PR title.