def __init__(self, cfg=None, uid="", tid="", txn=""): """ Constructor of AuthData (see source for more details). cfg: Config object (see fixtures/auth.cfg example) (default: None) uid: uid of the requestor (default="") tid: terminal id (default: "public") txn: transaction id (default: "") """ self._cfg = cfg if (cfg.common.mode == 'testing'): self._x509_cert = cfg.common.public_cert else: self._x509_cert = cfg.common.uid_cert_path if (tid == None or tid == ""): self._tid = cfg.common.tid else: self._tid = tid self._ver = self._cfg.common.ver if (uid == None or uid == ""): self._uid = self._cfg.request.uid else: self._uid = uid self._txn = txn # => internal state. XXX reduce this space self._pidxml = None self._pidxml_biometrics = None self._pidxml_demographics = None self._demo_hash = None self._session_key = None #=> Session key self._skey = {'_ci': None, '_text': None} #token e.g., mobile number, NFC self._token = {'_type': "", '_num': ""} self._uses = { '_otp': "n", '_pin': "n", '_bio': "n", '_pfa': "n", '_pi': "n", '_pa': "n", '_bt': "FMR", } self._hmac = "" self._data = "" self._meta = { '_idc': "", '_apc': "", '_fdc': "", } self._locn = { '_lat': "", '_lng': "", '_vtc': "", '_subdist': "", '_dist': "", '_state': "", '_pc': "" } self._result = { '_request_client_xml': None, } self._stats = {} self._checker = AuthValidate( cfg=self._cfg, request_xsd=self._cfg.common.request_xsd, testing=(self._cfg.common.mode == 'testing'))
logging.getLogger().setLevel(cfg.common.loglevel) log.info("Starting auth data") if cfg.request.command == "generate": # => Generate the XML file data = AuthData(cfg=cfg) data.generate_client_xml() log.debug("Exported data : " + \ json.loads(data.export_request_data()).__str__()) elif (cfg.request.command == "validate"): checker = AuthValidate(cfg=cfg, request_xsd=cfg.common.request_xsd, testing=True) # Validate the signed file tmpfp_signed = cfg.request.signedxml res = checker.validate(tmpfp_signed, is_file=True, signed=True) log.debug("Validated XML generated with result = %s " % res) elif (cfg.request.command == "extract"): checker = AuthValidate(cfg=cfg, request_xsd=cfg.common.request_xsd, testing=True) # Now extract the contents res = checker.extract(xml=cfg.request.xml, is_file=True, key=cfg.common.private_key)