def login(email, password=None, keeper_server='https://keepersecurity.com/api/v2/', config_file='myconfig.json'): if os.path.exists(config_file): params = get_params_from_config(config_file) else: params = KeeperParams() params.config_filename = config_file params.user = email params.password = password if password else '' params.server = keeper_server params.config['server'] = params.server api.login(params) api.sync_down(params) return params
def get_params(config_filename): params = KeeperParams() params.config_filename = 'config.json' if config_filename: params.config_filename = config_filename try: with open(params.config_filename) as config_file: try: params.config = json.load(config_file) if 'user' in params.config: params.user = params.config['user'] if 'server' in params.config: params.server = params.config['server'] if 'password' in params.config: params.password = params.config['password'] if 'challenge' in params.config: try: import keepercommander.yubikey.yubikey challenge = params.config['challenge'] params.password = keepercommander.yubikey.yubikey.get_response(challenge) except Exception as e: print(e) sys.exit(1) if 'timedelay' in params.config: params.timedelay = params.config['timedelay'] if 'mfa_token' in params.config: params.mfa_token = params.config['mfa_token'] if 'mfa_type' in params.config: params.mfa_type = params.config['mfa_type'] if 'commands' in params.config: params.commands = params.config['commands'] if 'plugins' in params.config: params.plugins = params.config['plugins'] if 'debug' in params.config: params.debug = params.config['debug'] except: print('Error: Unable to parse JSON file ' + params.config_filename) raise except IOError: if config_filename: print('Error: Unable to open config file ' + config_filename) pass if not params.server: params.server = 'https://keeperapp.com/v2/' return params
def get_params_from_config(config_filename): params = KeeperParams() params.config_filename = 'config.json' if config_filename: params.config_filename = config_filename try: with open(params.config_filename) as config_file: try: params.config = json.load(config_file) if 'user' in params.config: params.user = params.config['user'] if 'server' in params.config: params.server = params.config['server'] if 'password' in params.config: params.password = params.config['password'] if 'challenge' in params.config: try: import keepercommander.yubikey.yubikey challenge = params.config['challenge'] params.password = keepercommander.yubikey.yubikey.get_response( challenge) except Exception as e: print(e) sys.exit(1) if 'timedelay' in params.config: params.timedelay = params.config['timedelay'] if 'mfa_token' in params.config: params.mfa_token = params.config['mfa_token'] if 'mfa_type' in params.config: params.mfa_type = params.config['mfa_type'] if 'commands' in params.config: params.commands = params.config['commands'] if 'plugins' in params.config: params.plugins = params.config['plugins'] if 'debug' in params.config: params.debug = params.config['debug'] except: print('Error: Unable to parse JSON file ' + params.config_filename) raise except IOError: if config_filename: print('Error: Unable to open config file ' + config_filename) pass if not params.server: params.server = 'https://keepersecurity.com/api/v2/' return params