Exemple #1
0
    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'))
Exemple #2
0
    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)