* [PM-2671] Update mobile client to use regions
* [PM-2671] Refactor
* [PM-2671] Move migration of region to migration service.
* [PM-2671] Move comment
* [PM-2671] Change method name
* [PM-2671] Change method name on usages
---------
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* PM-3811 Unified passkeys view and moved both inside Login as an array of FIdo2Key
* PM-3811 Passkeys unification => updated cipher details view an helpers
* PM-3811 Updated passkeys creation date time format
* [PM-3393] Log user out on biometric exceed attempts
* [PM-3393] Move duplicated code to AppHelpers
* [PM-3393] Update copy on new pop up
* [PM-3393] Moved VaultTimeoutService to LazyResolve.
* [PM-3382] Change IVaultTimeoutService for messaging
* [PM-3393] Use default values.
* [PM-1208] Add Device approval options screen. View model waiting for additional logic to be added.
* [PM-1208] Add device related api endpoint. Add AccoundDecryptOptions model and property to user Account.
* [PM-1208] Add continue button and not you option
* [PM-1379] add DeviceTrustCryptoService with establish trust logic (#2535)
* [PM-1379] add DeviceCryptoService with establish trust logic
* PM-1379 update api location and other minor refactors
* pm-1379 fix encoding
* update trusted device keys api call to Put
* [PM-1379] rename DeviceCryptoService to DeviceTrustCryptoService
- refactors to prevent side effects
* [PM-1379] rearrange methods in DeviceTrustCryptoService
* [PM-1379] rearrange methods in abstraction
* [PM-1379] deconstruct tuples
* [PM-1379] remove extra tasks
* [PM-2583] Answer auth request with mp field as null if doesn't have it. (#2609)
* [PM-2287][PM-2289][PM-2293] Approval Options (#2608)
* [PM-2293] Add AuthRequestType to PasswordlessLoginPage.
* [PM-2293] Add Actions to ApproveWithDevicePage
* [PM-2293] Change screen text based on AuthRequestType
* [PM-2293] Refactor AuthRequestType enum. Add label. Remove unnecessary actions.
* [PM-2293] Change boolean variable expression.
* [PM-2293] Trust device after admin request login.
* code format
* [PM-2287] Add trust device to master password unlock. Change trust device method. Remove email from SSO login page.
* [PM-2293] Fix state variable get set.
* [PM-2287][PM-2289][PM-2293] Rename method
* [PM-1201] Change timeout actions available based on hasMasterPassword (#2610)
* [PM-1201] Change timeout actions available based on hasMasterPassword
* [PM-2731] add user key and master key types
* [PM-2713] add new state for new keys and obsolete old ones
- UserKey
- MasterKey
- UserKeyMasterKey (enc UserKey from User Table)
* [PM-271] add UserKey and MasterKey support to crypto service
* [PM-2713] rename key hash to password hash & begin add methods to crypto service
* [PM-2713] continue organizing crypto service
* [PM-2713] more updates to crypto service
* [PM-2713] add new pin methods to state service
* [PM-2713] fix signature of GetUserKeyPin
* [PM-2713] add make user key method to crypto service
* [PM-2713] refresh pin key when setting user key
* [PM-2713] use new MakeMasterKey method
* [PM-2713] add toggle method to crypto service for keys
* [PM-2713] converting calls to new crypto service api
* [PM-2713] add migration for pin on lock screens
* [PM-2713] more conversions to new crypto service api
* [PM-2713] convert cipher service and others to crypto service api
* [PM-2713] More conversions to crypto api
* [PM-2713] use new crypto service api in auth service
* [PM-2713] remove unused cached values in crypto service
* [PM-2713] set decrypt and set user key in login helper
* fix bad merge
* Update crypto service api call to fix build
* [PM-1208] Fix app resource file
* [PM-1208] Fix merge
* [PM-1208] Fix merge
* [PM-2713] optimize async code in crypto service
* [PM-2713] rename password hash to master key hash
* [PM-2713] fix casting issues and pin
* [PM-2713] remove extra comment
* [PM-2713] remove broken casting
* [PM-2297] Login with trusted device (Flow 2) (#2623)
* [PM-2297] Add DecryptUserKeyWithDeviceKey method
* [PM-2297] Add methods to DeviceTrustCryptoService update decryption options model
* [PM-2297] Update account decryption options model
* [PM-2297] Fix TrustedDeviceOption and DeviceResponse model. Change StateService device key get set to have default user id
* [PM-2297] Update navigation to decryption options
* [PM-2297] Add missing action navigations to iOS extensions
* [PM-2297] Fix trust device bug/typo
* [PM-2297] Fix model bug
* [PM-2297] Fix state var crash
* [PM-2297] Add trust device login logic to auth service
* [PM-2297] Refactor auth service key connector code
* [PM-2297] Remove reconciledOptions for deviceKey in state service
* [PM-2297] Remove unnecessary user id params
* [PM-2289] [PM-2293] TDE Login with device Admin Request (#2642)
* [PM-2713] deconstruct new key pair
* [PM-2713] rename PrivateKey methods to UserPrivateKey on crypto service
* [PM-2713] rename PinLockEnum to PinLockType
* [PM-2713] don't pass user key as param when encrypting
* [PM-2713] rename toggle method, don't reset enc user key
* [PM-2713] pr feedback
* [PM-2713] PR feedback
* [PM-2713] rename get pin lock type method
* [PM-2713] revert feedback for build
* [PM-2713] rename state methods
* [PM-2713] combine makeDataEncKey methods
* [PM-2713] consolidate attachment key creation
- also fix ios files missed during symbol rename
* [PM-2713] replace generic with inherited class
* rename account keys to be more descriptive
* [PM-2713] add auto unlock key to mobile
* [PM-1208] Add TDE flows for new users (#2655)
* [PM-1208] Create new user on SSO. Logout if not password is setup or has pending admin auth request.
* [PM-1208] Fix new user UserKey decryption.
* [PM-1208] Add new user continue to vault logic. Auto enrol user on continue.
* [PM-1208] Trust device only if needed
* [PM-1208] Add logic for New User SSO.
* [PM-1208] Add logic for New User SSO (missing file).
* [PM-2713] set user key on set password page
* [PM-2713] set enc user key during kc onboarding
* fix formatting
* [PM-2713] make method async again
- returning null from a task thats not async throws
* [PM-2713] clear service cache when adding new account
* Fix build after merge
* [PM-3313] Fix Android SSO Login (#2663)
* [PM-3313] Catch exception on AuthPendingRequest
* [PM-3313] Fix lock timeout action if user doesn't have a master password.
* code format
* [PM-3313] Null email in Approval Options screen (#2664)
* [PM-3313] Fix null email in approval options screen
* [PM-3320][PM-3321] Fix labels and UI tweaks (#2666)
* [PM-3320] Fix UI copy and remember me default ON.
* [PM-3321] Fix UI on Log in with device screen.
* [PM-3337] Fix admin request deny error (#2669)
* [PM-3342] Not you button logs user out. (#2672)
* [PM-3319] Check for admin request in Lock page (#2668)
* [PM-3319] Ignore admin auth request when choosing mp as decryption option.
* [PM-2289] Change header title based on auth request type (#2670)
* [PM-2289] Change header title based on auth request type
* [PM-3333] Check for purged admin auth requests (#2671)
* [PM-3333] Check for purged admin auth requests
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
---------
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* [PM-3341] Vault Timeout Action not persisted correctly (#2673)
* [PM-3341] Fix timeout action change when navigating
* [PM-3357] Fix copy for Login Initiated (#2674)
* [PM-3362] Fix auth request approval (#2675)
* [PM-3362] Fix auth request approval
* [PM-3362] Add new exception type
* [PM-3102] Update Master password reprompt to be based on MP instead of Key Connector (#2653)
* PM-3102 Added check to see if a user has master password set replacing previous usage of key connector.
* PM-3102 Fix formatting
* [PM-2713] Final merge from Key Migration branch to TDE Feature branch (#2667)
* [PM-2713] add async to key connector service methods
* [PM-2713] rename ephemeral pin key
* add state for biometric key and accept UserKey instead of string for auto key
* Get UserKey from bio state on unlock
* PM-2713 Fix auto-migrating EncKeyEncrypted into MasterKey encrypted UserKey when requesting DecryptUserKeyWithMasterKeyAsync is called
* renaming bio key and fix build
* PM-3194 Fix biometrics button to be shown on upgrade when no UserKey is present yet
* revert removal of key connector service from auth service
* PM-2713 set user key when using KC
* clear enc user key after migration
* use is true for nullable bool
* PR feedback, refactor kc service
---------
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* Fix app fresh install user login with master password. (#2676)
* [PM-3303] Fix biometric login after key migration (#2679)
* [PM-3303] Add condition to biometric unlock
* [PM-3381] Fix TDE login 2FA flow (#2678)
* [PM-3381] Check for vault lock on 2FA screen
* [PM-3381] Move logic to ViewModel
* [PM-3381] Fix null vm error
* [PM-3379] Fix key rotation on trusted device. (#2680)
* [PM-3381] Update login flows (#2683)
* [PM-3381] Update login flows
* [PM-3381] Remove _authingWithSso parameter
* PM-3385 Fix MP reprompt item level when no MP hash is stored like logging in with TDE. Also refactor code to be more maintainable (#2687)
* PM-3386 Fix MP reprompt / OTP decision to be also based on the master key hash. (#2688)
* PM-3450 Fix has master password with mp key hash check (#2689)
* [PM-3394] Fix login with device for passwordless approvals (#2686)
* set activeUserId to null when logging in a new account
- Also stop the user key from being set in inactive accounts
* get token for login with device if approving device doesn't have master key
* add comment
* simplify logic
* check for route instead of using isAuthenticated
- we don't clear the user id when logging in new account
- this means we can't trust the state service, so we have to base our logic off the route in login with device
* use authenticated auth request for tde login with device
* [PM-3394] Add authingWithSso parameter to LoginPasswordlessRequestPage.
* pr feedback
* [PM-3394] Refactor condition
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
---------
Co-authored-by: André Bispo <abispo@bitwarden.com>
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* [PM-3462] Handle force password reset on mobile with TDE (#2694)
* [PM-3462] Handle force password reset on mobile with TDE
* [PM-3462] update references to refactored crypto method
- fix kc bug, we were sending private key instead of user key to server
- rename kc service method to be correct
* [PM-3462] Update TwoFactorPage login logic
* [PM-3462] Added pending admin request check to TwoFactorPage
* [PM-3462] Added new exception types for null keys
---------
Co-authored-by: André Bispo <abispo@bitwarden.com>
* [PM-1029] Fix Async suffix in ApiService. Add UserKeyNullExceptions.
* [PM 3513] Fix passwordless 2fa login with device on mobile (#2700)
* [PM-3513] Fix 2FA for normal login with device with users without mp
* move _userKey
---------
Co-authored-by: André Bispo <abispo@bitwarden.com>
* clear encrypted pin on logout (#2699)
---------
Co-authored-by: André Bispo <abispo@bitwarden.com>
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* PM-1575 Added new models for Fido2Key
* PM-1575 Added discoverable passkeys and WIP non-discoverable ones
* PM-1575 Fix format
* PM-1575 Added non-discoverable passkeys to login UI
* PM-1575 Added copy application icon to Fido2Key UI
* PM-1575 Updated bwi font with the updated passkey icon
* PM-1575 For now just display Available for two-step login on non-discoverable passkey inside of a cipher login
* PM-1575 Fix non-discoverable passkey visibility
* PM-1575 remove Passkeys as a filter in the vault list
* PM-1575 Display error toast if there is a duplicate passkey when moving a cipher to an org
* Revert "PM-1575 Display error toast if there is a duplicate passkey when moving a cipher to an org"
This reverts commit 78e6353602.
* [PM-2378] Display error toast on duplicate Passkey when moving cipher to an organization (#2594)
* PM-2378 Display error toast if there is a duplicate passkey when moving a cipher to an org
* PM-3097 Fix issue when moving cipher with passkey to an org where the uniqueness should be taken into consideration on different passkeys types and also the Username (#2632)
* PM-3096 Fix non-discoverable passkey to be taken into account when encrypting a cipher which was causing the passkey to be removed when moving to an org (#2637)
* [EC-980] Added iOS otpauth handler (#2370)
* EC-980 added Bitwarden as otpauth scheme handler
* EC-980 Fix format
* [EC-981] OTP handling - Set to selected cipher (#2404)
* EC-981 Started adding OTP to existing cipher. Reused AutofillCiphersPage for the cipher selection and refactored it so that we have more code reuse
* EC-981 Fix navigation on otp handling
* EC-981 Fix formatting
* EC-981 Added otp cipher selection callout and add close toolbar item when needed
* PM-1131 implemented cipher creation from otp handling flow with otp key filled (#2407)
* PM-1133 Updated empty states for search and cipher selection on otp flow (#2408)
* EC-519 Refactored IDeviceActionService to be split into IFileService and IAutofillManager also some cleanups were made
* EC-519 Fix format
* EC-519 Fix merge to use the new AutofillHandler
* SG-223 - Changed page title and password title
* SG-223 - Refactored generated field
* Changed position of generated field
* Replaced buttons generate and copy for icons
* SG-223 - Refactor type to passwordType
* SG-223 - Added password or username selector
* Added string for label type selection
* SG-223 - Added logic for different types of username
* Added strings of new types
* [SG-223] - Added UI components for different username types
* Added static strings for new labels
* Added viewmodel properties to support username generation and their respective options
* [SG-223] Added control over type picker visibility
* [SG-223] Refactored username entry on add edit page and added generate icon
* Added GenerateUsername command
* [SG-223] - Implemented service for username generation
* [SG-223] - Added support for username generation for item creation flow
* Implemented cache for username options
* Added exception handling for api calls
* [SG-223] - Remove unused code
* [SG-223] - Added a new display field for username generated and respective command
* Added description label for each type of username
* Changed defautl value of username from string.Empty to -
* [SG-223] - Removed some StackLayouts and refactored some controls
* [SG-223] - Refactored properties name
* [SG-223] - Added visibility toggle icon for api keys of forwarded email username types
* [SG-223] - Refactored nested StackLayouts into grids.
* [SG-223] - Refactor and pr fixing
* [SG-223] - Removed string keys from Resolve
- Added static string to resources
* [SG-223] - Refactored Copy_Clicked as AsyncCommand
- Improved exception handling
- Refactored TypeSelected as GeneratorTypeSelected
* [SG-223] - Renamed PasswordFormatter
* [SG-223] - Refactored VM properties to use UsernameGenerationOptions
* Removed LoadUsernameOptions
* [SG-223] - Refactored added pickers to use SelectedItem instead SelectedIndex
* Deleted PickerIndexToBoolConverter as it isn't needed anymore
* [SG-223] - Refactored and simplified Grid row and column definitions
* [SG-223] - Refactored Command into async command
* Added exception handling and feedback to the user
* [SG-223] - Refactored GeneratorType picker to use Enum GeneratorType instead of string
* [SG-223] - Changed some resource keys
* [SG-223] - Refactor method name
* [SG-223] - Refactored code and added logs for switch default cases
* [SG-223] - Added flag to control visibility when in edit mode
* [SG-223] - Added suffix Parenthesis to keys to prevent future conflicts
* [SG-223] - Refactored multiple methods into one, GetUsernameFromAsync
* Removed unused Extensions from enums
* [SG-223] - Added exception message
* [SG-223] - Added localizable enum values through LocalizableEnumConverter
* [SG-223] - Fixed space between controls
* [SG-223] - Removed unused code and refactored some variables and methods names
* [SG-223] - Removed unused code and refactored constant name to be more elucidative
* [SG-223] - Removed unused variable
* PS-1116 Improved network error handling on ViewPageViewModel and AddEditPageViewModel
* PS-1116 Renamed ViewPage and AddEditPage pages to a more explicit name.
Refactored CheckPassword from the CipherPages to a single Base class.
* PS-1116 Updated variables relative to the AddEditPage and ViewPage refactor to CipherAddEditPage and CipherDetailPage
* Renamed CipherDetailPage to CipherDetailsPage
* Code improvement
* PS-1116 Improved code formatting
* PS-1116 Improved formatting
* PS-1116 Improved code formatting
* Account Switching (#1720)
* Account switching
* WIP
* wip
* wip
* updates to send test logic
* fixed Send tests
* fixes for theme handling on account switching and re-adding existing account
* switch fixes
* fixes
* fixes
* cleanup
* vault timeout fixes
* account list status enhancements
* logout fixes and token handling improvements
* merge latest (#1727)
* remove duplicate dependency
* fix for initial login token storage paradox (#1730)
* Fix avatar color update toolbar item issue on iOS for account switching (#1735)
* Updated account switching menu UI (#1733)
* updated account switching menu UI
* additional changes
* add key suffix to constant
* GetFirstLetters method tweaks
* Fix crash on account switching when logging out when having more than user at a time (#1740)
* single account migration to multi-account on app update (#1741)
* Account Switching Tap to dismiss (#1743)
* Added tap to dismiss on the Account switching overlay and improved a bit the code
* Fix account switching overlay background transparent on the proper place
* Fixed transparent background and the shadow on the account switching overlay
* Fix iOS top space on Account switching list overlay after modal (#1746)
* Fix top space added to Account switching list overlay after closing modal
* Fix top space added to Account switching list overlay after closing modal on lock, login and home views just in case we add modals in the future there as well
* Usability: dismiss account list on certain events (#1748)
* dismiss account list on certain events
* use new FireAndForget method for back button logic
* Create and use Account Switching overlay control (#1753)
* Added Account switching overlay control and its own ViewModel and refactored accordingly
* Fix account switching Accounts list binding update
* Implemented dismiss account switching overlay when changing tabs and when selecting the same tab. Also updated the deprecated listener on CustomTabbedRenderer on Android (#1755)
* Overriden Equals on AvatarImageSource so it doesn't get set multiple times when it's the same image thus producing blinking on tab chaged (#1756)
* Usability improvements for logout on vault timeout (#1781)
* accountswitching fixes (#1784)
* Fix for invalid PIN lock state when switching accounts (#1792)
* fix for pin lock flow
* named tuple values and updated async
* clear send service cache on account switch (#1796)
* Global theme and account removal (#1793)
* Global theme and account removal
* remove redundant call to hide account list overlay
* cleanup and additional tweaks
* add try/catch to remove account dialog flow
Co-authored-by: Federico Maccaroni <fedemkr@gmail.com>
* Fixed Clipboard clear after x seconds depending on what the user set. Also refactored a bit to make the Clipboard a custom service to provide a better way to handle this situation #1464
* Clear some usings #1464
* [Reset Password v1] Update Temp Password
* fixed order of operations for reset temp password flow
* Refactored bool with auth result
* Finished removal of temp password flow from set password
* iOS extension support plus extension bugfixes
Co-authored-by: addison <addisonbeck1@gmail.com>
Co-authored-by: Matt Portune <mportune@bitwarden.com>
* Make card number hidden
* Add support for password reprompt
* Rename PasswordPrompt to Reprompt
* Protect autofill
* Use Enums.CipherRepromptType
* Fix iOS not building
* Protect iOS autofill
* Update to match jslib
* Fix failing build
* add support for disable send policy
* cleanup
* show/hide options support for send search results
* additional failsafes and copy function consolidation
* added missing disabled send icon to android renderer
* async fix and string updates
* Send feature for mobile
* added fallback for KdfIterations
* additional property exclusions for tests
* support encryptedFileData as byte array comparison in SendServiceTests
* formatting
* requested changes
* additional changes
* change position of send service registration to match declaration order
* SSO login flow for pre-existing user and no 2FA
* 2FA progress
* 2FA support
* Added SSO flows and functionality
* Handle webauthenticator cancellation gracefully
* updates & bugfixes
* Added state validation to web auth response handling
* SSO auth, account registration, and environment settings support for iOS extensions
* Added SSO prevalidation to auth process
* prevalidation now hitting identity service base url
* additional error handling
* Requested changes
* fixed case