def __init__(self): self.file_crypt = FileCrypt() self.config = self.load_config() self.pyi_updater = PyiUpdater(self.config) self.key_handler = KeyHandler() self.package_handler = PackageHandler() self.uploader = Uploader() self.update_helpers(self.pyi_updater) helpers = { u'key_handler': self.key_handler, u'package_handler': self.package_handler, u'uploader': self.uploader, u'file_crypt': self.file_crypt, u'config': self.config, u'save': self.save_config, } self.keys_menu = keys.Keys(helpers) self.settings_menu = settings.Settings(helpers) self.sign_menu = sign.Sign(helpers) self.upload_menu = upload.Upload(helpers) header = u'Main Menu' options = [(u'Sign Updates', self.sign_menu), (u'Upload', self.upload_menu), (u'Keys', self.keys_menu), (u'Settings', self.settings_menu), (u'Quit', self.quit)] super(Worker, self).__init__(header, options)
def _add_filecrypt(self, fc=None): # Using a single file crypt object module wide. # Helps with password timeout if fc is None: self.fc = FileCrypt() else: self.fc = fc
def test_change_password(): fc = FileCrypt(FILENAME) test_password = setup_fc._gen_password(PASSWORD, salt_info) fc.password = test_password fc.encrypt() assert fc.change_password( test_password, setup_fc._gen_password('new password', salt_info)) is True
def test_file_enc_dec(): fc = FileCrypt(FILENAME) fc.password = setup_fc._gen_password(PASSWORD, salt_info) fc.encrypt() fc.password = setup_fc._gen_password(PASSWORD, salt_info) fc.decrypt() with open(FILENAME, u'r') as f: og_data = f.readlines() assert og_data == FILE_DATA
def test_no_update_timer(): fc = FileCrypt() fc._update_timer() test_time = fc.password_timer fc._update_timer() assert test_time == fc.password_timer
def test_update_password_timer(): fc = FileCrypt() fc._update_timer() assert fc.password_timer != 0
def test_decrypt_no_file(): fc = FileCrypt(FILENAME) fc.password = setup_fc._gen_password(PASSWORD, salt_info) fc.decrypt()
def test_decrypt_no_filename(): fc = FileCrypt() fc.decrypt()
def test_encrypt_no_filename(): fc = FileCrypt() fc.encrypt()
def test_ciphertext_filename(): test_filename = 'test.txt.enc' fc = FileCrypt() filename, enc_filename = fc._set_filenames(test_filename) assert filename == u'test.txt' assert enc_filename == u'test.txt.enc'
def test_plaintext_filename(): test_filename = 'test.txt' fc = FileCrypt() set_filename, set_enc_filename = fc._set_filenames(test_filename) assert set_filename == FILENAME assert set_enc_filename == FILENAME_ENC
def test_enc_file_name(): fc = FileCrypt(FILENAME) fc.password = setup_fc._gen_password(PASSWORD, salt_info) fc.encrypt() assert os.path.exists(FILENAME_ENC) is True
from pyi_updater.exceptions import FileCryptError from pyi_updater.filecrypt import FileCrypt PASSWORD = six.b('This is my password') FILENAME = u'test.txt' FILENAME_ENC = u'test.txt.enc' RANDOM_DATA = u'This is some stuff that i want to test'.split(u' ') FILE_DATA = [] LENGHTS = [8, 9, 10, 11] for i in xrange(100): a = u' '.join(choice(RANDOM_DATA) for x in range(choice(LENGHTS))) FILE_DATA.append(a + u'\n') setup_fc = FileCrypt() setup_fc.data_dir = cwd salt = os.urandom(16) salt_version = '1' salt_info = {u'salt': salt, 'version': salt_version} def setup_func(): with open(FILENAME, u'w') as f: for fd in FILE_DATA: f.write(fd) def teardown_func(): if os.path.exists(FILENAME): os.remove(FILENAME)