How dDocs & dSheets pass the walkaway test with love 💛.
An open-source static page to recover and decrypt documents & spreadsheets locally, without depending on Fileverse or centralized servers.
This repo contains the code to independently recover documents and spreadsheets tied to your ddocs.new and dsheets.new account using your backup keys, in case the main apps are down. It’s designed to help you keep end-to-end control of your files, without depending on centralized servers.
-
Clone the repository:
git clone https://github.com/fileverse/walk-away-ddocs.git
-
Install it dependencies:
npm install
Copy the .env.example file to .env in the root directory:
cp .env.example .envUpdate with config values
Start the development server:
npm run devYour portal keys consist of :
- Portal Address – The contract address that manages your ddocs and dsheets files.
- Owner Public Key - An RSA-generated public key used by the portal owner to encrypt ddocs and dsheets file data.
- Owner Private Key - An RSA-generated private key used by the portal owner to decrypt their ddocs and dsheets file data.
- Portal Public Key - An RSA-generated public key used by collaborators to encrypt ddocs and dsheets file data shared with the portal.
- Portal Private Key - An RSA-generated private key used by collaborators to decrypt ddocs and dsheets file data shared with the portal.
- Member Public Key - An RSA-generated public key used by portal members to encrypt their own ddocs and dsheets file data.
- Member Private Key - An RSA-generated private key used by portal members to decrypt their own ddocs and dsheets file data.
Files are linked to a portal by the portal address and the fileID.
Files are encrypted using an AES key, which is generated by encrypting the file through Penumbra. This AES key is then further encrypted to create different access locks:
- Portal Lock – Created by encrypting the file key with the portal public key.
- Owner Lock – Created by encrypting the file key with the owner's encryption key.
- Link Lock - Created by encrypting the file key with a link key. Link keys are unique, randomly generated AES keys for each file, which are stored in an encrypted format using the owner’s public key. They are are used for sharing files via a link.
Files can be decrypted using any of the available locks:
- Portal Lock – Contains the encrypted file key, which is decrypted using the portal private key.
- Owner Lock – Contains the encrypted file key, which is decrypted using the owner's private key.
- Link Lock – Contains the encrypted file key, which is decrypted using the link key.
You can refer to this code for more
A comment and its data are decrypted using the comment key, which is retrieved from the owner, portal, or link locks. The corresponding lock is decrypted using its associated key.