bitwarden-estensione-browser/libs/common/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
..
abstractions Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
admin-console [PM-2132] Move all specs to the src directory (#5367) 2023-05-09 11:27:09 +02:00
auth Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
billing [AC-358] SelfHosted update subscription page (#5101) 2023-05-15 07:38:53 -07:00
enums [AC-1145] Add trusted devices option to encryption settings on sso config (#5383) 2023-05-10 12:51:56 -07:00
factories [SM-288] Rename models to follow naming convention (#3795) 2022-10-14 18:25:50 +02:00
interfaces [AC-1266] Enums filename conventions (#5140) 2023-04-04 22:42:21 -05:00
misc [PM-2132] Move all specs to the src directory (#5367) 2023-05-09 11:27:09 +02:00
models Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
services Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
tools [PM-2132] Move all specs to the src directory (#5367) 2023-05-09 11:27:09 +02:00
types Feature/[PM-1378] - Trusted Device Encryption - Establish trust logic for all clients (#5339) 2023-05-25 14:17:19 -04:00
vault [PM-2132] Move all specs to the src directory (#5367) 2023-05-09 11:27:09 +02:00
globals.d.ts Move to libs 2022-06-03 16:24:40 +02:00