BTFS-Encryption
btfs-encryption is a demo project for BTFS Encrypted Storage Protocol, and provide a binary you can use to encrypt/decrypt files from/to btfs with this protocol:
How to install
Prerequisites
Commands
NAME:
btfs-encryption - btfs-encryption is a demo project for btfs encryption protocol
USAGE:
btfs-encryption [global options] command [command options] [arguments...]
VERSION:
v0.1.0
COMMANDS:
encrypt Encrypt local file or folder and add it to BTFS
decrypt Get encrypted file from BTFS and decrypt it to local
encrypt-local Encrypt local file or folder
decrypt-local Decrypt local encrypted file
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
--version, -v print the version (default: false)
-
Encrypt local file or folder and add it to BTFS
./btfs-encryption encrypt [-pub <public_key_path>] <source_file_or_folder_path>
If it works, the output will show the encrypted BTFS file info:
Encrypted File:
CID - <CID>
Name - <Name>
Size - <Size>
-
Get encrypted file from BTFS and decrypt it to local
./btfs-encryption decrypt [-dst <destination_directory_path>] [-prv <private_key_path>] <cid>
If it works, the decrypted files will be in the specified destination directory, and output will be:
completed!
-
Encrypt local file or folder
./btfs-encryption encrypt-local [-dst <destination_directory_path>] [-pub <public_key_path>] <source_file_or_folder_path>
If it works, the encrypted file will be in the specified destination directory, and output will be:
completed!
-
Decrypt local encrypted file
./btfs-encryption decrypt-local [-src <source_file_path>] [-dst <destination_directory_path>] [-prv <private_key_path>] <cid>
If it works, the decrypted files will be in the specified destination directory, and output will be:
completed!
Used as library
The project can be used as library for convenience:
go get github.com/bittorrent/btfs-encryption
package main
import (
"github.com/bittorrent/btfs-encryption/enc"
)
func main() {
// encryption
err := enc.EncryptToLocal("path/to/source", "path/to/dest", "path/to/public/key")
if err != nil {
return
}
// decryption
err = enc.DecryptFromLocal("path/to/source", "path/to/dest", "path/to/private/key")
if err != nil {
return
}
}