update get command

This commit is contained in:
r4sas
2017-02-20 20:56:37 +03:00
parent 5fe5c2f195
commit e986df6413
4 changed files with 35 additions and 34 deletions

View File

@@ -1,24 +1,28 @@
"""Action functions for argparser"""
import json
#import mimetypes
import os
import pbincli.actions
'''from pbincli.sjcl_gcm import SJCL'''
import sys
#import pbincli.sjcl_gcm
import pbincli.sjcl_simple
import pbincli.utils
from base64 import b64encode
from base64 import b64encode, b64decode
from Crypto.Hash import SHA256
from pbincli.transports import privatebin
from zlib import compress
from zlib import compress, decompress
def send(args):
""" Sub-command for sending paste """
if args.comment:
text = args.comment
else:
text = "Test!"
#check_readable(args.filename)
#with open(args.filename, "rb") as f:
# contents = f.read()
#file = b64encode(compress(contents))
data = b'Test!'
passphrase = os.urandom(32)
if args.debug: print("Passphrase: {}".format(passphrase))
@@ -26,30 +30,24 @@ def send(args):
p = SHA256.new()
p.update(args.password.encode("UTF-8"))
passphrase = b64encode(passphrase + p.hexdigest().encode("UTF-8"))
else:
passphrase = b64encode(passphrase)
if args.degub: print("Password:\t{}".format(passphrase))
if args.debug: print("Password:\t{}".format(passphrase))
#data = SJCL().encrypt(file, password.decode("UTF-8"))
#cipher = pbincli.sjcl_simple.encrypt(b64encode(passphrase), file)
"""Sending text from 'data' string"""
cipher = pbincli.sjcl_simple.encrypt(passphrase, data)
request = {'data':json.dumps(cipher, ensure_ascii=False).replace(' ',''),'expire':args.expire,'formatter':args.format,'burnafterreading':int(args.burn),'opendiscussion':int(args.discus)
}
#cipher = SJCL().encrypt(b64encode(text), passphrase)
cipher = pbincli.sjcl_simple.encrypt(passphrase, text)
request = {'data':json.dumps(cipher, ensure_ascii=False).replace(' ',''),'expire':args.expire,'formatter':args.format,'burnafterreading':int(args.burn),'opendiscussion':int(args.discus)}
if args.debug: print("Request:\t{}".format(request))
result, server = privatebin().post(request)
if args.debug: print("Response:\t{}\n".format(result.decode("UTF-8")))
result = json.loads(result)
"""Standart response: {"status":0,"id":"aaabbb","url":"\/?aaabbb","deletetoken":"aaabbbccc"}"""
if result['status'] == 0:
print("Paste uploaded!\nPasteID:\t{}\nPassword:\t{}\nDelete token:\t{}\n\nLink:\t{}?{}#{}".format(result['id'], passphrase.decode("UTF-8"), result['deletetoken'], server, result['id'], passphrase.decode("UTF-8")))
else:
print("Something went wrong...\nError:\t{}".format(result['error']))
print("Something went wrong...\nError:\t{}".format(result['message']))
sys.exit(1)
@@ -61,19 +59,19 @@ def get(args):
else:
print("PBinCLI error: Incorrect request")
sys.exit(1)
if args.debug: print("Response:\t{}\n".format(result.decode("UTF-8")))
result = json.loads(result)
if result['status'] == 0:
print("Paste received!\n")
text = pbincli.utils.json_loads_byteified(result['data'])
out = pbincli.sjcl_simple.decrypt(paste[1], text)
out = pbincli.sjcl_simple.decrypt(paste[1], text)
#out = pbincli.sjcl_gcm.SJCL().decrypt(text, paste[1])
print(out)
if 'burnafterreading' in result['meta'] and result['meta']['burnafterreading']:
print("Meow!")
result = privatebin().delete(paste[0], 'burnafterreading')
if args.debug: print("Delete response:\t{}\n".format(result.decode("UTF-8")))
else:
print("Something went wrong...\nError:\t{}".format(result['error']))
print("Something went wrong...\nError:\t{}".format(result['message']))
sys.exit(1)