-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
WIP E2EE
encryption [ignore just a thought idea]
#5856
Conversation
<Button type="submit" disabled={passwordInput.length < 8} className="ml-2"> | ||
Set | ||
</Button> |
Check failure
Code scanning / ESLint
disallow literal string Error
Set
<h2 className="text-xl font-semibold text-gray-700 dark:text-gray-200"> | ||
Search Unavailable | ||
</h2> |
Check failure
Code scanning / ESLint
disallow literal string Error
Search Unavailable
<p className="mt-2 text-gray-500 dark:text-gray-400"> | ||
Search is disabled when encryption is enabled | ||
</p> |
Check failure
Code scanning / ESLint
disallow literal string Error
Search is disabled when encryption is enabled
for reference: #5092 |
E2EE
encryptionE2EE
encryption [ignore just an thought idea]
E2EE
encryption [ignore just an thought idea]E2EE
encryption [ignore just a thought idea]
Closed in favour of: #5906 |
TDB
TODO:
check logic to use a classic key management challenge
https://cryptobook.nakov.com/mac-and-key-derivation/pbkdf2
This is a classic key management challenge in E2EE systems. The goal is to ensure that only the user can decrypt their messages—even if message history is stored on your server—while not having to store a sensitive private key in plaintext on your backend. Here’s a high-level strategy:
Generate Keys Client-Side:
When a user registers (or on first use), have the browser generate an asymmetric key pair (public/private) using a secure Web Crypto API or a trusted crypto library (like OpenPGP.js or libsodium.js).
Encrypt the Private Key with a Password-Derived Key:
This way, the server only ever holds the encrypted form, not the plaintext key.
Using the Keys for Messaging:
User Login and Key Recovery:
Considerations: