def authenticate(self, passw, user, options=None): """ do the authentication on base of password / otp and user and options, the request parameters. Here we contact the other LinOTP server to validate the OtpVal. :param passw: the password / otp :param user: the requesting user :param options: the additional request parameters :return: tupple of (success, otp_count - 0 or -1, reply) """ log.debug("authenticate") res = False otp_counter = -1 reply = None otpval = passw ## should we check the pin localy?? if self.check_pin_local(): (res, pin, otpval) = split_pin_otp(self, passw, user, options=options) res = TokenClass.checkPin(self, pin) if res is False: return (res, otp_counter, reply) (res, otp_count, reply) = self.do_request(otpval, user=user) return (res, otp_count, reply)
def checkPin(self, pin, options=None): """ check the pin - either remote or localy - in case of remote, we return true, as the the splitPinPass will put the passw then in the otpVal """ res = True # only, if pin should be checked localy if self.check_pin_local(): res = TokenClass.checkPin(self, pin) return res