Browse Source

fix v1 decrypt debug message, update readme

dependabot/add-v2-config-file
R4SAS 5 years ago
parent
commit
f5ef4bbc03
  1. 36
      README.md
  2. 4
      pbincli/actions.py
  3. 5
      pbincli/format.py

36
README.md

@ -5,19 +5,19 @@ @@ -5,19 +5,19 @@
PBinCLI
=====
#### [PrivateBin](https://github.com/PrivateBin/PrivateBin/) CLI
PBinCLI is command line client for [PrivateBin](https://github.com/PrivateBin/PrivateBin/) written on Python 3.
Installing
-----
```bash
$ virtualenv --python=python3 venv
$ . venv/bin/activate
$ pip install pbincli
virtualenv --python=python3 venv
. venv/bin/activate
pip install pbincli
```
Usage
-----
By default pbincli configured to use https://paste.i2pd.xyz/ for sending and receiving pastes. No proxy used by default.
By default pbincli configured to use `https://paste.i2pd.xyz/` for sending and receiving pastes. No proxy used by default.
You can create config file with variables `server` and `proxy` in `~/.config/pbincli/pbincli.conf` to use different settings.
@ -30,30 +30,38 @@ proxy=http://127.0.0.1:3128 @@ -30,30 +30,38 @@ proxy=http://127.0.0.1:3128
Run inside `venv` command:
$ pbincli send --text "Hello!"
```bash
pbincli send --text "Hello!"
```
Or use stdin input to read text for paste:
$ pbincli send - <<EOF
Hello! This is test paste!
EOF
```bash
pbincli send - <<EOF
Hello! This is test paste!
EOF
```
It will send string `Hello! This is test paste!` to PrivateBin.
To send file use `--file` or `-f` with filename. Example:
$ pbincli send -c "My document" -f info.pdf
```bash
pbincli send -c "My document" -f info.pdf
```
To retrieve paste from server, use `get` command with paste info.
It must be formated like `pasteID#passphrase`. Example:
$ pbincli get 49eeb1326cfa9491#vfeortoVWaYeJlviDdhxQBtj5e0I2kArpynrtu/tnGs=
```bash
pbincli get 49eeb1326cfa9491#vfeortoVWaYeJlviDdhxQBtj5e0I2kArpynrtu/tnGs=
```
More info you can find by typing
$ pbincli [-h] {send, get, delete}
```bash
pbincli [-h] {send, get, delete}
```
TODO
----

4
pbincli/actions.py

@ -42,7 +42,7 @@ def send(args, api_client): @@ -42,7 +42,7 @@ def send(args, api_client):
request = paste.getJSON()
if args.debug:
if args.debug:
print("Passphrase:\t{}".format(paste.getHash()))
print("Request:\t{}".format(request))
@ -103,7 +103,7 @@ def get(args, api_client): @@ -103,7 +103,7 @@ def get(args, api_client):
version = result['v'] if 'v' in result else 1
paste.setVersion(version)
if version == 2:
if args.debug: print("Authentication data:\t{}".format(result['adata']))

5
pbincli/format.py

@ -113,6 +113,7 @@ class Paste: @@ -113,6 +113,7 @@ class Paste:
).digest())
@classmethod
def __initializeCipher(self, key, iv, adata):
from pbincli.utils import json_encode
cipher = AES.new(key, AES.MODE_GCM, nonce=iv, mac_len=CIPHER_TAG_BYTES)
@ -126,7 +127,7 @@ class Paste: @@ -126,7 +127,7 @@ class Paste:
return b64encode(self._key) + digest.encode("UTF-8")
else:
return b64encode(self._key)
def __decompress(self, s):
if self._version == 2 and self._compression == 'zlib':
@ -188,7 +189,7 @@ class Paste: @@ -188,7 +189,7 @@ class Paste:
cipher_text = json_decode(self._data['data'])
if self._debug: print("Text:\t{}\n".format(data))
if self._debug: print("Text:\t{}\n".format(cipher_text))
text = SJCL().decrypt(cipher_text, password)

Loading…
Cancel
Save