Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
def test_no_update_timer():
    fc = FileCrypt()
    fc._update_timer()
    test_time = fc.password_timer
    fc._update_timer()
    assert test_time == fc.password_timer
Ejemplo n.º 6
0
def test_update_password_timer():
    fc = FileCrypt()
    fc._update_timer()
    assert fc.password_timer != 0
Ejemplo n.º 7
0
def test_decrypt_no_file():
    fc = FileCrypt(FILENAME)
    fc.password = setup_fc._gen_password(PASSWORD, salt_info)
    fc.decrypt()
Ejemplo n.º 8
0
def test_decrypt_no_filename():
    fc = FileCrypt()
    fc.decrypt()
Ejemplo n.º 9
0
def test_encrypt_no_filename():
    fc = FileCrypt()
    fc.encrypt()
Ejemplo n.º 10
0
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'
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
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)