-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
39 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,41 @@ | ||
# ccclip | ||
End to end encrypted cloud clipboard. | ||
|
||
# Installation | ||
|
||
Download the prebuilt latest release binary for your OS/arch and ensure that it's in your path. | ||
|
||
# Configuration | ||
|
||
By default, ccclip looks for a ccclip directory in the [user home directory](https://pkg.go.dev/os#UserHomeDir) and it'll store the configuration file and device keys there. | ||
You don't need to do anything if you want to stores your config in the default location; to override this behavior, use the `--config-dir` global flag. | ||
|
||
# Instructions | ||
|
||
### Create an account with | ||
|
||
```bash | ||
ccclip register -e {your-email} | ||
``` | ||
This will prompt you for your password. Your input won't be shown, that's expected (we like to be safe right!?). Just press enter. | ||
Passwords are stored as bcrypt hashes in the server. | ||
|
||
### Register your device | ||
|
||
```bash | ||
ccclip register. | ||
``` | ||
This will prompt you for your password. | ||
An [X25519](https://pkg.go.dev/crypto/ecdh) key pair is created and stored in your configuration directory. | ||
A "device" is created and associated to your account, the device id is stored in your configuration file. | ||
Only the public key is sent to the server (duh). | ||
|
||
### Save and retrieve your clipboard | ||
|
||
The root command `ccclip` serves both purposes, if you pipe something to its stdin, it'll read it and save it as your clipboard. | ||
If you don't pass anything then it'll retrieve your current clipboard and output it through stdout. | ||
|
||
There's a caveat: When a clipboard is created, the sending device encrypts the data for each of the currently registered devices | ||
individually. This means that if you register a new device, it won't immediately have access to the current clipboard because | ||
its public key wasn't available when the clipboard was created. The benefit of this is that your data is end-to-end encrypted and I'll never | ||
be able to see it nor an attacker if we're compromised :) |