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()
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)
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)
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_()
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)
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)
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 })