コード例 #1
0
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()
コード例 #2
0
    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)
コード例 #3
0
ファイル: test_password.py プロジェクト: carterkozak/virt-who
 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)
コード例 #4
0
ファイル: test_password.py プロジェクト: cakofony/virt-who
 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)
コード例 #5
0
 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
                            }})
コード例 #6
0
ファイル: test_config.py プロジェクト: wido-gg/virt-who
    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)
コード例 #7
0
    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)
コード例 #8
0
ファイル: virtwhopassword.py プロジェクト: wido-gg/virt-who
        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)
コード例 #9
0
ファイル: test_password.py プロジェクト: wido-gg/virt-who
 def testBackslash(self):
     self.mock_pwd_file()
     pwd = 'abc\\def'
     self.assertEqual(
         Password.decrypt(Password.encrypt(pwd)),
         pwd)
コード例 #10
0
ファイル: test_password.py プロジェクト: wido-gg/virt-who
 def testPercent(self):
     self.mock_pwd_file()
     pwd = 'abc%%def'
     self.assertEqual(
         Password.decrypt(Password.encrypt(pwd)),
         pwd)
コード例 #11
0
ファイル: test_password.py プロジェクト: wido-gg/virt-who
 def testBoth(self):
     self.mock_pwd_file()
     pwd = "Test password"
     encrypted = Password.encrypt(pwd)
     self.assertEqual(pwd, Password.decrypt(encrypted))
コード例 #12
0
        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)
コード例 #13
-1
 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))