mirror of https://github.com/r4sas/PBinCLI
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
876 B
27 lines
876 B
"""Action functions for argparser""" |
|
import base64 |
|
import pbincli.actions |
|
from Crypto.Hash import SHA256 |
|
from Crypto.Random import get_random_bytes |
|
from pbincli.sjcl_gcm import SJCL |
|
from pbincli.utils import PBinCLIException, check_readable, check_writable |
|
from zlib import compress |
|
|
|
def send(args): |
|
""" Sub-command for sending paste """ |
|
check_readable(args.filename) |
|
with open(args.filename, "rb") as f: |
|
contents = f.read() |
|
file = base64.b64encode(compress(contents)) |
|
|
|
passphrase = base64.b64encode(get_random_bytes(32)) |
|
if not args.password: |
|
password = passphrase |
|
else: |
|
p = SHA256.new() |
|
p.update(args.password.encode("UTF-8")) |
|
password = passphrase + p.hexdigest().encode("UTF-8") |
|
|
|
data = SJCL().encrypt(file, password) |
|
'''Here we must run function post from pbincli.transports''' |
|
print(data)
|
|
|