Skip to content

Conversation

@overheadhunter
Copy link
Member

@overheadhunter overheadhunter commented May 10, 2024

This PR adds fundamental support for UVF-based vaults. During vault creation either format is selected. There is no migration of format 8 based vaults planned. Vault access tokens either contain a format 8 Masterkey OR a UVF member key (which is an A256KW key for the vault.uvf file).

Notable changes:

  1. split up crypto implementation into uvf.ts and vaultv8.ts, leaving common crypto in crypto.ts
  2. make jwe.ts capable of handling compact as well as json serialization with support for ECDH-ES (legacy, decrypt only), ECDH-ES+A256KW, PBES2+A256KW and A256KW, allowing encryption for multiple recipients
  3. add new vault fields to database and DTOs to allow storing a vault.uvf file as well as the public part of a recovery key pair
  4. instead of serializing the masterkey, the recovery key consists of a serialized private key

TODO

  • bump API level

overheadhunter and others added 30 commits March 2, 2024 12:10
# Conflicts:
#	backend/src/test/java/org/cryptomator/hub/api/VaultResourceTest.java
# Conflicts:
#	backend/src/main/java/org/cryptomator/hub/api/VaultResource.java
#	backend/src/main/java/org/cryptomator/hub/entities/Vault.java
#	backend/src/test/java/org/cryptomator/hub/api/VaultResourceIT.java
#	frontend/src/components/VaultDetails.vue
[ci skip]
# Conflicts:
#	backend/src/main/resources/org/cryptomator/hub/flyway/ERM.png
#	frontend/src/common/jwt.ts
#	frontend/src/components/GrantPermissionDialog.vue
#	frontend/src/components/VaultDetails.vue
#	frontend/test/common/crypto.spec.ts
# Conflicts:
#	frontend/package-lock.json
#	frontend/package.json
#	frontend/src/common/jwe.ts
#	frontend/src/components/AdminSettings.vue
#	frontend/src/components/GrantPermissionDialog.vue
#	frontend/src/components/UserProfile.vue
#	frontend/test/common/crypto.spec.ts
#	frontend/test/common/jwe.spec.ts
# Conflicts:
#	frontend/package-lock.json
#	frontend/src/components/CreateVault.vue
#	frontend/src/components/VaultDetails.vue
# Conflicts:
#	backend/src/main/resources/org/cryptomator/hub/flyway/ERM.png
#	frontend/src/common/userdata.ts
#	frontend/src/components/InitialSetup.vue
#	frontend/src/components/RegenerateSetupCodeDialog.vue
#	frontend/src/components/VaultDetails.vue
#	frontend/src/i18n/de-DE.json
# Conflicts:
#	backend/src/test/java/org/cryptomator/hub/api/VaultResourceIT.java
[ci skip]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants