def update(self, param, reset_failcount=True): """ update - process initialization parameters :param param: dict of initialization parameters :type param: dict :return: nothing """ if self.hKeyRequired is True: genkey = is_true(getParam(param, "genkey", optional)) if not param.get('keysize'): param['keysize'] = 16 if genkey: otpKey = generate_otpkey(param['keysize']) del param['genkey'] else: # genkey not set: check otpkey is given # this will raise an exception if otpkey is not present otpKey = getParam(param, "otpkey", required) param['otpkey'] = otpKey # motp token specific mOTPPin = getParam(param, "motppin", required) self.token.set_user_pin(mOTPPin) TokenClass.update(self, param, reset_failcount) return
def update(self, param, reset_failcount=True): """ update - process initialization parameters :param param: dict of initialization parameters :type param: dict :return: nothing """ if self.hKeyRequired is True: genkey = int(getParam(param, "genkey", optional) or 0) if not param.get('keysize'): param['keysize'] = 16 if 1 == genkey: otpKey = generate_otpkey(param['keysize']) del param['genkey'] else: # genkey not set: check otpkey is given # this will raise an exception if otpkey is not present otpKey = getParam(param, "otpkey", required) param['otpkey'] = otpKey # motp token specific mOTPPin = getParam(param, "motppin", required) self.token.set_user_pin(mOTPPin) TokenClass.update(self, param, reset_failcount) return
def update(self, param, reset_failcount=True): """ process the initialization parameters Do we really always need an otpkey? the otpKey is handled in the parent class :param param: dict of initialization parameters :type param: dict :return: nothing """ # In case am Immutable MultiDict: upd_param = {} for k, v in param.items(): upd_param[k] = v val = getParam(upd_param, "hashlib", optional) if val is not None: hashlibStr = val else: hashlibStr = 'sha1' # check if the key_size id provided # if not, we could derive it from the hashlib key_size = getParam(upd_param, 'key_size', optional) if key_size is None: upd_param['key_size'] = keylen.get(hashlibStr) otpKey = '' if self.hKeyRequired is True: genkey = int(getParam(upd_param, "genkey", optional) or 0) if 1 == genkey: # if hashlibStr not in keylen dict, this will # raise an Exception otpKey = generate_otpkey(upd_param['key_size']) del upd_param['genkey'] else: # genkey not set: check otpkey is given # this will raise an exception if otpkey is not present otpKey = getParam(upd_param, "otpkey", required) # finally set the values for the update upd_param['otpkey'] = otpKey upd_param['hashlib'] = hashlibStr self.add_tokeninfo("hashlib", hashlibStr) val = getParam(upd_param, "otplen", optional) if val is not None: self.set_otplen(int(val)) else: self.set_otplen(get_from_config("DefaultOtpLen", 6)) TokenClass.update(self, upd_param, reset_failcount)
def get_init_detail(self, params=None, user=None): """ At the end of the initialization we return the URL for the TiQR App. """ response_detail = TokenClass.get_init_detail(self, params, user) params = params or {} enroll_url = get_from_config("tiqr.regServer") log.info("using tiqr.regServer for enrollment: %s" % enroll_url) serial = self.token.serial session = generate_otpkey() # save the session in the token self.add_tokeninfo("session", session) tiqrenroll = "tiqrenroll://%s?action=%s&session=%s&serial=%s" % ( enroll_url, API_ACTIONS.METADATA, session, serial) response_detail["tiqrenroll"] = { "description": _("URL for TiQR " "enrollment"), "value": tiqrenroll, "img": create_img(tiqrenroll, width=250) } return response_detail
def get_init_detail(self, params=None, user=None): """ At the end of the initialization we return the URL for the TiQR App. """ response_detail = TokenClass.get_init_detail(self, params, user) params = params or {} enroll_url = get_from_config("tiqr.regServer") log.info("using tiqr.regServer for enrollment: {0!s}".format(enroll_url)) serial = self.token.serial session = generate_otpkey() # save the session in the token self.add_tokeninfo("session", session) tiqrenroll = "tiqrenroll://{0!s}?action={1!s}&session={2!s}&serial={3!s}".format( enroll_url, API_ACTIONS.METADATA, session, serial) response_detail["tiqrenroll"] = {"description": _("URL for TiQR " "enrollment"), "value": tiqrenroll, "img": create_img(tiqrenroll, width=250)} return response_detail