rvault/migrations/20250326160659_sealing.sql
C0ffeeCode 6e811c85c2
Sealing: Encryption of Secrets (#1)
This adds support for encrypting and decrypting secrets.
It implements the APIs required for unsealing.
The APIs are not complete or compliant.

Reviewed-on: #1

Squashed commit of the following:

commit d77237aefe
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Wed Apr 2 18:59:33 2025 +0200

    Refactor: Secret struct and feature-gates
    - Shamir and its dependencies behind a default feature
    - Secret has its own struct

commit 6eb02c8412
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Wed Apr 2 08:28:28 2025 +0200

    Feat (sealing): Shamir Secret Sharing scheme

commit 5de9e1d74e
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Thu Mar 27 22:13:57 2025 +0100

    Fix (sealing): Simple sealing with random nonce

commit 88ed714e22
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Thu Mar 27 17:13:48 2025 +0100

    Feat (sealing): Simple Password sealing
    Password is generated on first startup.
    The password given to the user is not same as the one used to encrypt secrets

commit 4d342e8b99
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Wed Mar 26 21:51:27 2025 +0100

    Feat (kv2): Support Sealing

commit 1accd45648
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Wed Mar 26 21:49:59 2025 +0100

    WIP feat (sealing): Implement basic sealing functionality
    Currently, the key is just stored plainly in the database

commit 7949d64649
Author: C0ffeeCode <ritters_werth@outlook.com>
Date:   Wed Mar 26 21:39:07 2025 +0100

    Chore: Rename `DatabaseDriver` to `DbPool`
    and add a custom serde serializer `serialize_reject_none` as a utility
2025-04-02 22:42:20 +02:00

8 lines
209 B
SQL

-- Sealing Key
CREATE TABLE root_key (
version INTEGER PRIMARY KEY CHECK ( version = 1 ),
encrypted_key BLOB NOT NULL,
nonce BLOB,
type TEXT NOT NULL CHECK ( type IN ('dev_only', 'simple', 'shamir') )
);