def uploadfile(self, file, ufilesize):
     path, filename = os.path.split(file)
     encryption.encrypt_file(self.key, file)
     encryptedfile = file + ".enc"
     
     with open(encryptedfile, 'rb') as f:
         content = f.read()
         
     filedata = binascii.hexlify(content)    
     chunknum = 0      
     chunknum = 0
     filelength = int(math.ceil(len(filedata) / 9995))
     self.progressbar.config(maximum=filelength)
     newpost = r.submit(self.subname, filename, text=ufilesize)
     myurl = newpost.url
     mysubmission = r.get_submission(url=myurl)   
        
     for chunk in self.chunks(filedata, 9995):
         newchunk = str(chunknum) + "-" + chunk
         mysubmission.add_comment(newchunk)
         chunknum = chunknum + 1
         mynuma = chunknum + 1
         self.progressbar.config(value=chunknum)
         self.update_idletasks()
         
     os.remove(encryptedfile)
     showinfo('OK', '%s uploaded successfully!' % (filename))
     self.progressbar.config(value=0)
     self.fetchfiles()
Пример #2
0
 def test_encrypt_decrypt_file(self):
     # test encrypting and decrypting a single file
     # get current value in the file
     content = None
     with open(self.test_file, "rb") as f:
         content = f.read()
     # file content should now be different
     encryption.encrypt_file(self.test_file, self.key)
     new_content = None
     with open(self.test_file_encrypted, "rb") as f:
         new_content = f.read()
     self.assertFalse(content == new_content)
     # decrypt and the content should be reverted
     encryption.decrypt_file(self.test_file_encrypted, self.key)
     new_content = None
     with open(self.test_file, "rb") as f:
         new_content = f.read()
     self.assertEqual(content, new_content)
Пример #3
0
def send(path):
    fernet_key = encryption.get_fernet_key()
    u = upnp_handler.new_upnp()
    upnp_handler.forward_port(u, 25565)

    s = socket.socket()
    s.bind(('', 25565))
    s.listen(5)

    csocket, addr = s.accept()
    print('Got connection from', addr)

    public_key_encoded = csocket.recv(1024)

    public_key = serialization.load_pem_public_key(public_key_encoded,
                                                   default_backend())

    with open(path, 'rb') as f:
        metadata = {
            'filename': os.path.basename(path),
            'size': os.path.getsize(path),
            'checksum': sha256(f.read()).hexdigest(),
            'fernet_key': fernet_key.decode('utf-8')
        }
    metajson = json.dumps(metadata)
    print(metajson)

    encryptedmetajson = encryption.encrypt(public_key,
                                           metajson.encode('utf-8'))

    csocket.send(encryptedmetajson)

    with open(path, 'rb') as f:
        token = encryption.encrypt_file(fernet_key, f)

    while True:
        message = csocket.recv(1024).decode('utf-8')
        if (message == "send it"):
            break
        elif (message == "nosend"):
            f.close()
            csocket.close()
            upnp_handler.close_port(u, 25565)
            sys.exit()

    while True:
        data = token.read(1024)
        if (len(data)):
            csocket.send(data)
        else:
            break

            token.close()
            csocket.close()
            upnp_handler.close_port(u, 25565)
Пример #4
0
    def encrypt(self):

        if len(self.passEdit.text()) > 0:
            fileNames = self.select_files('Hello please select files to encrypt')
            inc = 100//len(fileNames)
            completed = 0
            self.setStatusTip('Encrypting files...')
            for f in fileNames:
                encryption.encrypt_file(self.passEdit.text(), f)
                completed += inc
                self.statusLabel.setText('Encryption ' + f+'...')
                self.progressBar.setValue(completed)
            self.progressBar.setValue(100)
            self.setStatusTip('Encryption complete')

        else:
            print('please enter a password')
            msgBox = QtGui.QMessageBox()
            msgBox.setText('You must enter a password')
            msgBox.exec_()
Пример #5
0
def upload(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST)
        if form.is_valid():
            expense = Expense()
            expense.description = form.cleaned_data['description']
            infile = request.FILES['file']
            filename = infile._get_name()
            outfile = settings.TEMP_DIR + filename + u'.enc'
            encryption.encrypt_file(key=settings.ENC_KEY, in_file=infile, out_filename=outfile)
            with open(outfile, 'rb') as file:
                expense.image.put(file, content_type='image/jpeg')
                expense.save()
            os.remove(outfile)
            return HttpResponseRedirect('/detail/' + str(expense.id) + '/')
    else:
        form = UploadFileForm()
        c = {'form': form}
        c.update(csrf(request))
        return render_to_response('upload.html', c)
Пример #6
0
def print_columns(content):
    col_width = max(len(item) for row in content for item in row) + 1
    # Finner lengden på det lengste elementet i lista, legg til 1 som buffer.
    total_width = (col_width *3) +5
    print ""
    print "Skriver ut innhold i kolonner:"
    print "-" * total_width
    for row in content:
        print "".join(item.ljust(col_width) + "| " for item in row)
    print "-" * total_width

def sort_content(content):
        print ""
        print "Skriver ut alt innhold sortert:"
        combined = sorted(item for row in content for item in row)
        # Tar ut alle elementene i hver liste og legger det til i en ny liste sortert
        print "\n".join(word for word in combined)
        # Slår sammen elementene i listen med newline mellom hvert element

in_array = insert()
save(in_array)
key = raw_input("encryption key: ")
normal_file = "columns.csv"
encrypted_file = "columns.enc"
decrypted_file = "columns.decrypted"
encryption.encrypt_file(key, normal_file, encrypted_file)
encryption.decrypt_file(key, encrypted_file, decrypted_file)

# out_array = read()
# print_columns(out_array)
# sort_content(out_array)
Пример #7
0
def create_report(request):
    # company_user = CompanyDetails.objects.get(user=request.user)
    base = BaseUser.objects.get(user=request.user)
    company_user = request.user
    username = None
    if request.user.is_authenticated():
        username = request.user
    has_messages = False
    # some stuff about messages
    message_list = Message.objects.filter(receiver=request.user)
    for m in message_list:
        if m.opened is False:
            has_messages = True
            break
    if company_user or is_site_manager(request.user):
        if request.method == 'POST':
            report_form = ReportForm(request.POST, prefix="report_form")
            permissions_form = ReportPermissionsForm(request.POST,
                                                     prefix="permissions_form")

            file_formset = FileFormset(request.POST,
                                       request.FILES,
                                       prefix="file_formset")

            if report_form.is_valid() and permissions_form.is_valid() \
                    and file_formset.is_valid():
                report = report_form.save(commit=False)
                report.owner = company_user
                report.has_attachments = False
                report.save()

                permissions = permissions_form.save(commit=False)
                permissions.report = report
                permissions.save()
                permissions_form.save_m2m()

                for form in file_formset:
                    file = form.save(commit=False)
                    file.upload_date = datetime.date.today()
                    file.report = report
                    file.save()
                    if file.is_encrypted:
                        print(file.title)
                        encfile = encrypt_file(
                            "reportFiles/" + file.upload.__str__(), "encrypt")
                        a = os.path.dirname(
                            os.path.dirname(os.path.abspath(__file__))
                        ) + "/reportFiles/" + file.upload.__str__()
                        file.upload = encfile
                        os.remove(a)

                if File.objects.filter(report__pk=report.pk):
                    report.has_attachments = True
                else:
                    report.has_attachments = False

                report.save(force_update=True)
                addReport(request.user, report)
                messages.success(request, "Report created")
                return view_report(request, report.pk)
        else:
            report_form = ReportForm(prefix="report_form")
            permissions_form = ReportPermissionsForm(prefix="permissions_form")
            file_formset = FileFormset(prefix="file_formset")
        return render(
            request, 'create_report.html', {
                'report_form': report_form,
                'permissions_form': permissions_form,
                'file_formset': file_formset,
                'username': username,
                'type': base.user_role
            })

    else:
        return redirect(
            'view_report', {
                'has_messages': has_messages,
                'username': username,
                'type': base.user_role
            })