Pbgopy Versions Save

Copy and paste between devices

v0.3.0

3 years ago

pbgopy v0.3.0 is here!! 🎉

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

Hybrid cryptosystem is now available (https://github.com/nakabonne/pbgopy/pull/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 (https://github.com/nakabonne/pbgopy/pull/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 (https://github.com/nakabonne/pbgopy/pull/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

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

v0.2.1

3 years ago

pbgopy v0.2.1 is here.

  • Support --from-clipboard option to put the data at the clipboard on your OS.
  • Enable to set password via the PBGOPY_PASSWORD_FILE environment variable.
  • Expose /lastupdated endpoint to tell when to update the current content. This is for the extension tool for pbgopy

Changelog

87286c2 Add description to tell how to use --from-clipboard option 2bb3509 Merge pull request #21 from thealamu/iss#17 5db914a Remove unneeded log 5652c16 Merge pull request #12 from name-schema/automating-password-entry-issue-5 4c95f4a Default read source to stdin 76dd4ea Allow setting --max-size on clipboard source 8c7b720 Merge pull request #20 from IvarWithoutBones/nix-readme 317dd4b Add Nix installation instructions 24f7564 Merge branch 'main' into automating-password-entry-issue-5 32ef963 Issue #5 - Addressed CR comments 18cba7a Use strong pseudo-random number generator for salt e67fd38 Remove unneeded private function ffc124a Handle the case of cache not found 5281a59 Read data from clipboard if option is specified 7f8595e Register a from-clipboard flag fc73b4c Remove unneeded multi getter 46e20b8 Be more clear cache key name a792f24 Merge pull request #16 from thealamu/feat/lastupdated 3363c6f Update installation instructions 7553882 Test lastupdated path 7ce9148 Update timestamp in cache on put 3c587cd Implement handler for getting lastupdated timestamp 4932bed Register the lastupdated path 8e0c51a Issue #5 - Automating Password Entry

Docker images

  • docker pull nakabonne/pbgopy:latest
  • docker pull nakabonne/pbgopy:v0.2.1
  • docker pull nakabonne/pbgopy:v0.2

v0.2.0

3 years ago

pbgopy v0.2.0 is here 🎉

Support basic authentication

You can now perform a minimum of authentication via an HTTP Basic Authentication.

pbgopy serve -a user:pass
pbgopy copy -a user:pass <foo.png
pbgopy paste -a user:pass >foo.png

Max size is now configurable

--max-size option is now available

pbgopy copy --max-size 100mb
pbgopy paste --max-size 100mb

And fixed an encryption vulnerability

Changelog

c2094de Add authentication section f3764ac Add max-size option to paste command b0c75a1 Contain modified part of datasize 4bf3404 Merge pull request #10 from thealamu/iss#2 0c5478d Update tests, add float datasize test 1ad54dd Remove unnecessary comments 61ae8c5 Check single error results on the same line 43ff909 Fix failing tests d9ee796 Add tests for readNoMoreThan and datasizeToBytes 46a0a69 Don't allocate buffer memory ahead of time d6978d1 Allow users specify human-readable data sizes bff38f6 Fix lint errors 025c7d9 Fail when copy data exceeds defined maxSize (#1) d903987 Merge pull request #14 from azunymous/main 9fa846f Change create server to be private 0fcfd7e Merge pull request #13 from pjvds/patch-2 c1b4d79 Merge pull request #11 from name-schema/no-empty-nonce-issue-4 d011c7e Add server tests for copy and paste adc20a5 Add basic authentication to commands 4d97c1c docs: add AUR package to README 2ada86e Issue #4 - Made GetNonce func private 4fbed2c Issue #4 - Adding back the RandomBytes function 4c39fec Issue #4 - Stop using an empty nonce for GCM b77c9c2 Rename crypt package to crypto 5e99fdb Modularize encryption/decryption package (#9) 416dc4f Put salt into cache for concurrent use 497dfb1 Derive a secure encryption key based on the password (#8) 9e86a26 Update demo to clarify it uses different devices

Docker images

  • docker pull nakabonne/pbgopy:latest
  • docker pull nakabonne/pbgopy:v0.2.0
  • docker pull nakabonne/pbgopy:v0.2

v0.1.1

3 years ago

Changelog

e6d3359 Use password option instead of key (#1) 8bb5cf1 Fix import order

Docker images

  • docker pull nakabonne/pbgopy:latest
  • docker pull nakabonne/pbgopy:v0.1.1
  • docker pull nakabonne/pbgopy:v0.1

v0.1.0

3 years ago

v0.1.0 is the first release with the basic features.

Changelog

46dbc88 Ensure to run release on ubuntu 8e2d6c3 Update installation instructions a222d59 Enable to publish releases continuously 2df882e Add sub-command to show version a660f04 Enable golangci-lint bee7434 Enable continuous testing f5cd21d Update description for end-to-end encryption 3db934f Add ability to encrypt data with common key d7604d7 Enable to fetch data with paste command 0a1fdb4 Enable to put data with copy command f3cf692 Add paste command c2fa2e6 Ensure to give back cached contents e436f37 Add usage section 5a7007b Enable to cache a given contents 1b18ad3 Add serve command 0a153f4 Add a package that provides an interface to cache 87697d0 Ignore output file from coverage tool a53cfb9 Update README f8cfc02 Add copy command f2dd866 Add README c8ec66f Initial commit

Docker images

  • docker pull nakabonne/pbgopy:latest
  • docker pull nakabonne/pbgopy:v0.1.0
  • docker pull nakabonne/pbgopy:v0.1