Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

UVF support #274

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

UVF support #274

wants to merge 88 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]
overheadhunter and others added 25 commits May 21, 2024 14:59
# 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
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.

3 participants