Enjoy the show!
Password-protected file
The file name, its type, the preview and the sender’s note appear after unlocking.
Downloaded and authenticated · saving to your device
Encrypted file sharing
Files shared here are encrypted before upload. Only someone with the full link, and the password if one is set, can open them.
- Decrypted on this device. The file host never sees the file or its name.
- Every 4 MiB chunk is authenticated, so any change to the file is caught.
- Resumes after connection drops.
Opening the file…
Ready to download
The file is decrypted as it downloads and saved to your Downloads folder.
Decrypted on your device. The file host never sees it.
Large file? Use the command-line tool
The edl command-line tool resumes interrupted downloads, even after a restart. Run edl get - and paste this whole link when asked.
Keep this tab open and on screen. If the connection drops, the download resumes by itself. Closing the tab restarts it. Keep this tab open. If the connection drops, the download resumes by itself. Closing the tab restarts it.
Progress is saved in this browser. If this page closes, open the link again to resume. Unfinished downloads are deleted after 3 days.
Resume download?
Saved progress is deleted automatically 3 days after the last activity.
No network needed for this step.Downloaded and authenticated. No network needed for this step.
Keep this tab open until saving finishes. Closing it now means part of the file has to be downloaded again.
File verified
was saved to your Downloads folder.Saved to your Downloads folder.
- End-of-file marker present
- SHA-256 matches the uploaded fileSHA-256 matches the upload
Download stopped
This link is incomplete
The part after the # sign is missing or cut off, and it holds the key to the file.
Ask the sender for the full link and copy it in one piece. Some chat apps break long links across lines.
File not available
It may have expired or been removed by the sender.
If you still need it, ask the sender to share it again. Any copy you already saved is unaffected.
This browser can’t save large files
It doesn’t support streamed downloads, which this page needs to decrypt the file without holding it all in memory.
Open the link in a current Chrome, Edge, Firefox or Safari, outside a private window.
Couldn’t open the file
How it works
- The sender encrypts the fileThis happens on their own computer, before the upload. This website only ever receives unreadable data, with or without a password.
- You receive a linkThe key to the file is part of the link. If the sender also set a password, they send it separately, for example by text message.
- You open itOpen the link and type the password, if there is one. The file is decrypted on your own device and saved to your Downloads folder.
Why it’s safe
- We can’t see your filesThis website only ever stores encrypted data. It can’t read the contents, not even the file names.
- The key is only in the linkThe secret key is at the end of the link, after the # sign. Your computer never sends it to this website.
- Every piece is checkedThe file arrives in pieces and each one is checked. If anything was changed, the download stops instead of saving a damaged file.
- Downloads pick up againAfter a connection drop the download continues by itself. In supported browsers, even after the tab was closed.
- No account neededOpen the link in your browser. Nothing to sign up for, nothing to install.
- Files don’t stay foreverThe sender can set a date after which the file is deleted, or remove it at any time.
Under the hood
The link
example.com/#4fJq…R7nE.Zk8r…m0Q4
- Website addressServes this page and tells your computer where in cloud storage to fetch the encrypted file.
- File IDTells this website which encrypted file to send. It says nothing about what is inside.
- Secret keyStays on your computer, which never sends the part after the # to this website.
Straight from cloud storage
- 1Your computerThis websitefile IDYour computer sends only the file ID to this website.
- 2This websiteYour computersigned URL (15 min)The website answers with a signed URL: a pass to that one file in cloud storage, valid for 15 minutes. Expired or removed files get none.
- 3Your computerCloud storagerequest with the signed URLYour computer asks cloud storage for the file with that URL, in byte ranges, so it can resume where it stopped.
- 4Cloud storageYour computerencrypted bytesnever through this websiteCloud storage sends the encrypted bytes straight back, over the storage provider’s network, built for large files.
- 1Your computer sends only the file ID to this website.
- 2The website answers with a signed URL: a pass to that one file in cloud storage, valid for 15 minutes. Expired or removed files get none.
- 3Your computer asks cloud storage for the file with that URL, in byte ranges, so it can resume where it stopped.
- 4Cloud storage sends the encrypted bytes straight back, over the storage provider’s network, built for large files.
Why not download from this website? The bytes come over the storage provider’s network, built for large files, so this website stays small and never touches file data. The storage credentials never leave the server: a signed URL opens one file, briefly.
The keys
- secret key16 random bytes from the link. Without a password it alone opens the file, so anyone with the whole link can open it.
- password (if set)Stretched with Argon2id (64 MiB of memory, 3 passes), so every guess is slow and costly. With a password, the link alone isn’t enough, and the password is useless without the link.
- file keysHKDF-SHA256 mixes both with the file’s random 16-byte salt into two separate 256-bit AES keys: one for the name and note, one for the contents.
- whereAll of this happens on your computer. This website has neither the secret key nor the password, so it can’t decrypt anything.
Why is the key in the link? No accounts and no keys on the server means nothing there to leak or hand over: whoever has the link has the key, and nobody else does.
The blocks
- header40 readable bytes: format version, Argon2 settings, salt and block size, all your computer needs to derive the keys.
- nameThe name, type, note and preview, encrypted and padded to whole 4 KiB pages so not even their length shows. Its seal also covers the header.
- 0, 1, 2 … lastThe file in 4 MiB blocks, each encrypted with AES-256-GCM and sealed by a 16-byte tag (the tick). One changed bit breaks the seal, and the download stops instead of saving damaged data.
- 0·0 … n·1Each block’s nonce: its number and a last-block flag. The seal covers the block’s position and marks the last one, so blocks can’t be swapped, dropped or cut off.
- at the endThe SHA-256 of the whole file is compared with the sender’s before the page says it’s verified.
Why blocks? A 15 GB file never has to fit in memory, a dropped connection resumes at the last good block, and damage is caught within 4 MiB instead of at the very end.