1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-07 02:53:28 +00:00
Commit Graph

136 Commits

Author SHA1 Message Date
Anders Åberg
6426dc51e6 Improve MacOS Syncing
This changes the behaviour to react to logoff, but not to account locks. It also adds better error handling on the native side.
2025-04-15 14:12:38 +02:00
Anders Åberg
b7c2419aed Fix base64url decode on MacOS passkeys (#14227)
* Add support for padding in base64url decode

* whitespace

* whitespace
2025-04-11 09:10:41 +02:00
Anders Åberg
411d195386 PM-19511: Add support for ExcludedCredentials (#14128)
* works

* Add mapping

* remove the build script

* cleanup
2025-04-08 19:59:31 +02:00
Anders Åberg
d902a0d953 PM-11455: Trigger sync when user enables OS setting (#14127)
* Implemented a SendNativeStatus command

This allows reporting status or asking the electron app to do something.

* fmt

* Update apps/desktop/src/autofill/services/desktop-autofill.service.ts

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

* clean up

* Don't add empty callbacks

* Removed comment

---------

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-04-08 19:07:46 +02:00
Anders Åberg
849aa546d4 PM-19424: React to IPC disconnect (#14123)
* React to IPC disconnects

* Minor cleanup

* Update apps/desktop/package.json

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

* Relaxed ordering

---------

Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
2025-04-07 14:31:42 +02:00
Anders Åberg
8e455007c0 PM-19095: Wire passkey autofill to UI (#13051)
* Passkey stuff

Co-authored-by: Anders Åberg <github@andersaberg.com>

* Ugly hacks

* Work On Modal State Management

* Applying modalStyles

* modal

* Improved hide/show

* fixed promise

* File name

* fix prettier

* Protecting against null API's and undefined data

* Only show fake popup to devs

* cleanup mock code

* rename minmimal-app to modal-app

* Added comment

* Added comment

* removed old comment

* Avoided changing minimum size

* Add small comment

* Rename component

* adress feedback

* Fixed uppercase file

* Fixed build

* Added codeowners

* added void

* commentary

* feat: reset setting on app start

* Moved reset to be in main / process launch

* Add comment to create window

* Added a little bit of styling

* Use Messaging service to loadUrl

* Enable passkeysautofill

* Add logging

* halfbaked

* Integration working

* And now it works without extra delay

* Clean up

* add note about messaging

* lb

* removed console.logs

* Cleanup and adress review feedback

* This hides the swift UI

* pick credential, draft

* Remove logger

* a whole lot of wiring

* not working

* Improved wiring

* Cancel after 90s

* Introduced observable

* Launching bitwarden if its not running

* Passing position from native to electron

* Rename inModalMode to modalMode

* remove tap

* revert spaces

* added back isDev

* cleaned up a bit

* Cleanup swift file

* tweaked logging

* clean up

* Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Update apps/desktop/src/platform/main/autofill/native-autofill.main.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Update apps/desktop/src/platform/services/desktop-settings.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* adress position feedback

* Update apps/desktop/macos/autofill-extension/CredentialProviderViewController.swift

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Removed extra logging

* Adjusted error logging

* Use .error to log errors

* remove dead code

* Update desktop-autofill.service.ts

* use parseCredentialId instead of guidToRawFormat

* Update apps/desktop/src/autofill/services/desktop-autofill.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Change windowXy to a Record instead of [number,number]

* Update apps/desktop/src/autofill/services/desktop-fido2-user-interface.service.ts

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* Remove unsued dep and comment

* changed timeout to be spec recommended maxium, 10 minutes, for now.

* Correctly assume UP

* Removed extra cancelRequest in deinint

* Add timeout and UV to confirmChoseCipher

UV is performed by UI, not the service

* Improved docs regarding undefined cipherId

* cleanup: UP is no longer undefined

* Run completeError if ipc messages conversion failed

* don't throw, instead return undefined

* Disabled passkey provider

* Throw error if no activeUserId was found

* removed comment

* Fixed lint

* removed unsued service

* reset entitlement formatting

* Update entitlements.mas.plist

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
2025-03-24 07:50:11 -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
renovate[bot]
c7315a0790 [deps]: Lock file maintenance (#13565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-25 15:48:39 -05: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]
19a6641ce8 [deps] Platform: Update Rust crate napi to v2.16.15 (#13433)
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-02-17 12:35:17 +01:00
Colton Hurst
8b62dad247 [PM-17619] Add Intial Windows WebAuthn Plugin Authenticator Bindings Crate (#13112)
* PM-17619: Add intial Windows WebAuthn Plugin Authenticator bindings crate

* PM-17619: Move crate to desktop_native

* PM-17619: Update codeowners file

* PM-17619: Fix failing Mac build

* PM-17619: Switch to OUT_DIR

* PM-17619: cargo fmt

* PM-17619: Update bindings output dir

* PM-17619: Use std::env::var for OUT_DIR

* PM-17619: Prevent clippy failures on the generated Rust code

* PM-17619: Test moving the clippy:all

* PM-17619: Small updates

* PM-17619: Remove todo

* PM-17619: Ignore rustc warnings on the generated code

* PM-17619: Address PR comments
2025-02-03 09:53:53 -05: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]
fef6b39c17 [deps]: Lock file maintenance (#12978)
* [deps]: Lock file maintenance

* fix: pin react version to work around storybook version issue

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
2025-01-30 11:52:46 +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]
5fbe7abda5 [deps] Platform: Update Rust crate glob to 0.3.2 (#12959)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-21 12:00:22 -08:00
renovate[bot]
9d70ca36e9 [deps] Platform: Update Rust crate windows-registry to v0.4.0 (#12970)
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 12:32:06 +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
7c89c52098 Dynamically load MacOS passkey (#12897) 2025-01-16 16:50:38 +01:00
Daniel García
4a1e8cc763 Remove unused lifetime (#12889) 2025-01-15 18:14:31 +01:00
Bernd Schoolmann
c451f500f9 Cleanup destkop native loader and support gnu fallback loading (#12498) 2025-01-09 18:15:58 +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]
003f5fdae9 [deps]: Lock file maintenance (#12709)
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-07 13:38:19 +01:00
renovate[bot]
dac23db952 [deps] Platform: Update Rust crate napi-build to v2.1.4 (#12546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 15:15:32 -05:00
renovate[bot]
c69278e761 [deps] Platform: Update Rust crate uniffi to 0.28.3 (#12549)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 14:28:44 -05:00
renovate[bot]
1e6471bb1d [deps] Platform: Update Rust crate cc to 1.2.4 (#12297)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-03 12:57:54 -05: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
renovate[bot]
1d33acbffc [deps]: Lock file maintenance (#11953)
* [deps]: Lock file maintenance

* Regenerate package lock

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Addison Beck <github@addisonbeck.com>
2025-01-01 00:45:23 -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
Daniel García
51f6594d4b [PM-9473] Add messaging for macOS passkey extension and desktop (#10768)
* Add messaging for macos passkey provider

* fix: credential id conversion

* Make build.sh executable

Co-authored-by: Colton Hurst <colton@coltonhurst.com>

* chore: add TODO

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
Co-authored-by: Colton Hurst <colton@coltonhurst.com>
2024-12-19 09:00:21 +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
Bernd Schoolmann
864e6759fd Switch to rustcrypto argon2 on desktop (#11753)
* Switch to rustcrypto argon2 on desktop

* Make argon2 use zeroize

* Remove argon2 native modules from electron-builder config

* Clean rust implementation of argon2

* Update cargo.lock

* Update apps/desktop/desktop_native/napi/src/lib.rs

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

* Add tests

* Clean up test

* Remove argon2 external from webpack main

* Fix build

* Fix argon2 module causing a startup crash

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2024-12-04 11:54:55 +00:00
Bernd Schoolmann
050417a92e [PM-14863] Force unlock when keys are cleared / on first unlock and fix account switching behavior (#11994)
* Force unlock when keys are cleared / on first unlock and fix account switching behavior

* Make comment a doc comment

* Pin russh commit

* Cleanup

* Make list messaging explicit

* Add account switching error handling for ssh agent

* Add account switching error handling for ssh agent

* Cleanup
2024-12-02 11:55:56 +01:00
renovate[bot]
927c2fce43 [deps] Platform: Update Rust crate ssh-key to v0.6.7 (#12133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 10:12:09 +01:00
renovate[bot]
c0ab62fad0 [deps] Platform: Update Rust crate homedir to v0.3.4 (#12129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-28 10:02:24 +01:00