def save(username, password, site, key): """Saves the given password to the database""" password = Password(password, username, site) password.encrypt(key) conn = sqlite3.connect(secret.DATABASE) conn.execute( "INSERT INTO passwords (username, password, site) VALUES (?,?,?)", (password.username, password.password, password.site)) conn.commit() conn.close() print( f"Password successfully saved with USERNAME= {username} and SITE={site}." ) print("Press Enter To Continue.") input()
def put(self, email): """Modify user profile. """ if self.get_user_role() != 'admin' and \ not (self.get_user_role() == 'fellow' and \ email == self.current_user): raise tornado.web.HTTPError(403) if self.mongo.user.find_one({'_id': email}) is None: raise tornado.web.HTTPError(404) self.restrict_to(self.req, self.profile_key_modifiable) for key in self.req.keys(): if key in self.profile_key_enum.keys(): if self.req[key] not in self.profile_key_enum[key]: raise tornado.web.HTTPError(400) if self.req.has_key('password'): from password import Password self.req['password'] = Password.encrypt(self.req['password']) try: self.mongo.user.update({'_id': email}, {'$set': self.req}) except pymongo.errors.DuplicateKeyError: raise tornado.web.HTTPError(409)
def testBoth(self): f, filename = tempfile.mkstemp() self.addCleanup(os.unlink, filename) Password.KEYFILE = filename pwd = "Test password" encrypted = Password.encrypt(pwd) self.assertEqual(pwd, Password.decrypt(encrypted)) self.assertEqual(os)
def put(self, validation_link): login = self.req['email'] password = Password.encrypt(self.req['password']) if not self.mongo.user.find_one({ "_id": login, "validation_link": validation_link }): raise tornado.web.HTTPError(404) self.mongo.user.update({"validation_link": validation_link}, {"$set": { "password": password }}) self.mongo.user.update({"validation_link": validation_link}, {"$unset": { "validation_link": 1 }})
def testCryptedPassword(self, password): from password import Password password.return_value = (hexlify(Password._generate_key()), hexlify(Password._generate_key())) passwd = "TestSecretPassword!" crypted = hexlify(Password.encrypt(passwd)) filename = os.path.join(self.config_dir, "test.conf") with open(filename, "w") as f: f.write(""" [test] type=esx server=1.2.3.4 username=admin encrypted_password=%s owner=root env=staging """ % crypted) manager = ConfigManager(self.logger, self.config_dir) self.assertEqual(len(manager.configs), 1) self.assertEqual(manager.configs[0].password, passwd)
print """Utility that encrypts passwords for virt-who. Enter password that should be encrypted. This encrypted password then can be supplied to virt-who configuration. This command must be executed as root! WARNING: root user can still decrypt encrypted passwords! """ sys.exit(0) if os.getuid() != 0: print >> sys.stderr, "Only root can encrypt passwords" sys.exit(1) try: pwd = getpass("Password: "******"Keyfile %s doesn't exist and can't be created, rerun as root" % Password.KEYFILE sys.exit(1) except InvalidKeyFile: print >> sys.stderr, "Can't access keyfile %s, rerun as root" % Password.KEYFILE sys.exit(1) print >> sys.stderr, "Use following as value for encrypted_password key in the configuration file:" print hexlify(enc)
def testBackslash(self): self.mock_pwd_file() pwd = 'abc\\def' self.assertEqual( Password.decrypt(Password.encrypt(pwd)), pwd)
def testPercent(self): self.mock_pwd_file() pwd = 'abc%%def' self.assertEqual( Password.decrypt(Password.encrypt(pwd)), pwd)
def testBoth(self): self.mock_pwd_file() pwd = "Test password" encrypted = Password.encrypt(pwd) self.assertEqual(pwd, Password.decrypt(encrypted))
def testBoth(self): f, filename = tempfile.mkstemp() self.addCleanup(os.unlink, filename) Password.KEYFILE = filename pwd = "Test password" Password._can_write = MagicMock(retun_value=True) encrypted = Password.encrypt(pwd) self.assertEqual(pwd, Password.decrypt(encrypted))