1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-08-25 23:03:07 +02:00
bitwarden-browser/apps/web/src
Jared Snider 0fcfe883b5
Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339)
* PM1378 - (1) Create state service methods for securely storing a device symmetric key while following existing pattern of DuckDuckGoKey generation (2) Create makeDeviceKey method on crypto service which leverages the new state service methods for storing the device key.

* PM-1378 - Document CSPRNG types w/ comments explaining what they are and when they should be used.

* PM-1378 - TODO to add tests for makeDeviceKey method

* PM-1378 - Create Devices API service for creating and updating device encrypted master keys + move models according to latest code standards ( I think)

* PM-1378 - TODO clean up - DeviceResponse properly moved next to device api service abstraction per ADR 0013

* PM-1378 - CryptoService makeDeviceKey test written

* PM-1378 - Tweak crypto service makeDeviceKey test to leverage a describe for the function to better group related code.

* PM-1378 - Move known devices call out of API service and into new devices-api.service and update all references. All clients building.

* PM-1378 - Comment clean up

* PM-1378 - Refactor out master key naming as that is a reserved specific key generated from the MP key derivation process + use same property on request object as back end.

* PM-1378 - Missed a use of master key

* PM-1378 - More abstraction updates to remove master key.

* PM-1378 - Convert crypto service makeDeviceKey into getDeviceKey method to consolidate service logic based on PR feedback

* PM-1378- Updating makeDeviceKey --> getDeviceKey tests to match updated code

* PM-1378 - Current work on updating establish trusted device logic in light of new encryption mechanisms (introduction of a device asymmetric key pair in order to allow for key rotation while maintaining trusted devices)

* PM-1378 - (1) CryptoService.TrustDevice() naming refactors (2) Lots of test additions and tweaks for trustDevice()

* PM-1378 - Updated TrustedDeviceKeysRequest names to be consistent across the client side board.

* PM-1378 - Move trusted device crypto service methods out of crypto service into new DeviceCryptoService for better single responsibility design

* PM-1378 - (1) Add getDeviceByIdentifier endpoint to devices api as will need it later (2) Update TrustedDeviceKeysRequest and DeviceResponse models to match latest server side generic encrypted key names

* PM-1378 - PR feedback fix - use JSDOC comments and move from abstraction to implementation

* PM-1378 - Per PR feedback, makeDeviceKey should be private - updated tests with workaround.

* PM-1378- Per PR feedback, refactored deviceKey to use partialKey dict so we can associate userId with specific device keys.

* PM-1378 - Replace deviceId with deviceIdentifier per PR feedback

* PM-1378 - Remove unnecessary createTrustedDeviceKey methods

* PM-1378 - Update device crypto service to leverage updateTrustedDeviceKeys + update tests

* PM-1378 - Update trustDevice logic - (1) Use getEncKey to get user symmetric key as it's the correct method and (2) Attempt to retrieve the userSymKey earlier on and short circuit if it is not found.

* PM-1378 - Replace deviceId with deviceIdentifier because they are not the same thing

* PM-1378 - Per PR feedback, (1) on web/browser extension, store device key in local storage under account.keys existing structure (2) on desktop, store deviceKey in secure storage. (3) Exempt account.keys.deviceKey from being cleared on account reset

* PM-1378 - Desktop testing revealed that I forgot to add userId existence and options reconciliation checks back

* PM-1378 - Per discussion with Jake, create DeviceKey custom type which is really just an opaque<SymmetricCryptoKey> so we can more easily differentiate between key types.

* PM-1378 - Update symmetric-crypto-key.ts opaque DeviceKey to properly setup Opaque type.

* PM-1378 - Fix wrong return type for getDeviceKey on DeviceCryptoServiceAbstraction per PR feedback
2023-05-25 14:17:19 -04:00
..
404 Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
app Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
connectors [PM-1399] Resolve eslint errors for button type - vault (#5274) 2023-05-03 10:55:22 -04:00
images [PM-1019] Environment selection clients (#5480) 2023-05-19 17:35:42 +01:00
locales [PM-1019] Environment selection clients (#5480) 2023-05-19 17:35:42 +01:00
scss [PM-1504] Migrate Dialogs to DialogService (#5013) 2023-05-02 18:46:03 +02:00
utils [SG-483] Trial Initiation Cleanup (#4064) 2022-12-12 15:59:40 -05:00
.nojekyll Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
404.html Update year in copyrights (#4325) 2022-12-28 21:59:23 +01:00
app-id.json Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
browserconfig.xml Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
favicon.ico Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
global.d.ts Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
index.html Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
main.ts Cleanup src folder for web and move ts code into src/app per angular convention (#3127) 2022-07-25 15:13:54 +02:00
manifest.json Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
polyfills.ts [SM-266] Remove fetch, webcrypto and custom-elements polyfills (#3672) 2022-10-27 14:25:10 +02:00
theme.js Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
translation-constants.ts [CSA-27] Use new dependency-free locale service for WebAuthN translations (#4557) 2023-02-04 09:23:42 -05:00
version.json Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00