This repository was archived by the owner on Jun 17, 2022. It is now read-only.
  
  
  
  
Fix v1 migration of providerKeys and orgKeys #696
                
     Merged
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Type of change
Objective
Fix bitwarden/cli#490.
encOrgKeysare never migrated properly becausestateMigrationServicedoes not reference the correct storage key - it incorrectly appends theuserIdto the storage key. This means that org items cannot be decrypted in CLI after an upgrade. I assume that other clients hid this issue by syncing to get account keys, whereas CLI is less automatic in this respect.For reference, here's the
setOrgKeysmethod immediately before account switching was merged. Note the lack of userId suffix:jslib/common/src/services/crypto.service.ts
Line 97 in 8fc3cf5
The migration of provider enc keys also follow this pattern, and I also note that the pre-account switching logic doesn't have this suffix (although I haven't tested this one):
jslib/common/src/services/crypto.service.ts
Line 107 in 8fc3cf5
This will not help users who have already upgraded (I believe the migration clears the old v0 data, so it's gone), but will fix the issue for any late upgraders.
Code changes
Remove userId suffixes when fetching v0 org and provider keys.
Testing requirements
Repeat the above as a provider user who only has access to an org via their provider.
Before you submit
npm run lint) (required)