Skip to content

v0.3.0

Latest
Compare
Choose a tag to compare
@nakabonne nakabonne released this 28 Dec 12:39
· 4 commits to main since this release
0af2a5b

pbgopy v0.3.0 is here!! 🎉

It's a feature-packed release with tons of features for secure use.

Hybrid cryptosystem is now available (#25)

pbgopy comes with a built-in end-to-end encryption feature. You can now encrypt with not only the symmetric-key but also your public/private key. If you have already exchanged public keys between devices you want to share data with, this is the way to go.

You can simply encrypt/decrypt by specifying the key file:

pbgopy copy --public-key-file /path/to/public.key <plaintext.txt
pbgopy paste --private-key-file /path/to/private.key <plaintext.txt

Note that you can only use an RSA key in PEM or DER format.

Specify public/private key via GPG (#27)

You manage your keyring in GPG? The --gpg-user-id (-u) flag is for you! Suppose you want to encrypt with a public key whose user id is alice:

pbgopy copy -u alice <plaintext.txt

Then you decrypt it with the private key by specifying the user id on another device:

pbgopy paste -u alice

There are a couple of ways to specify a user ID. Visit here to see the entire list.

Existing symmetric-keys are now available (#23)

As in the past, you can derive the key from password with the -p flag, which is provided so that you can encrypt/decrypt without previous setting, while this way cannot prevent a dictionary attack. For more safety, it is highly recommended to use a 32-bytes symmetric key generated by other methods. The -k flag or the PBGOPY_SYMMETRIC_KEY_FILE environment variable is available to indicate the path to the key file.

pbgopy copy -k /path/to/pbgopy.key <plaintext.txt

Performance improvements

  • Reduced unnecessary communication when deriving the key from the password (#28)

Breaking changes

  • The PBGOPY_PASSWORD_FILE environment variable has been unavailable.
  • The interface between pbgopy server and client has been slightly changed, hence you will need to update the binaries on all devices to use this version.

Changelog

0af2a5b Add information on how to use hybrid cryptography (#29)
06d10e8 Ensure to give back stderr when GPG failed
cc6ca28 Add check if multiple keys are specified
f2a81ac Stop using salt when deriving key from password (#28)
4d255f4 Enable to specify public/private key via GPG (#27)
8f4ca3a Support encrypted private keys (#26)
31b8bab Enable hybrid cryptosystem (#25)
f11af4c Rename encryption parameters
50bc455 Add functions to encrypt/decrypt with RSA (#24)
b61ded0 Slice off leading and trailing white space of key
b4d10bc Enable to directly give symmetric-key (#23)
efbe459 Make the hash function common

Docker images

  • docker pull nakabonne/pbgopy:latest
  • docker pull nakabonne/pbgopy:v0.3.0
  • docker pull nakabonne/pbgopy:v0.3