This is the frontend of a project of mine, named "Minerva". An end-to-end encrypted email service powered by Solana blockchain.
I did this project mostly to learn how to implement end-to-end encryption.
The frontend is responsible for encrypting and decrypting data, while the blockchain is only used to store public information about the encryption, key exchange, and the email itself.
I used AES-256 bit with Counter Mode.
I used diffie-helmann algorithm for the key exchange, each user get a public an private key at the registration moment. Only the public key is stored on the blockchain.
Run the following commands on your terminal, at the root of the project:
yarn
yarn dev
Simply paste your private key - the one that you got from registration - on the input and click the 'decrypt' button.