Files
silent-send/package.json
T
Claude 97e37e65ac fix: cross-browser sync import corrupting local encryption + v2.0.9
Root cause: when importing an encrypted sync code from another device,
_decryptFromSync was replacing the local encryption config (salt) with
the source device's salt. This caused:
1. Local key cache derived from wrong salt
2. Local data (encrypted with local salt) became unreadable
3. _applyData tried to write with the wrong key

Fixed with a complete refactor of cross-device decryption:
- authenticateForSync() derives a TEMPORARY key using the source salt
- Temporary key stored separately as 'tempSyncKey' in IndexedDB
- Local encryption config and cached key are NEVER modified
- After decryption, _applyData writes via _writeSecure using the
  LOCAL key (which uses the local salt)
- _handleDecryptedMeta extracted for code reuse

Also:
- Options.js auth handler detects pending sync import and routes to
  authenticateForSync instead of regular authenticate
- After auth success, automatically retries the import
- README updated: imported passwords are protected (dots in UI,
  vault password to reveal, AES-256 encrypted at rest)
- Bumped to v2.0.9

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-27 05:23:50 +00:00

19 lines
572 B
JSON

{
"name": "silent-send",
"version": "2.0.9",
"private": true,
"license": "BSL-1.1",
"description": "Browser extension that substitutes personal data before sending to AI services",
"scripts": {
"build:chrome": "./build.sh chrome",
"build:firefox": "./build.sh firefox",
"build": "./build.sh both",
"lint:firefox": "npx web-ext lint --source-dir dist/firefox",
"sign:firefox": "./sign-firefox.sh",
"run:firefox": "./build.sh firefox && npx web-ext run --source-dir dist/firefox"
},
"devDependencies": {
"web-ext": "^8.4.0"
}
}