1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 00:03:56 +00:00
Commit Graph

88 Commits

Author SHA1 Message Date
neuronull
db16c201b8 Align Desktop Native's Rust CI checks with SDK (#17261)
* clean crate deps

* update lint workflow

* add rustfmt.toml

* apply rust fmt

* missed one

* fix lint of lint lol

* more deps platform fixes

* fix macos_provider

* some more deps clean

* more cleanup

* add --all-targets

* remove another unused dep

* generate index.d.ts

* fix whitespace

* fix split comment in biometric

* formatting comment in biometric_v2

* apply fmt
2025-11-19 15:07:57 +00:00
Andreas Coroiu
8aebfbeace [PM-25932] Shorten socket paths (#17093)
* feat: shorten socket paths

* fix: No such file or directory error

* feat: remove tmp folder from path

* fix: No such file or directory autofill error
2025-10-31 08:15:04 +01:00
Bernd Schoolmann
b1738cc6b2 [PM-26340] Add linux biometrics v2 (#16660)
* 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 linux biometrics v2

* Run cargo fmt

* Fix cargo lock

* Undo AC changes

* Undo change

* Fix build

* Cargo fmt

---------

Co-authored-by: Thomas Avery <tavery@bitwarden.com>
Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2025-10-29 15:51:50 +01: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
neuronull
4c347d09ac Fix biometric v2 windows unit test clippy lint (#16961) 2025-10-21 08:22:09 -06: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
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
7cd9832034 [BEEEP] Use tracing in process_isolation (#16762) 2025-10-16 16:07:28 -06: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
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
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
Oscar Hinton
97ee61db00 Configure clippy (#16194)
Apply the same clippy configuration as we have in sdk-internal. bitwarden/sdk-internal@49f84e6/Cargo.toml#L91-L94

Adds FIXME comments to all existing violations. unwrap is bad as those will resullt in panics and crash the application. Unused async is ignored in napi since that would require changes to the js side which I don't want to deal with.
2025-08-29 08:27:50 -04:00
Maciej Zieniuk
167fa9a7ab [PM-18054] Chrome extension biometric unlock not functioning correctly with Windows Hello. (#14953)
* Chrome extension biometric unlock not functioning correctly with Windows Hello.

When unlocking via Windows Hello prompt, the popup have to be in the foreground. If it is not, even for short amount of time (few seconds), if later prompt confirmed, it won't return success when returning signed os key half.

* unit test coverage

* unit test coverage

* exclude test files from build

* use electron `setAlwaysOnTop` instead of toggle

* remove Windows os key half created with derive_key_material biometric function, that prompted Windows Hello.

Moves Windows hello prompt into getBiometricKey.
Witness key no longer needed.

* windows crate formatting

* remove biometric on app start for windows

* failing os biometrics windows unit tests

* cleanup of os biometrics windows unit tests

* increased coverage of os biometrics windows unit tests

* open Windows Hello prompt in the currently focused window, instead of always desktop app

* conflict resolution after merge, typescript lint issues, increased test coverage.

* backwards compatibility when require password on start was disabled

* biometric unlock cancellation and error handling

* biometric settings simplifications
2025-07-21 19:35:31 +02:00
Bernd Schoolmann
8250e40c6c [PM-22271] Switch to SDK argon2 implementation, and drop other impls (#15401)
* Switch to SDK argon2 implementation

* Cleanup and update to the latest sdk

* Update package lock

* Remove copy patch

* Fix builds

* Fix test build

* Remove error

* Fix tests

* Fix build

* Run prettier

* Remove argon2 references

* Regenerate index.d.ts for desktop_native napi

* Replace mocked crypto function service type
2025-07-15 11:53:58 +02:00
Daniel García
318040233c [PM-23159] Update arboard and enable exclude from history on Linux (#15393) 2025-07-10 19:17:13 +02:00
Bernd Schoolmann
e7d5cde105 [BEEEP/PM-22958] Update russh version, and add sessionbind information (#14602)
* Update russh version, and add sessionbind information

* Cargo fmt

* Clean up to fix lint

* Attempt to fix windows

* Use expect instead of unwrap

* Fix cargo toml
2025-07-09 16:52:47 +02:00
Daniel García
616ac9a3c8 Fix Clippy 1.88 warnings (#15396)
* Fix Clippy 1.88 warnings

* Fmt
2025-07-01 22:36:18 +02:00
Maciej Zieniuk
8fec95671d [PM-22090] Delete password on Windows desktop throws incorrect error (#15070)
* delete password on Windows desktop throws incorrect error

* delete password on Windows desktop throws incorrect error

* napi documentation improvements

* napi documentation update

* better logging verbosity

* desktop native clippy errors

* unit test coverage

* napi TS documentation JS language friendly

* fixing merge conflicts
2025-06-30 12:38:51 +02:00
Bernd Schoolmann
c7dcc32ea7 Remove test keys (#15205) 2025-06-16 14:43:11 +02:00
renovate[bot]
41830ae334 [deps] Platform: Update zbus to v5 (major) (#12312)
* [deps] Platform: Update zbus to v5

* adjust for api changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: addisonbeck <github@addisonbeck.com>
2025-06-11 15:45:07 -04:00
Bernd Schoolmann
04ed114e0e [BEEEP/PM-8492] Add autostart for flatpak (#12016)
* Add autostart for flatpak via ashpd

* Fix clippy errors

* Cargo fmt

* Fix clippy
2025-05-26 00:30:52 +02:00
renovate[bot]
b56cfba5bf [deps] Platform: Update Rust crate rand to v0.9.1 (#13434)
* [deps] Platform: Update Rust crate rand to v0.9.1

* remedy new lint errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: addisonbeck <github@addisonbeck.com>
2025-05-08 21:04:29 +02:00
Bernd Schoolmann
a1e975a6ae [BEEEP] Add zeroizing alloc to desktop_native (#14601)
* Add zeroizing alloc

* Cleanup

* Cleanup
2025-05-05 12:45:56 +02:00
Colton Hurst
31e455ff35 [PM-19471] Update Rust windows crate to 0.61.1 (#13974)
* PM-19471: Update Rust windows crate to 0.61.1

* PM-19471: Add new crate to renovate.json5
2025-04-02 16:40:38 -04:00
Todd Martin
6b36818e4a [PM-17232] Move all desktop native dependencies to workspace Cargo.toml (#13750)
* Moved all desktop native dependencies to workspace

* Excluded workspace Cargo.toml from code ownership

* Added all Cargo dependencies to Renovate config

* Fixed from test warnings.

* Updates to lockfile
2025-03-12 16:47:09 -04:00
Bernd Schoolmann
01f6fd7ee3 [PM-16227] Move import to sdk and enable it in browser/web (#12479)
* Move import to sdk and enable it in browser/web

* Add uncomitted files

* Update package lock

* Fix prettier formatting

* Fix build

* Rewrite import logic

* Update ssh import logic for cipher form component

* Fix build on browser

* Break early in retry logic

* Fix build

* Fix build

* Fix build errors

* Update paste icons and throw error on wrong import

* Fix tests

* Fix build for cli

* Undo change to jest config

* Undo change to feature flag enum

* Remove unneeded lifetime

* Fix browser build

* Refactor control flow

* Fix i18n key and improve import behavior

* Remove for loop limit

* Clean up tests

* Remove unused code

* Update libs/vault/src/cipher-form/components/sshkey-section/sshkey-section.component.ts

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>

* Move import logic to service and add tests

* Fix linting

* Remove erroneous includes

* Attempt to fix storybook

* Fix storybook, explicitly implement ssh-import-prompt service abstraction

* Fix eslint

* Update libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts

Co-authored-by:  Audrey  <ajensen@bitwarden.com>

* Fix services module

* Remove ssh import sdk init code

* Add tests for errors

* Fix import

* Fix import

* Fix pkcs8 encrypted key not parsing

* Fix import button showing on web

---------

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
Co-authored-by:  Audrey  <ajensen@bitwarden.com>
2025-03-10 18:41:47 +01:00
Zihad
0c61a44d33 [PM-18413] Fix SSH agent initial prompt issues (#13468)
* fix: set `needs_unlock` default value to true on unix

closes #13323

* fix: ssh prompt not appearing right after unlocking vault

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
2025-03-03 14:05:18 -05:00
Bernd Schoolmann
cb028eadb5 [PM-15934] Add agent-forwarding detection and git signing detection parsers (#12371)
* Add agent-forwarding detection and git signing detection parsers

* Cleanup

* Pin russh version

* Run cargo fmt

* Fix build

* Update apps/desktop/desktop_native/core/src/ssh_agent/mod.rs

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

* Pass through entire namespace

* Move to bytes crate

* Fix clippy errors

* Fix clippy warning

* Run cargo fmt

* Fix build

* Add renovate for bytes

* Fix clippy warn

---------

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-02-26 12:12:27 +01:00
Bernd Schoolmann
d11321e28e Fix ssh agent on flatpak and mac app store (#13324) 2025-02-25 14:47:08 +01:00
Daniel García
8cf490a8c1 Extract common cargo info and edition 2024 fix (#13507) 2025-02-24 17:17:27 +01:00
tangowithfoxtrot
b86e587507 Fix falling back to data.json when keyring is available (#12760)
* fix: fallback to data.json on Linux

* fix: make keyring prompt more consistent for reads+writes, but less assertive when we delete credentials

* fix: explicitly ignore unused return value
2025-02-21 07:44:24 -08:00
renovate[bot]
6311c52e46 [deps] Platform: Update Rust crate sysinfo to v0.33.1 (#12550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 13:45:48 +01:00
renovate[bot]
b423460006 [deps] Platform: Pin dependencies (#12292)
* [deps] Platform: Pin dependencies

* fix: version conflicts by making them workspace deps

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
2025-01-31 09:56:17 +01:00
renovate[bot]
f775e665cb [deps] Platform: Update Rust crate tokio-util to v0.7.13 (#12299)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 14:00:31 +01:00
renovate[bot]
ea41b1a0c6 [deps] Platform: Update Rust crate tokio to v1.43.0 (#12307)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-30 12:31:30 +01:00
renovate[bot]
ba4d762dc1 [deps] Platform: Update Rust crate log to v0.4.25 (#12960)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 13:50:29 -05:00
renovate[bot]
c566906313 [deps] Platform: Update Rust crate dirs to v6 (#12976)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 13:46:26 -05:00
Daniel García
02e10b56f5 Don't use Group Containers dir for non-sandboxed DMG (#13004) 2025-01-22 15:08:59 +01:00
renovate[bot]
2438e6b934 [deps] Platform: Update Rust crate pin-project to v1.1.8 (#12961)
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-01-21 11:10:58 +01:00
Daniel García
4a1e8cc763 Remove unused lifetime (#12889) 2025-01-15 18:14:31 +01:00
Bernd Schoolmann
a527aa9196 [PM-2094] Fix windows hello focusing behavior (#12255)
* Implement new windows focus behavior

* Fix formatting

* Fix clippy warning

* Fix clippy warning

* Fix build

* Fix build
2025-01-09 14:07:40 +01:00
Bernd Schoolmann
bb2961f4ca [PM-10413] ssh keygen on web and browser (#12176)
* Move desktop to sdk ssh-key generation

* Add ssh keygen support on web and browser

* Move ssh keygen on all clients behind feature flag

* Update package lock

* Fix linting

* Fix build

* Fix build

* Remove rand_chacha

* Move libc to linux-only target

* Remove async-streams dep

* Make generateSshKey private

* Remove async from generate ssh key

* Update cargo lock

* Fix sdk init for ssh key generation

* Update index.d.ts

* Fix build on browser

* Fix build

* Fix build by updating libc dependency
2025-01-08 16:01:23 +01:00
renovate[bot]
5a3681655b [deps] Platform: Update Rust crate libc to v0.2.169 (#12131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-02 14:28:57 -05:00
renovate[bot]
aee0bdcd12 [deps] Platform: Update macOS/iOS bindings (#11947)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-02 10:05:45 -05:00
Daniel García
fff412665f Run clippy and rustfmt on CI (#12388)
* Run clippy and rustfmt on CI

* Error on warnings and fix a couple of missed lints

* Move import inside function

* Fix unix lints

* Fix windows lints

* Missed some async tests

* Remove unneeded reference
2024-12-19 22:49:45 +01:00
Icelk
617469127a ssh agent: fix first start when no .bitwarden-ssh-agent.sock exists (#12356)
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2024-12-12 13:45:37 +01:00
Bernd Schoolmann
e8d8a816dd [PM-14988] Use peercred / GetNamedPipeClientProcessId to gather info about process connecting to ssh agent (#12065)
* Fix double prompt when unlocking by ssh request

* Add peercred for unix

* Enable apple-app-store feature

* Add generic parameter

* Update

* Add procinfo for windows

* Show connecting app in ui

* Use struct instead of tuple

* Use atomics instead of mutex

* Fix windows build

* Use is_running function

* Cleanup named pipe listener

* Cleanups

* Cargo fmt

* Replace "" with none

* Rebuild index.d.ts

* Fix is running check
2024-12-11 12:53:00 +01:00
renovate[bot]
8c446b4720 [deps] Platform: Update Rust crate anyhow to v1.0.94 (#12296)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2024-12-09 15:42:42 +01:00
Andreas Coroiu
f16bfa4cd2 [PM-9035] desktop build logic to provide credentials to os on sync (#10181)
* feat: scaffold desktop_objc

* feat: rename fido2 to autofill

* feat: scaffold electron autofill

* feat: auto call hello world on init

* feat: scaffold call to basic objc function

* feat: simple log that checks if autofill is enabled

* feat: adding some availability guards

* feat: scaffold services and allow calls from inspector

* feat: create custom type for returning strings across rust/objc boundary

* chore: clean up comments

* feat: enable ARC

* feat: add util function `c_string_to_nsstring`

* chore: refactor and rename to `run_command`

* feat: add try-catch around command execution

* feat: properly implement command calling

Add static typing. Add proper error handling.

* feat: add autoreleasepool to avoid memory leaks

* chore: change objc names to camelCase

* fix: error returning

* feat: extract some helper functions into utils class

* feat: scaffold status command

* feat: implement status command

* feat: implement password credential mapping

* wip: implement sync command

This crashes because we are not properly handling the fact that `saveCredentialIdentities` uses callbacks, resulting in a race condition where we try to access a variable (result) that has already gotten dealloc'd.

* feat: first version of callback

* feat: make run_command async

* feat: functioning callback returns

* chore: refactor to make objc code easier to read and use

* feat: refactor everything to use new callback return method

* feat: re-implement status command with callback

* fix: warning about CommandContext not being FFI-safe

* feat: implement sync command using callbacks

* feat: implement manual password credential sync

* feat: add auto syncing

* docs: add todo

* feat: add support for passkeys

* chore: move desktop autofill service to init service

* feat: auto-add all .m files to builder

* fix: native build on unix and windows

* fix: unused compiler warnings

* fix: napi type exports

* feat: add corresponding dist command

* feat: comment signing profile until we fix signing

* fix: build breaking on non-macOS platforms

* chore: cargo lock update

* chore: revert accidental version change

* feat: put sync behind feature flag

* chore: put files in autofill folder

* fix: obj-c code not recompiling on changes

* feat: add `namespace` to commands

* fix: linting complaining about flag

* feat: add autofill as owner of their objc code

* chore: make autofill owner of run_command in core crate

* fix: re-add napi annotation

* fix: remove dev bypass
2024-12-06 16:31:30 +01:00
Bernd Schoolmann
80a898bd8c [PM-14252] Switch to oo7 and drop libsecret (#11900)
* Switch to oo7 and drop libsecret

* Fix tests

* Fix windows

* Fix windows

* Fix windows

* Fix windows

* Add migration

* Update apps/desktop/desktop_native/core/src/password/unix.rs

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

* Remove libsecret in ci

* Move allow async to trait level

* Fix comment

* Pin oo7 dependency

---------

Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2024-12-04 17:03:34 +01:00