pgTddlZddlmZddlmZddlmZmZmZGddZ dS)N) constant_time) InvalidToken)HOTP_ALLOWED_HASH_TYPES _generate_uric eZdZ ddededededejdef d Z d ej ee fd efd Z d ed ed dfdZ dedejed efdZdS)TOTPNTkeylength algorithm time_stepbackendenforce_key_lengthcD||_t|||||_dS)N)r) _time_stepr_hotp)selfr r r r rrs O/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/twofactor/totp.py__init__z TOTP.__init__s/$ 7I    timereturncdt||jz }|j|S)N)intrrgenerate)rrcounters rrz TOTP.generates,dT_,--z""7+++rtotpcttj|||stddS)Nz#Supplied TOTP value does not match.)rbytes_eqrr)rrrs rverifyz TOTP.verify#s?%dmmD&9&94@@ FDEE E F Fr account_nameissuerc \t|jd||dt|jfgS)Nrperiod)rrrr)rr!r"s rget_provisioning_urizTOTP.get_provisioning_uri's9 J   DO,, - .    r)NT)__name__ __module__ __qualname__bytesrrtypingAnyboolrUnionfloatrr strOptionalr%rrr r s##'       '      !     ,V\#u*5,%,,,,F5FFFFFF    )/)=         rr ) r*cryptography.hazmat.primitivesr(cryptography.hazmat.primitives.twofactorr-cryptography.hazmat.primitives.twofactor.hotprrrr r1rrr5s  888888AAAAAA           r