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')
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)
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)
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])
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')
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)
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')
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")
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')
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)
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'])
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
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)
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)
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, {})
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')
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')
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)
def loadVaultFromDrive(self): name = input("Enter the vault name to retrieve: ") myVault = vault.Vault(name) myVault.setUpSyncing() myVault.getFile()
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()
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()
def test_init(self): # starts with nothing v = vault.Vault() ks = v.list() self.assertEqual(len(ks), 0, 'new vault not empty')