本文整理汇总了Python中privacyidea.lib.tokens.daplugtoken.DaplugTokenClass.authenticate方法的典型用法代码示例。如果您正苦于以下问题:Python DaplugTokenClass.authenticate方法的具体用法?Python DaplugTokenClass.authenticate怎么用?Python DaplugTokenClass.authenticate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类privacyidea.lib.tokens.daplugtoken.DaplugTokenClass
的用法示例。
在下文中一共展示了DaplugTokenClass.authenticate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_19_pin_otp_functions
# 需要导入模块: from privacyidea.lib.tokens.daplugtoken import DaplugTokenClass [as 别名]
# 或者: from privacyidea.lib.tokens.daplugtoken.DaplugTokenClass import authenticate [as 别名]
def test_19_pin_otp_functions(self):
db_token = Token.query.filter_by(serial=self.serial1).first()
db_token.set_pin("test")
token = DaplugTokenClass(db_token)
# check OTP according to RFC 4226
"""
Truncated
Count Hexadecimal Decimal HOTP
0 4c93cf18 1284755224 755224
1 41397eea 1094287082 287082
2 82fef30 137359152 359152
3 66ef7655 1726969429 969429
4 61c5938a 1640338314 338314
5 33c083d4 868254676 254676
6 7256c032 1918287922 287922
7 4e5b397 82162583 162583
8 2823443f 673399871 399871
9 2679dc69 645520489 520489
"""
token.update({"otpkey": self.otpkey})
self.assertTrue(db_token.otplen == 6, 6)
set_prepend_pin()
res, pin, otp = token.split_pin_pass("test" + _digi2daplug("123456"))
self.assertTrue(pin == "test", pin)
self.assertTrue(otp == _digi2daplug("123456"), otp)
self.assertTrue(token.check_pin(pin), pin)
check = token.check_otp(_digi2daplug("755224"), counter=0, window=10)
self.assertTrue(check == 0, check)
self.assertTrue(token.check_otp(_digi2daplug("287082"), counter=1, window=10) == 1)
# The 6th counter:
self.assertTrue(token.check_otp(_digi2daplug("287922"), counter=2, window=10) == 6)
# The tokenclass itself saves the counter to the database
self.assertTrue(token.token.count == 7, token.token.count)
# successful authentication
res = token.authenticate("test" + _digi2daplug("399871"))
# This is the OTP value of the counter=8
self.assertTrue(res == (True, 8, None), res)
token.set_otp_count(0)
# get the OTP value for counter 0
res = token.get_otp()
self.assertTrue(res[0] == 1, res)
self.assertTrue(res[1] == -1, res)
self.assertTrue(res[2] == _digi2daplug("755224"), res)
res = token.get_multi_otp()
self.assertTrue(res[0] is False, res)
token.update({"otpkey": self.otpkey, "otplen": 6})
token.token.count = 0
res = token.get_multi_otp(count=5)
self.assertTrue(res[0], res)
self.assertTrue(res[1] == "OK", res)
self.assertTrue(res[2].get("otp").get(1) == _digi2daplug("287082"), res[2])
self.assertTrue(res[2].get("type") == "daplug", res)
# do some failing otp checks
token.token.otplen = "invalid otp counter"
self.assertRaises(Exception, token.check_otp, _digi2daplug("123456"))
token.token.otplen = 0