Esempio n. 1
0
    def test_dump_load(self):
        # dump vault to string
        v1 = vault.Vault()
        v1.set('k', username='******')
        v1.set('l', username='******')
        s = v1.dumps()

        # load vault from string
        v2 = vault.Vault()
        v2.loads(s)

        # content integrity
        self.assertEqual(v2.list(), ['k', 'l'])
        self.assertEqual(v2.get('k')['username'], 'Kyle')
        self.assertEqual(v2.get('l')['username'], 'Linda')
Esempio n. 2
0
 def openVault(self, name='default'):
     if name == 'default':
         name = input("Enter the vault name to open: ")
     myVault = vault.Vault(name)
     self.secretKey = myVault.openVault()
     self.vaultData = myVault.readPasswordFile(self.secretKey)
     self.presentVaultOptions(myVault)
Esempio n. 3
0
    def test_save_load_vault(self):
        # dummy vault with data
        v = vault.Vault()
        v.set('email', username='******', password='******')

        # save to a file-like object
        fp = io.BytesIO()
        vpass = b'meowmix'
        salt = util.make_salt()
        util.save_vault(fp, vpass, salt, v)

        # load fail: wrong key
        fp.seek(0)
        self.assertRaises(RuntimeError, util.load_vault, fp, b'wrongpass')

        # load success: verify contents
        fp.seek(0)
        out_v, out_salt = util.load_vault(fp, vpass)

        self.assertEqual(out_salt, salt)
        self.assertEqual(out_v.dumps(), v.dumps())

        # load fail: corrupt salt
        fp.seek(0)
        fp.write(b'a' * 18)
        fp.seek(0)
        self.assertRaises(RuntimeError, util.load_vault, fp, vpass)
Esempio n. 4
0
 def menu(self, args):
     if args == None:
         print("")
         print("Options: ")
         print("(1) Create a new vault")
         print("(2) Open a local vault")
         print("(3) Load a vault from online drive.")
         print("(4) Delete a vault from online drive.")
         print("(5) Quit")
         choice = int(input("> "))
         if choice == 1:
             self.initVault()
         elif choice == 2:
             self.openVault()
         elif choice == 3:
             self.loadVaultFromDrive()
         elif choice == 4:
             myVault = vault.Vault(None)
             myVault.setUpSyncing()
             myVault.deleteDriveFile()
         elif choice == 5:
             self.running = False
     else:
         if args[0] == "-c" or args[0] == "create":
             self.initVault(args[1])
         elif args[0] == "-o" or args[0] == "open":
             self.openVault(args[1])
Esempio n. 5
0
 def test_list(self):
     # list results are sorted
     v = vault.Vault()
     v.set('b', username='******')
     v.set('a', username='******')
     v.set('c', username='******')
     ks = v.list()
     self.assertEqual(ks, ['a', 'b', 'c'], 'list not sorted')
Esempio n. 6
0
    def __init__(self, text=None, verbose=False, part2=False):

        # 1. Set the initial values
        self.vault = vault.Vault(text=text, part2=part2)
        self.part2 = part2

        # 2. Find the path to all of the keys
        self.key_paths = self.get_key_paths(verbose=verbose)
Esempio n. 7
0
    def test_remove(self):
        v = vault.Vault()
        v.set('j', username='******')

        # now you see it
        self.assertEqual(v.get('j')['username'], 'John')

        # now you don't
        v.remove('j')
        self.assertRaises(KeyError, v.get, 'j')
Esempio n. 8
0
 def initVault(self, name='default'):
     if name == 'default':
         name = input("Enter a name for your vault: ")
     myVault = vault.Vault(name)
     details = myVault.getPassword()
     password = details[0]
     salt = details[1]
     cipherText = myVault.encryptKey(myVault.generateKey(), password)
     myVault.writeToFile(cipherText, salt)
     myVault.createVaultFile()
     print("Initialisation complete")
Esempio n. 9
0
    def test_get(self):
        # existing credential exists
        v = vault.Vault()
        v.set('e', username='******', extra='potato')
        e = v.get('e')
        self.assertEqual(len(e), 4)
        self.assertIn('created', e, 'created missing')
        self.assertIn('modified', e, 'modified missing')
        self.assertEqual(e['username'], 'Edward', 'username missing')
        self.assertEqual(e['extra'], 'potato', 'extra data missing')

        # missing credential throws
        self.assertRaises(KeyError, v.get, 'nonexistent cred')
Esempio n. 10
0
def load_vault(fp: IO[bytes], vpass: bytes) -> Tuple[vault.Vault, bytes]:
    """Load existing vault."""
    salt = fp.read(18)
    v_enc = fp.read()

    try:
        v_raw = decrypt(vpass, salt, v_enc)
    except fernet.InvalidToken:
        raise RuntimeError('incorrect decryption key')

    v = vault.Vault()
    v.loads(v_raw.decode('utf8'))
    return (v, salt)
Esempio n. 11
0
    def test_search(self):
        v = vault.Vault()
        v.set('meowmeow', username='******')
        v.set('meowmix', username='******')
        v.set('purrito', username='******')
        v.set('meowpurr', username='******')

        # match anywhere in string
        self.assertEqual(v.search('purr'), ['meowpurr', 'purrito'])
        # case insensitive
        self.assertEqual(v.search('PURR'), ['meowpurr', 'purrito'])
        # miss
        self.assertEqual(v.search('oink'), [])
        # empty substr matches all
        self.assertEqual(v.search(''),
                         ['meowmeow', 'meowmix', 'meowpurr', 'purrito'])
Esempio n. 12
0
 def list_vaults(self):
     globals.Reporter.message("list-vaults")
     vaults=[]
     self.create_glacier_client()
     lst = self.glacier_client.list_vaults(accountId=self.accountid, limit='100')
     while lst != None and "VaultList" in lst:
         for i in lst["VaultList"]:
             globals.Reporter.message("iterator is " + str(i))
             v = vault.Vault()
             v.import_aws(i)
             vaults.append(v)
         if "Marker" in lst and lst["Marker"] != "":
             lst = self.glacier_client.list_vaults(accountId=self.accountid, marker=lst["Marker"], limit='100')
         else:
             lst=None
     return vaults
Esempio n. 13
0
    def test_text_init_part2(self):
        """Test vault object creation with text"""

        # 1. Create default Vault object
        myvault = vault.Vault(text=from_text(EXAMPLES_PART2[0]), part2=True)

        # 2. Make sure it has the expected values
        self.assertEqual(len(myvault.text), 7)
        self.assertEqual(len(myvault.clean), 7)
        self.assertEqual(myvault.rows, 7)
        self.assertEqual(myvault.cols, 7)
        self.assertEqual(len(myvault.keys), 4)
        self.assertEqual(len(myvault.doors), 3)
        self.assertEqual(len(myvault.key_at), 4)
        self.assertEqual(len(myvault.door_at), 3)
        #self.assertEqual(myvault.origin, (3, 3))
        self.assertEqual(myvault.origins, [(2, 2), (4, 2), (2, 4), (4, 4)])
        self.assertEqual(len(myvault.locs), 12)
Esempio n. 14
0
    def test_text_init(self):
        """Test vault object creation with text"""

        # 1. Create default Vault object
        myvault = vault.Vault(text=from_text(EXAMPLES[3]))

        # 2. Make sure it has the expected values
        self.assertEqual(len(myvault.text), 9)
        self.assertEqual(len(myvault.clean), 9)
        self.assertEqual(myvault.rows, 9)
        self.assertEqual(myvault.cols, 17)
        self.assertEqual(len(myvault.keys), 16)
        self.assertEqual(len(myvault.doors), 8)
        self.assertEqual(len(myvault.key_at), 16)
        self.assertEqual(len(myvault.door_at), 8)
        self.assertEqual(myvault.origin, (8, 4))
        self.assertEqual(myvault.origins, None)
        self.assertEqual(len(myvault.locs), 4 * 15 + 3)
Esempio n. 15
0
    def test_empty_init(self):
        """Test default vault object creation"""

        # 1. Create default Vault object
        myvault = vault.Vault()

        # 2. Make sure it has the default values
        self.assertEqual(myvault.text, None)
        self.assertEqual(myvault.clean, None)
        self.assertEqual(myvault.rows, 0)
        self.assertEqual(myvault.cols, 0)
        self.assertEqual(myvault.keys, {})
        self.assertEqual(myvault.doors, {})
        self.assertEqual(myvault.key_at, {})
        self.assertEqual(myvault.door_at, {})
        self.assertEqual(myvault.origin, None)
        self.assertEqual(myvault.origins, None)
        self.assertEqual(myvault.locs, {})
Esempio n. 16
0
    def test_set(self):
        # check auto-created datetime fields
        v = vault.Vault()
        v.set('d', username='******')
        d = v.get('d')
        cre = d['created']
        mod = d['modified']
        self.assertEqual(cre, mod, 'new entry created/modified mismatch')

        # hack datetime fields to be further in past
        hack = '1982-03-28 13:00:00'
        d['created'] = hack
        d['modified'] = hack

        # updating entry should maintain created but bump modified
        v.set('d', username='******')
        d = v.get('d')
        self.assertEqual(d['created'], hack, 'created changed')
        self.assertNotEqual(d['modified'], hack, 'created unchanged')
Esempio n. 17
0
def cmd_init(vfname: str) -> None:
    """Create new empty vault."""
    while True:
        vpass = util.get_password('vault key? ')
        confirm = util.get_password('vault key? ')
        if vpass == confirm:
            break
        print('\npasswords do not match\n')

    v = vault.Vault()
    try:
        with open(vfname, 'xb') as fp:
            util.save_vault(fp, vpass, util.make_salt(), v)
    except FileExistsError:
        print('\nvault with that name already exists\n', file=sys.stderr)
        sys.exit(1)

    print(f'\ninitialized new vault: {vfname}\n')
    fullpath = os.path.abspath(vfname)
    print(f'you will want: export PMAN_VAULT={fullpath}\n')
Esempio n. 18
0
    def __init__(self):
        print("Main()")
        cmr = cmr_approval_gate.CmrApprovalGate()
        cmr_number = cmr.get_cmr_number()
        Job = cmr.job
        BUILD_NUMBER = cmr.build_number
        cmr.output()
        deploy_url = cmr.get_deploy_url()

        cnsl = consul.Consul()
        role_id = cnsl.get_role_id()
        secret_id = cnsl.get_secret_id()

        vlt = vault.Vault(role_id, secret_id)
        username = vlt.username
        password = vlt.password

        jira = jira_handler.JiraHandler()
        jira_conn = jira.create_connection(username, password)
        jira.find_approved_cmr(jira_conn, cmr_number)
        jira.match_build_string_from_cmr(jira_conn, cmr_number, Job,
                                         BUILD_NUMBER)
Esempio n. 19
0
 def loadVaultFromDrive(self):
     name = input("Enter the vault name to retrieve: ")
     myVault = vault.Vault(name)
     myVault.setUpSyncing()
     myVault.getFile()
Esempio n. 20
0
	def goBack(self):
		if self._password_changed:
			self.window = vault.Vault(self._user_id, self._details_obj.new_master_password)
		else:
			self.window = vault.Vault(self._user_id, self._password_given)
		self.close()
Esempio n. 21
0
	def login(self):
		if self._2fa_status is True or self._2fa_status is None: #if 2fa has been entered sucesfully, or 2fa isnt enabled
			self.window = vault.Vault(self.login_dialog.user_id, self.login_dialog.password)
		self.close()
Esempio n. 22
0
 def test_init(self):
     # starts with nothing
     v = vault.Vault()
     ks = v.list()
     self.assertEqual(len(ks), 0, 'new vault not empty')