def __init__(self, args): arguments = ArgumentParser(prog="bna") arguments.add_argument("-u", "--update", action="store_true", dest="update", help="update token every time") arguments.add_argument("-n", "--new", action="store_true", dest="new", help="request a new authenticator") arguments.add_argument("-r", "--region", type=str, dest="region", default="US", help="desired region for new authenticators") arguments.add_argument( "--set-default", action="store_true", dest="setdefault", help= "set authenticator as default (also works when requesting a new authenticator)" ) arguments.add_argument("serial", nargs="?") args = arguments.parse_args(args) self.config = ConfigParser() self.config.read([os.path.join(self.getConfigDir(), "bna.conf")]) # Are we requesting a new authenticator? if args.new: self.queryNewAuthenticator(args) exit() if not args.serial: serial = self.getDefaultSerial() if serial is None: self.error("You must provide an authenticator serial") else: serial = args.serial serial = bna.normalizeSerial(serial) # Are we setting a serial as default? if args.setdefault: self.setDefaultSerial(serial) # Get the secret from the keyring secret = self.getSecret(serial) if secret is None: # No such serial self.error("%r: No such serial" % (serial)) # And print the token if args.update: self.runLive(secret) else: token, timeRemaining = bna.getToken(secret=unhexlify(secret)) print(token)
def queryNewAuthenticator(self, args): try: reply = bna.requestNewSerial(args.region) except bna.HTTPError as e: self.error("Could not connect: %s" % (e)) serial = bna.normalizeSerial(reply["serial"]) secret = hexlify(reply["secret"]) self.setSecret(serial, secret) # We set the serial as default if we don't have one set already # Otherwise, we check for --set-default if args.setdefault or not self.getDefaultSerial(): self.setDefaultSerial(serial) msg = "Success. Your new serial is: %s" % (reply["serial"]) print(msg)
def __init__(self, args): arguments = ArgumentParser(prog="bna") arguments.add_argument("-u", "--update", action="store_true", dest="update", help="update token every time") arguments.add_argument("-n", "--new", action="store_true", dest="new", help="request a new authenticator") arguments.add_argument("-r", "--region", type=str, dest="region", default="US", help="desired region for new authenticators") arguments.add_argument("--set-default", action="store_true", dest="setdefault", help="set authenticator as default (also works when requesting a new authenticator)") arguments.add_argument("serial", nargs="?") args = arguments.parse_args(args) self.config = ConfigParser() self.config.read([os.path.join(self.getConfigDir(), "bna.conf")]) # Are we requesting a new authenticator? if args.new: self.queryNewAuthenticator(args) exit() if not args.serial: serial = self.getDefaultSerial() if serial is None: self.error("You must provide an authenticator serial") else: serial = args.serial serial = bna.normalizeSerial(serial) # Are we setting a serial as default? if args.setdefault: self.setDefaultSerial(serial) # Get the secret from the keyring secret = self.getSecret(serial) if secret is None: # No such serial self.error("%r: No such serial" % (serial)) # And print the token if args.update: self.runLive(secret) else: token, timeRemaining = bna.getToken(secret=unhexlify(secret)) print(token)