Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

UVF support #274

Draft
wants to merge 100 commits into
base: develop
Choose a base branch
from
Draft

UVF support #274

wants to merge 100 commits into from

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]
infeo and others added 13 commits May 29, 2024 17:36
# Conflicts:
#	backend/src/main/java/org/cryptomator/hub/entities/User.java
#	backend/src/main/resources/org/cryptomator/hub/flyway/ERM.png
#	frontend/src/common/crypto.ts
#	frontend/src/components/CreateVault.vue
#	frontend/src/components/GrantPermissionDialog.vue
#	frontend/src/components/InitialSetup.vue
#	frontend/src/components/ManageSetupCode.vue
#	frontend/src/components/RecoverVaultDialog.vue
#	frontend/src/components/RegenerateSetupCodeDialog.vue
#	frontend/src/components/VaultDetails.vue
#	frontend/test/common/crypto.spec.ts
# 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants