Finch is a no-nonsense encrypted file sharing and messaging for geeks
Encrypted locally. Encryption keys never
leave your computer w/o your control.
The server has no way to decrypt your data.
No account is need.
Everything is done in the shell script.
There are no special binaries.
You can see what is sent to the server exactly.
Set maximum downloads or expiration time.
Automatically erased from the server after
expiration or maximum downloads.
Suggested Installation
The Finch script is a Bash script. The script uses curl and openssl. Most likely you already have them. After downloading, you can just copy it to your local bin.
$ sudo cp /opt/local/bin/finch
Make sure to set permissions.
$ sudo chmod +x /opt/local/bin/finch
Usage help:
$ finch --help
Send Files and Messages
The encryption keys are NOT shared with the Finch server. The server has NO way to decrypt your data. To encrypt and upload a file:
$ finch -f file_path -t transaction_file
Maximum file size is 16MB. The transaction_file is a text file that contains a random encryption key and transaction id. Anyone who has the file will be able to download and decrypt the uploaded file and message.
To send encrypted message:
$ finch -m "Some message" -t transaction_file
You can also send a file along with a message:
$ finch -f file_path -m "Some message" -t transaction_file
Download Files and Messages
Anyone who has a transaction file generated in the previous section can download and decrypt the corresponding file and/or message. Usually you would want to share the transaction file with someone using some other channels like email. To receive files and messages type the following command and follow the instructions.:
$ finch -g transaction_file
You can specify the transaction lifetime with the following options. The lifetime is managed by server automatically.
--expire/-e          Hours before the upload expires
                     and is erased. The default is 48 hours.
                     Maximum is 120 hours (5 days).

--max-downloads/-w   Maximum number of downloads allowed
                     before the upload is erased. 
                     The default is 2. 
                     Maximum is 10 downloads.
$ finch -f file_path -w 5 -e 72 -t transaction_file
After you submit a file, you'll be given a maser code that looks something like, 086a13881e2d709411c13871bb0c4d79. You probably don't want to share the master code with anybody. It can be used to request current stats (like download counter) or delete transactions from the server. To request the current stats use the -s option.
$ finch -s master_code
To cancel transactions and delete files from the server, use the -d option.
$ finch -d master_code
Finch uses openssl for encryption. The default is aes-128-cbc encryption algorithm (see openssl). You can use the --crypt/-c option to change it to a more secure aes-192-cbc or aes-256-cbc. If your openssl supports them. If you don't want to encrypt at all, you can use the --no-encrypt/-n option.