示例#1
0
    def setClient(self, instagramAC):
        logging.info("     Connecting Instagram")
        try: 
            keyring.set_keyring(keyrings.alt.file.PlaintextKeyring()) 
            username = instagramAC 
            self.user = instagramAC
            server = 'instagram'
            password = keyring.get_password(server,username) 
            if not password: 
                logging.info("[%s,%s] New account. Setting password" % (server, username)) 
                password = getpass.getpass() 
                keyring.set_password(server, username, password)

            try: 
                api = InstagramAPI(username, password) 
                api.login()  # login
                logging.info("     Logging OK")
            except:
                logging.warning("Instagram authentication failed!")
                logging.warning("Unexpected error:", sys.exc_info()[0])
        except:
            logging.warning("Account not configured")
            api = None

        self.client = api
示例#2
0
    def test_crypted_keyring_migration_add(self):
        '''Test CryptedFileKeyring Migration by adding'''

        self._create_old_keyrings()
        keyring.set_keyring(StubbedCryptedFileKeyring())
        self._password_test()
        self._check_file_permissions(self.crypted)
示例#3
0
    def run(self, argv):
        opts, args = self.parser.parse_args(argv)

        try:
            kind, service, username = args
        except ValueError:
            if len(args) == 0:
                # Be nice with the user if he just tries to launch the tool
                self.parser.print_help()
                return 1
            else:
                self.parser.error("Wrong number of arguments")

        if opts.keyring_backend is not None:
            try:
                backend = keyring.core.load_keyring(opts.keyring_path,
                                                    opts.keyring_backend)
                keyring.set_keyring(backend)
            except Exception, e:
                # Tons of things can go wrong here:
                #   ImportError when using "fjkljfljkl"
                #   AttributeError when using "os.path.bar"
                #   TypeError when using "__builtins__.str"
                # So, we play on the safe side, and catch everything.
                self.parser.error("Unable to load specified keyring: %s" % e)
示例#4
0
    def test_uncrypted_keyring_migration_add(self):
        '''Test UncryptedFileKeyring Migration by adding'''

        self._create_old_keyrings()
        keyring.set_keyring(keyring.backend.UncryptedFileKeyring())
        self._password_test()
        self._check_file_permissions(self.uncrypted)
def main():
    parser = \
        argparse.ArgumentParser(description='Store a secret in local keychain')

    parser.add_argument('--backend',
                        type=str,
                        nargs='?',
                        help='Keyring backend to use')
    parser.add_argument('service',
                        type=str,
                        help='service to log into (e.g., URL)')
    parser.add_argument('username', type=str, help='Username to use')

    args = parser.parse_args()
    service: str = args.service
    username: str = args.username
    backend: str = args.backend

    if sys.stdin.isatty():
        password: str = input('Password: ')
    else:
        password = input()

    if backend is not None:
        keyring.set_keyring(core.load_keyring(backend))
    keyring.set_password(service, username, password)
示例#6
0
def check_keyring_support():
	"""
	Check if the UserNamePassword class can be used,
	else raise ImportError with an explanatory error message.
	"""
	global keyring
	# if gnomekeyring exists, block kde libraries
	old_pykde4 = sys.modules.get('PyKDE4')
	try:
		import gnomekeyring
	except ImportError:
		pass
	else:
		sys.modules['PyKDE4'] = None
	try:
		import keyring
	except ImportError:
		global UserNamePassword
		class UserNamePassword (object):
			pass
		raise
	else:
		# Configure the fallback keyring's configuration file if used
		import keyring.backend
		kr = keyring.get_keyring()
		if hasattr(kr, "crypted_password"):
			keyring.set_keyring(keyring.backend.UncryptedFileKeyring())
			kr = keyring.get_keyring()
		if hasattr(kr, "file_path"):
			kr.file_path = config.save_config_file("keyring.cfg")
	finally:
		# now unblock kde libraries again
		if old_pykde4:
			sys.modules['PyKDE4'] = old_pykde4
def keyring_backend():
    """Temporary set in-memory keyring as current backend."""

    prev_backend = keyring.get_keyring()
    keyring.set_keyring(_InmemoryKeyring())
    yield keyring.get_keyring()
    keyring.set_keyring(prev_backend)
示例#8
0
def set_keyring_in_runtime():
    """This function shows how to create a keyring manully and use it
    in runtime
    """

    # define a new keyring class which extends the KeyringBackend
    import keyring.backend

    class TestKeyring(keyring.backend.KeyringBackend):
        """A test keyring which always outputs same password
        """
        def supported(self):
            return 0

        def set_password(self, servicename, username, password):
            return 0

        def get_password(self, servicename, username):
            return "password from TestKeyring"

    # set the keyring for keyring lib
    import keyring
    keyring.set_keyring(TestKeyring())

    # invoke the keyring lib
    try:
        keyring.set_password("demo-service", "tarek", "passexample")
        print "password stored sucessfully"
    except keyring.backend.PasswordSetError:
        print "failed to store password"
    print "password", keyring.get_password("demo-service", "tarek")
示例#9
0
    def setUp(self, autoload_discovery=True):
        yield super(TestAsServer, self).setUp(annotate=False)
        self.setUpPreSession()

        # We don't use the system keychain but a PlainText keyring for performance during tests
        for new_keyring in keyring.backend.get_all_keyring():
            if isinstance(new_keyring, PlaintextKeyring):
                keyring.set_keyring(new_keyring)

        self.quitting = False
        self.seeding_deferred = Deferred()
        self.seeder_session = None
        self.seed_config = None

        self.session = Session(self.config)
        self.session.upgrader_enabled = False

        self.tribler_started_deferred = self.session.start()
        yield self.tribler_started_deferred

        self.assertTrue(self.session.lm.initComplete)

        self.hisport = self.session.config.get_libtorrent_port()

        self.annotate(self._testMethodName, start=True)
def main():
    parser: ArgumentParser =\
        ArgumentParser(description='Retrieve a secret in local keychain')

    parser.add_argument('--backend',
                        type=str,
                        nargs='?',
                        help='Keyring backend to use')
    parser.add_argument('service',
                        type=str,
                        help='service to log into (e.g., URL)')
    parser.add_argument('username', type=str, help='Username to use')

    args: Namespace = parser.parse_args()
    service: str = args.service
    username: str = args.username
    backend: str = args.backend

    if backend is not None:
        keyring.set_keyring(core.load_keyring(backend))
    password: str = keyring.get_password(service, username)
    if password is None:
        exit(1)
    else:
        print(password)
示例#11
0
 def instantiate(cls):
     keyring.set_keyring(keyring.backend.CryptedFileKeyring())
     if cls.keyring_password is not None:
         return
     cls.load_keyring_password()
     if cls.keyring_password is None:
         cls.prompt_keyring_password()
    def __init__(self, name, config):
        self.name = name
        self._config = config

        # The pycrypto encrypted keyring asks for a password in every launch
        # if isinstance(keyring.get_keyring(), keyrings.alt.file.EncryptedKeyring):
        keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())
示例#13
0
def set_keyring_in_runtime():
    """This function shows how to create a keyring manully and use it
    in runtime
    """

    # define a new keyring class which extends the KeyringBackend
    import keyring.backend
    class TestKeyring(keyring.backend.KeyringBackend):
        """A test keyring which always outputs same password
        """
        def supported(self): return 0
        def set_password(self, servicename, username, password): return 0
        def get_password(self, servicename, username):
            return "password from TestKeyring"

    # set the keyring for keyring lib
    import keyring
    keyring.set_keyring(TestKeyring())

    # invoke the keyring lib
    try:
        keyring.set_password("demo-service", "tarek", "passexample")
        print "password stored sucessfully"
    except keyring.backend.PasswordSetError:
        print "failed to store password"
    print "password", keyring.get_password("demo-service", "tarek")
    def setUp(self):
        if keyring is None:
            self.skipTest(
                'optional package keyring or pickle is not installed')

        class MemoryKeyring(keyring.backend.KeyringBackend):
            """Simple memory keyring with support for multiple keys."""
            def __init__(self):
                self.passwords = {}

            def supported(self):
                return 1

            def get_password(self, service, username):
                key = username + '@' + service
                if key not in self.passwords:
                    return None
                return self.passwords[key]

            def set_password(self, service, username, password):
                key = username + '@' + service
                self.passwords[key] = password

        super(KeyringTest, self).setUp()
        keyring.set_keyring(MemoryKeyring())
示例#15
0
def keyring_backend():
    saved_backend = keyring.get_keyring()
    try:
        keyring.set_keyring(MockKeyringBackend())
        yield
    finally:
        keyring.set_keyring(saved_backend)
示例#16
0
文件: cli.py 项目: develersrl/pyuac
    def run(self, argv):
        opts, args = self.parser.parse_args(argv)

        try:
            kind, service, username = args
        except ValueError:
            if len(args) == 0:
                # Be nice with the user if he just tries to launch the tool
                self.parser.print_help()
                return 1
            else:
                self.parser.error("Wrong number of arguments")

        if opts.keyring_backend is not None:
            try:
                backend = keyring.core.load_keyring(opts.keyring_path,
                                                    opts.keyring_backend)
                keyring.set_keyring(backend)
            except Exception, e:
                # Tons of things can go wrong here:
                #   ImportError when using "fjkljfljkl"
                #   AttributeError when using "os.path.bar"
                #   TypeError when using "__builtins__.str"
                # So, we play on the safe side, and catch everything.
                self.parser.error("Unable to load specified keyring: %s" % e)
    def setUp(self):
        if keyring is None:
            self.skipTest(
                'optional package keyring or pickle is not installed')

        class MemoryKeyring(keyring.backend.KeyringBackend):
            """Simple memory keyring with support for multiple keys"""
            def __init__(self):
                self.passwords = {}

            def supported(self):
                return 1

            def get_password(self, service, username):
                key = username + '@' + service
                if key not in self.passwords:
                    return None
                return self.passwords[key]

            def set_password(self, service, username, password):
                key = username + '@' + service
                self.passwords[key] = password

        super(KeyringTest, self).setUp()
        keyring.set_keyring(MemoryKeyring())
示例#18
0
def main(argv=None):
    """Main command line interface."""

    parser = optparse.OptionParser(usage="%prog [get|set] SERVICE USERNAME")
    parser.add_option("-p", "--keyring-path", dest="keyring_path", default=None,
                      help="Path to the keyring backend")
    parser.add_option("-b", "--keyring-backend", dest="keyring_backend", default=None,
                      help="Name of the keyring backend")

    if argv is None:
        argv = sys.argv[1:]

    opts, args = parser.parse_args(argv)

    try:
        kind, service, username = args
    except ValueError:
        if len(args) == 0:
            # Be nice with the user if he just tries to launch the tool
            parser.print_help()
            return 1
        else:
            parser.error("Wrong number of arguments")

    if opts.keyring_backend is not None:
        try:
            backend = keyring.core.load_keyring(opts.keyring_path, opts.keyring_backend)
            keyring.set_keyring(backend)
        except Exception, e:
            # Tons of things can go wrong here:
            #   ImportError when using "fjkljfljkl"
            #   AttributeError when using "os.path.bar"
            #   TypeError when using "__builtins__.str"
            # So, we play on the safe side, and catch everything.
            parser.error("Unable to load specified keyring: %s" % e)
示例#19
0
文件: auth.py 项目: litters/shrew
def initialize_keychain():
    # NB: keyring has a config file, but it only allows a single keyring to be
    # selected, instead of reusing it's supported() method check against a list
    # of backend implementations to try.

    keyring_backends = []

    with load_config(sections=AUTH_SECTIONS, defaults=AUTH_CONFIG_DEFAULTS) as config:

        if config.get(KEYCHAIN_SECTION, 'crypted-keychain.enable'):
            keyring_backends.insert(0, CryptedFileKeyring())

        if config.get(KEYCHAIN_SECTION, 'kde-keychain.enable'):
            keyring_backends.insert(0, KDEKWallet())

        if config.get(KEYCHAIN_SECTION, 'gnome-keychain.enable'):
            keyring_backends.insert(0, GnomeKeyring())

    keyring_backends.insert(0, FixedOSXKeychain())
    keyring_backends.sort(key=lambda x: -x.supported())

    keyring.set_keyring(keyring_backends[0])

    # Return True if there are any supported keychains.
    return not all(i.supported() == -1 for i in keyring_backends)
示例#20
0
def add_credentials(user, password, hostname, account_name,
                    account_password, verbose=False):
    '''
    Add a new Inventory item
    '''
    c = CallipygeBackend(user, verbose)
    keyring.set_keyring(c)
    c.set_password(account_name, account_password)
示例#21
0
 def _load_backend(self):
     try:
         keyring_backend = keyring.core.load_keyring(self._backend_cls_name)
     except ModuleNotFoundError:
         msg = "Invalid credentials_mgr_class: {}".format(
             self._backend_cls_name)
         raise oscerr.ConfigError(msg, conf.config['conffile'])
     keyring.set_keyring(keyring_backend)
示例#22
0
def mock_chainer_backend(mocker):
    from keyring.backends.fail import Keyring

    mocker.patch("keyring.backend.get_all_keyring", [Keyring()])
    import keyring
    from keyring.backends.chainer import ChainerBackend

    keyring.set_keyring(ChainerBackend())
示例#23
0
    def test_uncrypted_keyring_migration_get(self):
        '''Test UncryptedFileKeyring Migration by getting'''

        self._create_old_keyrings()
        keyring.set_keyring(keyring.backend.UncryptedFileKeyring())
        password = keyring.get_password('qrt-script', 'migrationuser')
        error = "Couldn't locate old data!"
        self.assertEquals(password, 'migrationpass', error)
        self._check_file_permissions(self.uncrypted)
示例#24
0
def keyring_credentials(ring=_KEYRING):
    '''Looks up the user's credentials.'''
    if sys.platform.startswith('win'):
        keyring.set_keyring(WinVaultKeyring())
    if sys.platform.startswith('darwin'):
        keyring.set_keyring(Keyring())
    value = keyring.get_password(ring, getpass.getuser())
    if __debug__: log(f'got "{value}" from keyring {_KEYRING}')
    return _decoded(value) if value else (None, None)
示例#25
0
    def setUp(self):
        keyring.set_keyring(PlaintextKeyring())

        self.env = EnvironmentVarGuard()
        self.temp_file = tempfile.NamedTemporaryFile()

        test_path = os.path.dirname(os.path.realpath(__file__))
        self.env['XDG_DATA_HOME'] = test_path
        self.env['XDG_CONFIG_HOME'] = test_path
示例#26
0
def with_chained_null_keyring(mocker: MockerFixture) -> None:
    from keyring.backends.null import Keyring

    mocker.patch("keyring.backend.get_all_keyring", lambda: [Keyring()])
    import keyring

    from keyring.backends.chainer import ChainerBackend

    keyring.set_keyring(ChainerBackend())
示例#27
0
def with_chained_keyring(mocker: "MockerFixture") -> None:
    from keyring.backends.fail import Keyring

    mocker.patch("keyring.backend.get_all_keyring", [Keyring()])
    import keyring

    from keyring.backends.chainer import ChainerBackend

    keyring.set_keyring(ChainerBackend())
示例#28
0
	def _configure_keyring(cls):
		# Configure the fallback keyring's configuration file if used
		import keyring.backend
		kr = keyring.get_keyring()
		if hasattr(kr, "crypted_password"):
			keyring.set_keyring(keyring.backend.UncryptedFileKeyring())
			kr = keyring.get_keyring()
		if hasattr(kr, "file_path"):
			kr.file_path = config.save_config_file("keyring.cfg")
示例#29
0
    def setUp(self):
        keyring.set_keyring(PlaintextKeyring())

        self.env = EnvironmentVarGuard()
        self.temp_file = tempfile.NamedTemporaryFile()

        test_path = os.path.dirname(os.path.realpath(__file__))
        self.env['XDG_DATA_HOME'] = test_path
        self.env['XDG_CONFIG_HOME'] = test_path
示例#30
0
    def __init__(self):
        super(Wallet, self).__init__()
        self._logger = logging.getLogger(self.__class__.__name__)

        # We use an unencrypted keyring since an encrypted keyring requires input from stdin.
        if isinstance(keyring.get_keyring(), EncryptedKeyring):
            for new_keyring in keyring.backend.get_all_keyring():
                if isinstance(new_keyring, PlaintextKeyring):
                    keyring.set_keyring(new_keyring)
示例#31
0
def save_keyring_credentials(api_key, user_id, ring=_KEYRING):
    '''Saves the user's credentials.'''
    if sys.platform.startswith('win'):
        keyring.set_keyring(WinVaultKeyring())
    if sys.platform.startswith('darwin'):
        keyring.set_keyring(Keyring())
    value = _encoded(api_key, user_id)
    if __debug__: log(f'storing "{value}" to keyring {_KEYRING}')
    keyring.set_password(ring, getpass.getuser(), value)
示例#32
0
def main():
    keyring.set_keyring(EncryptedEnvKeyring())
    config = configparser.ConfigParser()
    config.read(os.path.join(os.path.dirname(__file__), 'config.ini'))
    mailboxes = [mailbox for mailbox in config.sections() if mailbox != 'global']
    for mailbox in mailboxes:
        username = config[mailbox]['username']
        mail_password = getpass.getpass(f"Please enter password for {username} @ {mailbox} mailbox: ")
        keyring.set_password(f"MailChecker-{mailbox}", username, mail_password)
示例#33
0
def save_keyring_credentials(service, user, pswd, host=None, port=None):
    '''Saves the user, password, host and port info for 'service'.'''
    user = user if user else ''
    pswd = pswd if pswd else ''
    host = host if host else ''
    port = port if port else ''
    if sys.platform.startswith('win'):
        keyring.set_keyring(WinVaultKeyring())
    keyring.set_password(service, 'credentials',
                         _encoded(user, pswd, host, port))
示例#34
0
    def test_crypted_keyring_migration_get(self):
        '''Test CryptedFileKeyring Migration by getting'''

        # This is LP: #1042754
        self._create_old_keyrings()
        keyring.set_keyring(StubbedCryptedFileKeyring())
        password = keyring.get_password('qrt-script', 'migrationuser')
        error = "Couldn't locate old data!"
        self.assertEquals(password, 'migrationpass', error)
        self._check_file_permissions(self.crypted)
示例#35
0
    def getKr(self):
        if os.name != 'nt':
            #logging.getLogger().exception("getlogger "+self.configfile)
            config = configparser.ConfigParser()
            config.read(self.configfile)
            sd = config.get("other", "startdate")
            pc = config.get("other", "postcode")

            kr = CryptFileKeyring()
            kr.keyring_key = pc + platform.node() + os.name + sd + "!djl!"
            keyring.set_keyring(kr)
示例#36
0
def keyring_credentials(service, user=None):
    '''Looks up the user's credentials for the given 'service' using the
    keyring/keychain facility on this computer.  If 'user' is None, this uses
    the fake user named "credentials".  The latter makes it possible to access a
    service with a different user login name than the user's current login
    name without having to ask the user for the alternative name every time.
    '''
    if sys.platform.startswith('win'):
        keyring.set_keyring(WinVaultKeyring())
    value = keyring.get_password(service, user if user else 'credentials')
    return _decoded(value) if value else (None, None, None, None)
示例#37
0
 def save_session(self, **save_session_kwargs):
     if self.SESSION_ARG_KEYNAME not in save_session_kwargs:
         raise ValueError(
             '"%s" must be specified in save_session() argument.' %
             self.SESSION_ARG_KEYNAME)
     data = base64.b64encode(
         zlib.compress(pickle.dumps(self,
                                    self.PICKLE_PROTOCOL))).decode('utf-8')
     keyring.set_keyring(PlaintextKeyring())
     keyring.set_password(self.KEYRING_SERVICE_NAME,
                          save_session_kwargs[self.SESSION_ARG_KEYNAME],
                          data)
示例#38
0
    def __init__(self):
        super(Wallet, self).__init__()
        self._logger = logging.getLogger(self.__class__.__name__)

        # When there is no available keyring backend, we use an unencrypted keyring on Linux since an encrypted keyring
        # requires input from stdin.
        if sys.platform.startswith('linux'):
            from keyrings.alt.file import EncryptedKeyring, PlaintextKeyring
            if isinstance(keyring.get_keyring(), EncryptedKeyring):
                for new_keyring in keyring.backend.get_all_keyring():
                    if isinstance(new_keyring, PlaintextKeyring):
                        keyring.set_keyring(new_keyring)
示例#39
0
 def __init__(self,
              force_keyring: keyring.backend.KeyringBackend = None) -> None:
     """
     Init KeyringTotpGenerator object.
     :param force_keyring: Keyring backend object to use. Defaults to
                           None and is auto selected.
     :type force_keyring: keyring.backend.KeyringBackend
     """
     self.user = getuser()
     if force_keyring:
         keyring.set_keyring(force_keyring)
     self.creds = self.load_creds()
示例#40
0
    def setUp(self):
        self.test_dir = tempfile.mkdtemp()
        self.path = os.path.join(self.test_dir, "conf1.json")
        self.config = ConfigFile(self.path)

        self.site = DummySite(self.config)
        self.engine = DummyEngine(self.site)

        self._initial_keyring = keyring.get_keyring()
        self.keyring = TestKeyring()
        keyring.set_keyring(self.keyring)

        self.credentials_manager = AWSCredentialsManager(self.engine)
示例#41
0
    def run(self, argv):
        opts, args = self.parser.parse_args(argv)

        try:
            kind, service, username = args
        except ValueError:
            if len(args) == 0:
                # Be nice with the user if he just tries to launch the tool
                self.parser.print_help()
                return 1
            else:
                self.parser.error("Wrong number of arguments")

        if opts.keyring_backend is not None:
            try:
                backend = keyring.core.load_keyring(opts.keyring_path,
                                                    opts.keyring_backend)
                keyring.set_keyring(backend)
            except (Exception,):
                # Tons of things can go wrong here:
                #   ImportError when using "fjkljfljkl"
                #   AttributeError when using "os.path.bar"
                #   TypeError when using "__builtins__.str"
                # So, we play on the safe side, and catch everything.
                e = sys.exc_info()[1]
                self.parser.error("Unable to load specified keyring: %s" % e)

        if kind == 'get':
            password = keyring.get_password(service, username)
            if password is None:
                return 1

            self.output_password(password)
            return 0

        elif kind == 'set':
            password = self.input_password("Password for '%s' in '%s': " %
                                           (username, service))
            keyring.set_password(service, username, password)
            return 0

        elif kind == 'del':
            password = self.input_password("Deleting password for '%s' in '%s': " %
                                      (username, service))
            keyring.delete_password(service, username)
            return 0

        else:
            self.parser.error("You can only 'get', 'del' or 'set' a password.")
            pass
示例#42
0
def main():
    """
    Prompts for username, service name and password and generates a new encrypted keyring.
    """
    keyring.set_keyring(keyring.backend.CryptedFileKeyring())

    username = raw_input("Username: "******"Service name: ")
    password = getpass.getpass("Password: "******"Password (again): ")

    assert password == verify_password

    keyring.set_password(service_name, username, password)
示例#43
0
    def __init__(self):
        log_handler = logging.FileHandler("nikeplus_harvester.log", "a")
        log_handler.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(name)s\t%(levelname)s\t%(asctime)s\t%(message)s')
        log_handler.setFormatter(formatter)
        self.logger = logging.getLogger() 
        self.logger.setLevel(logging.DEBUG)
        for handler in self.logger.handlers: 
            self.logger.removeHandler(handler)
        self.logger.addHandler(log_handler)
    
        data_root = keyring.util.platform_.data_root()
        if not os.path.exists(data_root):
            os.mkdir(data_root)
        keyring.set_keyring(PlaintextKeyring())

        self.parser = argparse.ArgumentParser(prog="run")
        self.parser.add_argument('--config', help="Set config (input requires JSON) and exit.")
        self.parser.add_argument('--get-config', action="store_true", help="Output current config as JSON and exit.")
        self.parser.add_argument('--server', help="The server URL to connect to.")

        self.nike = NikePlus()

        self.box_version = 0

        self.harvester_id = "nikeplus_harvester"
        self.fuel_ts_id = "nikeplus_fuel_ts"
        self.calories_ts_id = "nikeplus_calories_ts"
        self.steps_ts_id = "nikeplus_steps_ts"
        self.stars_ts_id = "nikeplus_stars_ts"
        self.ts_ids_by_type = {'FUEL':self.fuel_ts_id, 'CALORIES':self.calories_ts_id, 'STEPS':self.steps_ts_id, 'STARS':self.stars_ts_id }
        self.ts_count = 0
        self.ts_error = None

        self.rdf_types = {
            'FUEL':'http://sociam.org/ontology/health/NikeFuel',
            'CALORIES':'http://sociam.org/ontology/health/CaloriesBurned',
            'STEPS':'http://sociam.org/ontology/health/StepCount',
            'STARS':'http://sociam.org/ontology/health/Intensity'
        }

        self.zeros = self.today()
        self.new_zeros = self.today()
        self.retrieved = self.today()
        self.config_box = None
        self.config_indx_user = None
        self.config_indx_pass = None
        self.config_max_date = datetime(2013, 7, 1)
    def __init__(self, database, cache_dir='cache'):
        # Fix the keyring
        # TODO this is unsafe but makes the tests pass
        if keyring.get_keyring().__class__.__name__ == "EncryptedKeyring":
            for new_keyring in keyring.backend.get_all_keyring():
                if new_keyring.__class__.__name__ == "PlaintextKeyring":
                    keyring.set_keyring(new_keyring)

        self.database = database
        self.input_handler = None
        self.entered_inputs = {}  # Keeps track of all entered inputs
        self.cookie_jar = LWPCookieJar()
        self.cache_dir = cache_dir
        self.persistent_storage = {}
        self._logger = logging.getLogger(self.__class__.__name__)
        self.load_storage()
示例#45
0
    def __init__(self):
        log_handler = logging.FileHandler("fitbit_harvester.log", "a")
        log_handler.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(name)s\t%(levelname)s\t%(asctime)s\t%(message)s')
        log_handler.setFormatter(formatter)
        self.logger = logging.getLogger() 
        self.logger.setLevel(logging.DEBUG)
        for handler in self.logger.handlers: # remove default handler
            self.logger.removeHandler(handler)
        self.logger.addHandler(log_handler)
    
        data_root = keyring.util.platform_.data_root()
        if not os.path.exists(data_root):
            os.mkdir(data_root)
        keyring.set_keyring(PlaintextKeyring())

        self.parser = argparse.ArgumentParser(prog="run")
        self.parser.add_argument('--config', help="Set config (input requires JSON) and exit.")
        self.parser.add_argument('--get-config', action="store_true", help="Output current config as JSON and exit.")
        self.parser.add_argument('--server', help="The server URL to connect to.")

        # init fitbit
        consumer_key = "9cc7928d03fa4e1a92eda0d01ede2297"
        consumer_secret = "340ea36a974e47738a335c0cccfe1fcf"
        self.fitbit = Fitbit(consumer_key, consumer_secret)
        self.fitbit_intraday = None

        self.box_version = 0

        self.config_overwrite = False;
        self.config_start = self.today()
        self.config_box = None
        self.config_indx_user = None
        self.config_indx_pass = None
        self.config_fetched_days = []
        self.config_zeros_from = self.today()

        self.harvester_id = "fitbit_harvester"
        self.steps_ts_id = "fitbit_steps_ts"
        self.calories_ts_id = "fitbit_calories_ts"
        self.distance_ts_id = "fitbit_distance_ts"
        self.floors_ts_id = "fitbit_floors_ts"
        self.elevation_ts_id = "fitbit_elevation_ts"

        self.ts_count = 0
        self.ts_error = None
示例#46
0
def get_binstar(args=None):
    from binstar_client import Binstar

    if args and args.token:
        token = args.token
    else:
        config = get_config()
        
        if config.get('keyring', 'plain-text') == 'plain-text':
            set_keyring(PlaintextKeyring())

        kr = get_keyring()
        token = kr.get_password('binstar-token', getpass.getuser())

    url = get_config().get('url', 'https://api.binstar.org')


    return Binstar(token, domain=url,)
示例#47
0
    def setUp(self):
        if keyring is None:
            self.skipTest(
                'optional package keyring or pickle is not installed')

        class MemoryKeyring(keyring.backend.KeyringBackend):
            """A Simple testing keyring.

            This class supports stubbing an initial password to be returned by
            setting password, and allows easy password and key retrieval. Also
            records if a password was retrieved.
            """

            def __init__(self):
                self.key = None
                self.password = None
                self.fetched = False
                self.get_password_called = False
                self.set_password_called = False

            def supported(self):
                return 1

            def get_password(self, service, username):
                self.get_password_called = True
                key = username + '@' + service
                # make sure we don't get passwords crossed if one is enforced.
                if self.key and self.key != key:
                    return None
                if self.password:
                    self.fetched = True
                return self.password

            def set_password(self, service, username, password):
                self.set_password_called = True
                self.key = username + '@' + service
                self.password = password

        super(KeyringTest, self).setUp()
        self.memory_keyring = MemoryKeyring()
        keyring.set_keyring(self.memory_keyring)
示例#48
0
  def __init__(self):
    # consoleCfg = logging.StreamHandler()
    # consoleCfg.setFormatter(logging.Formatter( ' %(message)s' , '%H:%M:%S'))
    # logging.getLogger().addHandler(consoleCfg)
    # logging.getLogger().setLevel(logging.DEBUG)

    rc = airrc.AirRC()

    if not rc.get('you')['login']:
      console.error('You must provide your github login to be able to use most of the API')

    uname = rc.get('you')['login'];

    if System.OS == 'Darwin':
      keyring.set_keyring(OSXPatchedKeyring())

    pwd = keyring.get_password('github.com', uname)
    if not pwd:
      console.fail('Unauthorized to access passwords, or no password found for that user in the internet keyring')

    # API requestor
    self.requestor = Requestor(uname, pwd)
示例#49
0
    def __identify_keyring(self):
        # identify the system
        if sys.platform == 'linux':
            kwallet = None
            gnome_keyring = None
            for __keyring in keyring.backend.get_all_keyring():
                if __keyring.name.find('kwallet') != -1:
                    kwallet = __keyring
                # This is gnome keyring
                elif __keyring.name.find('SecretService') != -1:
                    gnome_keyring = __keyring

            if kwallet != None:
                keyring.set_keyring(kwallet)
                self.__keyring = kwallet
            elif gnome_keyring != None:
                keyring.set_keyring(gnome_keyring)
                self.__keyring = gnome_keyring
            else:
                print("Unsupported keyring", file=sys.stderr)
        else:
            print("Unsupported keyring", file=sys.stderr)
示例#50
0
def initKeystore(options):
    u = []
    s = ''
    if options.keystore == 'memory':
        log.debug('Setting keystore to in-memory')
        keyring.set_keyring(memkeyring.MemKeyring())

        for user in (options.sshuser, options.ldapuser, options.ipmiuser):
            if user is not None:
                u.append(user)

        s = 'These credentials will be stored in memory only.'
    else:
        if options.sshuser is not None and getPassword(options.sshuser) is None:
            u.append(options.sshuser)
        if options.ldapuser is not None and getPassword(options.ldapuser) is None:
            u.append(options.ldapuser)
        if options.ipmiuser is not None and getPassword(options.ipmiuser) is None:
            u.append(options.ipmiuser)

        s = 'These credentials will be stored in your OS keystore.'

    if options.secrets is not None and os.path.isfile(options.secrets):
        secrets = json.load(open(options.secrets, 'r'))
        for user in secrets:
            setPassword(user, secrets[user])
            if user in u:
                u.remove(user)

    if len(u) > 0:
        print _keystoreSpeech % s

        for user in u:
            pw = getpass.getpass('password for %s:\n' % user)
            if len(pw) > 0:
                setPassword(user, pw)
示例#51
0
文件: core.py 项目: MinchinWeb/jrnl
from behave import *
from jrnl import cli, Journal, util
from dateutil import parser as date_parser
import os
import codecs
import json
import keyring
import keyrings
keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())
try:
    from io import StringIO
except ImportError:
    from cStringIO import StringIO
import tzlocal

def _parse_args(command):
    nargs=[]
    concats = []
    for a in command.split()[1:]:
        if a.startswith("'"):
            concats.append(a.strip("'"))
        elif a.endswith("'"):
            concats.append(a.strip("'"))
            nargs.append(u" ".join(concats))
            concats = []
        else:
            nargs.append(a)
    return nargs

def read_journal(journal_name="default"):
    with open(cli.CONFIG_PATH) as config_file:
示例#52
0
"""
import glob
import os
import sys
import tempfile
import unittest
from vsc.utils import fancylogger

# initialize EasyBuild logging, so we disable it
from easybuild.tools.build_log import EasyBuildError
from easybuild.tools.config import set_tmpdir

# set plain text key ring to be used, so a GitHub token stored in it can be obtained without having to provide a password
try:
    import keyring
    keyring.set_keyring(keyring.backends.file.PlaintextKeyring())
except ImportError:
    pass

# disable all logging to significantly speed up tests
fancylogger.disableDefaultHandlers()
fancylogger.setLogLevelError()

# toolkit should be first to allow hacks to work
import test.framework.asyncprocess as a
import test.framework.config as c
import test.framework.easyblock as b
import test.framework.easyconfig as e
import test.framework.easyconfigparser as ep
import test.framework.easyconfigformat as ef
import test.framework.ebconfigobj as ebco
示例#53
0
文件: hello.py 项目: joac/joac-python
from base64 import b64decode
import os
import keyring

f = open(os.path.expanduser("~/ralsina_ring.cfg"), "w+")
f.write(
    b64decode(
        "W2tleXJpbmctc2V0dGluZ10KY3J5cHRlZC1wYXNzd29yZCA9IGNhdlB5OHpEaXJqVlEKW3B5YXJdCnJhbHNpbmEgPSBZUCtHQThsaC9VTUtnQzFEZC93PQo="
    )
)
f.close()


class Inofensivo(keyring.backend.CryptedFileKeyring):
    def filename(self):
        return "ralsina_ring.cfg"


keyring.set_keyring(Inofensivo())
print keyring.get_password("pyar", "ralsina")
os.unlink(os.path.expanduser("~/ralsina_ring.cfg"))
示例#54
0
文件: run.py 项目: allmende/indx
def init():
    # some platforms have no data root. we can take care of them now.
    data_root = keyring.util.platform_.data_root()
    if not os.path.exists(data_root):
        os.mkdir(data_root)
    keyring.set_keyring(PlaintextKeyring())
示例#55
0
 def tearDown(self):
     keyring.set_keyring(self._ring)
示例#56
0
def main():
    # The pycrypto encrypted keyring asks for a password in every launch. This is unacceptable.
    if isinstance(keyring.get_keyring(), keyring.backends.file.EncryptedKeyring):
        keyring.set_keyring(keyring.backends.file.PlaintextKeyring())
 def __init__(self, mgr):
    super(KeyringFetcher, self).__init__(mgr)
    backend = keyring.core.load_keyring(None, 'keyring.backend.%s' % "GnomeKeyring")
    keyring.set_keyring(backend)
示例#58
0
class TestKeyring(keyring.backend.KeyringBackend):
    """A test keyring which always outputs same password
    """
    priority = 1

    def set_password(self, servicename, username, password):
        self.password = password

    def get_password(self, servicename, username):
        return self.password

    def delete_password(self, servicename, username, password):
        self.password = ""

keyring.set_keyring(TestKeyring())

test_config_str = """
[node:default]
host=dummy
port=12345
username=tester

[query:test]
query=$other_arg template
from=$today $time
to=$now
"""


def test_config(monkeypatch, tmpdir):
示例#59
0
 def setUp(self):
     self._ring = keyring.get_keyring()
     keyring.set_keyring(Keyring())
     self.cm = CredentialManager('Orange')