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