1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-14 15:33:55 +00:00
Commit Graph

223 Commits

Author SHA1 Message Date
Dmitry Yakimenko
ca21df5f8e Rename admin.exe to bitwarden_chromium_import_helper.exe 2025-10-25 18:11:31 +02:00
Dmitry Yakimenko
b9ca1ae57d Rework SYSTEM process discovery to use sysinfo, iterate through multiple processes 2025-10-25 17:52:10 +02:00
Dmitry Yakimenko
20b6c5a680 Look for admin.exe in runtime, don't need to confiture windows crypto service anymore 2025-10-24 22:54:10 +02:00
Dmitry Yakimenko
4968cae17a Fix admin.exe to run again, some tokio weirdness 2025-10-24 22:53:01 +02:00
Dmitry Yakimenko
535c21a0e5 Use services.exe instead of lsass.exe and winlogon.exe to elevate to SYSTEM 2025-10-23 22:16:30 +02:00
adudek-bw
a730cfe3ca Merge branch 'main' into chromium-import-abe 2025-10-23 08:51:22 -04:00
Bernd Schoolmann
7f86f2d0ac [PM-26340] Implement encrypted memory store (#16659)
* Extract windows biometrics v2 changes

Co-authored-by: Bernd Schoolmann <mail@quexten.com>

* Address some code review feedback

* cargo fmt

* rely on zeroizing allocator

* Handle TDE edge cases

* Update windows default

* Make windows rust code async and fix restoring focus freezes

* fix formatting

* cleanup native logging

* Add unit test coverage

* Add missing logic to edge case for PIN disable.

* Address code review feedback

* fix test

* code review changes

* fix clippy warning

* Swap to unimplemented on each method

* Implement encrypted memory store

* Make dpapi secure key container pub(super)

* Add comments on sync and send

* Clean up comments

* Clean up

* Fix build

* Add logging and update codeowners

* Run cargo fmt

* Clean up doc

* fix unit tests

* Update apps/desktop/desktop_native/core/src/secure_memory/secure_key/mod.rs

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* Handle tampering with re-key and log

* Add docs

* Fix windows build

* Prevent rust flycheck log from being commited to git

* Undo feature flag change

* Add env var override and docs

* Add deps to km owership

---------

Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2025-10-23 14:04:25 +02:00
Dmitry Yakimenko
7c35a363f4 A bunch of clippy warnings fixed on Windows 2025-10-22 13:51:08 +02:00
Dmitry Yakimenko
7b692f0e57 Move all admin.exe code into an inline module and hide it behind cfg windows to fix clippy warning 2025-10-22 13:07:13 +02:00
Dmitry Yakimenko
76ac318bcb Remove unnecessary clippy config attr and stale comments 2025-10-22 11:08:38 +02:00
Dmitry Yakimenko
60b08dbf1b Merge remote-tracking branch 'upstream/main' into chromium-import-abe 2025-10-21 23:09:13 +02:00
neuronull
4c347d09ac Fix biometric v2 windows unit test clippy lint (#16961) 2025-10-21 08:22:09 -06:00
adudek-bw
8c2493a3cc String fix 2025-10-21 09:48:41 -04:00
neuronull
8370f43aae [BEEEP] Add println clippy lints for desktop_native. (#16761)
* [BEEEP] Add println clippy lints for `desktop_native`.

* remaining stray printlns
2025-10-21 07:38:39 -06:00
adudek-bw
2bb00b93ec Clippy fix 2025-10-21 09:22:39 -04:00
Daniel James Smith
bbfdb60c34 [PM-26731] Add feature flag for chromium importers with ABE (#16926)
* Add missing browser to SUPPORTED_BROWSERS in windows.rs

These were previously removed due to needing ABE support

* Add feature flag for chromium importer with ABE

* Fix tests for windows

* Run cargo fmt

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-10-21 10:10:47 +02:00
Dmitry Yakimenko
7477c61f00 Disable one clippy warning on Linux/macOS as it makes no sense on these platforms 2025-10-21 09:13:12 +02:00
Thomas Avery
f65e5d52c2 [PM-25373] Windows native biometric rewrite (#16432)
* Extract windows biometrics v2 changes

Co-authored-by: Bernd Schoolmann <mail@quexten.com>

* Handle TDE edge cases

* Make windows rust code async and fix restoring focus freezes

* Add unit test coverage

---------

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2025-10-20 14:47:15 -05:00
neuronull
70274705fb Add a cargo deny configuration for desktop_native (#16765) 2025-10-20 09:03:53 -06:00
neuronull
f5105621c4 Small refactors to ssh agent server (#16391)
* Small refactors to ssh agent server

* cleanup

* feeback quexten: fix spelling typo
2025-10-20 08:34:28 -06:00
neuronull
44ce303181 [BEEEP] Use tracing in macOS provider (#16729)
* [BEEEP] Use tracing in macOS provider

* set log level filter to INFO

* only call global subscribe once
2025-10-20 08:20:15 -06:00
Dmitry Yakimenko
33003ca3c9 Merge remote-tracking branch 'upstream/main' into chromium-import-abe 2025-10-20 08:38:57 +02:00
neuronull
9c0aaf3cab [BEEEP] Use tracing in desktop_proxy (#16758) 2025-10-17 11:36:30 -06:00
adudek-bw
7015663c38 [PM-25521] Move importer metadata to native code (#16695)
* Add importer metadata to native code

* Impl napi code in ts

* Impl napi code in ts

* Fix clippy

* Fix clippy

* remove ts util tests

* Check for installed browsers

* PR fixes

* test fix

* fix clippy

* fix tests

* Bug fix

* clippy fix

* Correct tests

* fix clippy

* fix clippy

* Correct tests

* Correct tests

* [PM-25521] Wire up loading metadata on desktop (#16813)

* Initial commit

* Fix issues regarding now unused feature flag

* Fixed ts-strict issues

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>

* Remove logic to skip Brave as that now happens via the native code

* Define default capabilities which can be overwritten by specifc client/platform

* Fix DI issues

* Do not overwrite existing importers, just add new ones or update existing ones

* feat: [PM-25521] return metadata directly (not as JSON) (#16882)

* feat: return metadata directly (not as JSON)

* Fix broken builds

Move getMetaData into chromium_importer
Remove chromium_importer_metadata and any related service
Parse object from native instead of json

* Run cargo fmt

* Fix cargo dependency sort order

* Use exposed type from NAPI instead of redefining it.

* Run cargo fmt

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>

* Only enable chromium loader for installed and supported browsers

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
2025-10-17 15:46:10 +02:00
neuronull
7cd9832034 [BEEEP] Use tracing in process_isolation (#16762) 2025-10-16 16:07:28 -06:00
Bernd Schoolmann
a7242a1186 [BEEEP|PM-25164] Prevent memory dumping on renderer on Linux (#16136)
* Implement libmemory_security

* Cleanup and add script

* Remove duplicate build for flatpak

* Rename to process isolation

* Move to desktop native

* Undo changes in gitignore

* Remove after-pack changes

* Run cargo fmt

* Sort deps

* Attempt to fix windows build

* Update apps/desktop/desktop_native/process_isolation/Cargo.toml

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>

* Revert "Remove after-pack changes"

This reverts commit c441025587.

* Fix lib process isolation not being included in build

* Fix build

* Attempt to fix build

* Attempt to fix build

* Undo

* Fix library not being included

---------

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-10-13 15:06:41 +02:00
Dmitry Yakimenko
6287ac3c10 Verify that we're decrypting Chrome keys (sort of) 2025-10-01 21:43:24 +02:00
Dmitry Yakimenko
86b43d80ce - Verify the signature of the server process on the other end of the pipe (PoC)
- Improved error handling
- More logging
2025-10-01 20:45:50 +02:00
neuronull
c2fbd3eb7e More robust error handling for desktop autotype windows implementation (#16501)
* Desktop autotype windows error handling

* create a subdir

* extract window handle to separate file

* remove println in case tracing doesn't make it in

* touchups

* reduce scope of unsafe call

* use tracing

* Fix comparison on GetLastError result

* Remove the WindowHandle wrapper and save it for the unit testing PR

* restore apps/browser/src/platform/system-notifications/browser-system-notification.service.ts

* use the human readable message for GetLastError debug

* don't call GetLastError outside of error path

* add some more debug statements

* feedback coltonhorst: nits, fix false positive when len zero, re-add handle validation

* lint

* feedback coltonhurst: add comments and update var names
2025-09-30 22:22:30 +00:00
neuronull
54a53a1c34 Use tracing in ssh_agent (#16455)
* [BEEEP][PM-255518] Use tracing for improved observability

* feedback dani-garcia: use DefaultVisitor

* set default log level

* convert printlns in objc crate

* convert printlns in autotype crate

* convert printlns in autostart crate

* convert printlns in core/password crate

* convert printlns in core/biometric crate

* convert printlns in napi crate

* convert log usage in macos provider crate

* convert existing log macros to tracing

* fix the cargo.toml sort lint errors

* Revert "fix the cargo.toml sort lint errors"

This reverts commit fd149ab697.

* fix the sort lint using correct cargo sort version

* feedback coltonhurst: more comments/clarity on behavior

* revert changes to ssh_agent

* Use tracing in ssh_agent
2025-09-30 06:33:32 -06:00
Colton Hurst
fc53eae4c5 [PM-22758] Configurable Keyboard Shortcut for Autotype (#16613)
* [PM-22785] Initial push with configuration and ipc changes for the configurable autotype keyboard shortcut

* [PM-22785] Add messy code with working configurable hotkey

* [PM-22785] Add more messy rust code

* [PM-22785] Add temp changes with configurable hotkey ui

* Add shortcut display to settings

* [PM-22785] Logic updates. Ran npm run prettier and lint:fix.

* [PM-22785] Add back disableAutotype with refactors.

* [PM-22785] Clean up Rust code

* [PM-22785] Clean up Rust code v2

* [PM-22785] Add unicode bounds in Rust code

* [PM-22785] Update rust code comments

* [PM-22785] Add unicode_value byte length check post-encoding

* [PM-22785] Extract encoding to a separate function

* Various fixes for the autotype setting label

* Misc component fixes

* Disallow nunmbers and allow Win key

* Themify edit shortcut

* Change display of Super to Win

* Create autotype format method

* Autotpe modal cleanup

* [PM-22785] Some cleanup

* Add unit tests and adjust error handling

* [PM-22785] Fix build issues on Mac and Linux

* [PM-22785] Linting fix

* Remove unused message

* [PM-22785] Linting fix

* [PM-22785] More linting fix

* [PM-22785] Address initial PR comments

* [PM-22785] Comment change

* [PM-22785] If statement change

* [PM-22785] Update with fixes from PR comments

* [PM-22785] Update with fixes from PR comments version ?

* add unit tests for get_alphabetic_hot_key()

* Fix tests

* Add missing mock to tests

* [PM-22785] Update with small fixes via PR comments

---------

Co-authored-by: Robyn MacCallum <robyntmaccallum@gmail.com>
Co-authored-by: neuronull <9162534+neuronull@users.noreply.github.com>
2025-09-29 14:20:15 +00:00
renovate[bot]
adbf80dd39 [deps] Platform: Update Rust crate security-framework to v3.5.0 (#16628)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-09-29 11:31:31 +02:00
Dmitry Yakimenko
c8592fe235 Update architecture description 2025-09-26 00:08:31 +02:00
adudek-bw
f66413e653 Upgrade rusqlite to 0.37.0 (#16530) 2025-09-25 16:54:57 +02:00
Oscar Hinton
87119f9758 Remove allow(clippy::question_mark) (#16565)
Remove the allow(clippy::question_mark) exception by reworking the code to use ?.
2025-09-25 13:31:22 +02:00
neuronull
3f14fdc62d [BEEEP][PM-255518] Use tracing for improved observability (#16321)
* [BEEEP][PM-255518] Use tracing for improved observability

* feedback dani-garcia: use DefaultVisitor

* set default log level

* convert printlns in objc crate

* convert printlns in autotype crate

* convert printlns in autostart crate

* convert printlns in core/password crate

* convert printlns in core/biometric crate

* convert printlns in napi crate

* convert log usage in macos provider crate

* convert existing log macros to tracing

* fix the cargo.toml sort lint errors

* Revert "fix the cargo.toml sort lint errors"

This reverts commit fd149ab697.

* fix the sort lint using correct cargo sort version

* feedback coltonhurst: more comments/clarity on behavior

* revert changes to ssh_agent
2025-09-22 09:56:23 -06:00
Dmitry Yakimenko
9704cf751d Remove async to remove the error/warning 2025-09-22 17:11:19 +02:00
Colton Hurst
51ed3d8aed [PM-26013] Small Autotype Updates (#16498)
* [PM-26013] Update the default hotkey and change the uri scheme for autotype.

* [PM-26013] Edit the matching logic for the autotype uri prefix.
2025-09-19 13:04:47 -04:00
Dmitry Yakimenko
7bc254b512 Parse the ABE key properly and handle multiple enctyption schemes in a browser independent way. Brave ABE is supported now. 2025-09-19 17:22:30 +02:00
Dmitry Yakimenko
43d7cd0497 Merge branch 'main' into chromium-import-abe 2025-09-18 19:24:44 +02:00
adudek-bw
6a7f437b1f Add unit tests to chromium importer (#16462)
* Add unit tests to chromium importer
2025-09-18 13:00:52 -04:00
renovate[bot]
fb2fe703a2 [deps] Platform: Update Rust crate zbus to v5.11.0 (#15289)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 14:11:08 +02:00
renovate[bot]
7b248fb481 [deps] Platform: Update macOS/iOS bindings (#12971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-18 14:10:47 +02:00
Colton Hurst
961cbbe91d Add generated update to index.d.ts (#16408) 2025-09-17 11:22:02 +02:00
Dmitry Yakimenko
f639df5cef Replace colog and env_logger with the crates aready used in the project. And disable admin.exe logging by default. Remove hardcoded filename. 2025-09-16 14:02:35 +02:00
Dmitry Yakimenko
285e2c7610 Replace winapi with windows and homedir with dirs 2025-09-15 21:51:33 +02:00
Dmitry Yakimenko
7dad025a89 Move the user-decrypt from admin to user 2025-09-15 17:20:39 +02:00
Dmitry Yakimenko
4aab9360d1 Bring app bound encryption back together with admin.exe 2025-09-15 14:25:59 +02:00
Bernd Schoolmann
ea1c3252e8 [BEEEP | PM-25358] Add process isolation on windows and mac desktop main process (#16156)
* Prevent memory dumping and debugger on windows and mac main process

* Fix clippy

* Only isolate process when isdev is false

* Clean up

* Add backticks around link
2025-09-04 21:40:25 +02:00
Daniel James Smith
66f5700a75 [PM-24748][PM-24072] Chromium importer (#16100)
* Add importer dummy lib, add cargo deps for win/mac

* Add Chromium importer source from bitwarden/password-access

* Mod crypto is no more

* Expose some Chromium importer functions via NAPI, replace home with home_dir crate

* Add Chromium importer to the main <-> renderer IPC, export all functions from Rust

* Add password and notes fields to the imported logins

* Fix windows to use homedir instead of home

* Return success/failure results

* Import from account logins and join

* Linux v10 support

* Use mod util on Windows

* Use mod util on macOS

* Refactor to move shared code into chromium.rs

* Fix windows

* Fix Linux as well

* Linux v11 support for Chrome/Gnome, everything is async now

* Support multiple browsers on Linux v11

* Move oo7 to Linux

* Fix Windows

* Fix macOS

* Add support for Brave browser in Linux configuration

* Add support for Opera browser in Linux configuration

* Fix Edge and add Arc on macOS

* Add Opera on macOS

* Add support for Vivaldi browser in macOS configuration

* Add support for Chromium browser in macOS configuration

* Fix Edge on Windows

* Add Opera on Windows

* Add Vivaldi on windows

* Add Chromium to supported browsers on Windows

* stub out UI options for chromium direct import

* call IPC funcs from import-desktop

* add notes to chrome csv importer

* remove (csv) from import tool names and format item names as hostnames

* Add ABE/v20 encryption support

* ABE/v20 architecture description

* Add a build step to produce admin.exe and service.exe

* Add Windows v20/ABE configuration functionality to specify the full path to the admin.exe and service.exe. Use ipc.platform.chromiumImporter.configureWindowsCryptoService to configure the Chromium importer on Windows.

* rename ARCHITECTURE.md to README.md

* aligns with guidance from architecture re: in-repository documentation.
* also fixes a failing lint.

* cargo fmt

* cargo clippy fix

* Declare feature flag for using chromium importer

* Linter fix after executing npm run prettier

* Use feature flag to guard the use of the chromium importer

* Added temporary logging to further debug, why the Angular change detection isn't working as expected

* introduce importer metadata; host metadata from service; includes tests

* fix cli build

* Register autotype module in lib.rs
introduce by a bad merge

* Fix web build

* Fix issue with loaders being undefined and the feature flag turned off

* Add missing Chromium support when selecting chromecsv

* debugging

* remove chromium support from chromecsv metadata

* fix default loader selection

* [PM-24753] cargo lib file (#16090)

* Add new modules

* Fix chromium importer

* Fix compile bugs for toolchain

* remove importer folder

* remove IPC code

* undo setting change

* clippy fixes

* cargo fmt

* clippy fixes

* clippy fixes

* clippy fixes

* clippy fixes

* lint fix

* fix release build

* Add files in CODEOWNERS

* Create tools owned preload.ts

* Move chromium-importer.service under tools-ownership

* Fix typeError
When accessing the Chromium direct import options the file button is hidden, so trying to access it's values will fail

* Fix tools owned preload

* Remove dead code and redundant truncation

* Remove configureWindowsCryptoService function/methods

* Clean up cargo files

* Fix unused async

* Update apps/desktop/desktop_native/bitwarden_chromium_importer/Cargo.toml

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>

* Fix napi deps

* fix lints

* format

* fix linux lint

* fix windows lints

* format

* fix missing `?`

* fix a different missing `?`

---------

Co-authored-by: Dmitry Yakimenko <detunized@gmail.com>
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by:  Audrey  <ajensen@bitwarden.com>
Co-authored-by:  Audrey  <audrey@audreyality.com>
Co-authored-by: adudek-bw <adudek@bitwarden.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-09-04 11:21:57 +02:00