U §Ãq`¯ã@s4ddlmZddlmZmZmZGdd„deƒZdS)é)Úutils)ÚAlreadyFinalizedÚUnsupportedAlgorithmÚ_Reasonsc@sveZdZedœdd„Zeddœdd„Zedœd d „Zedd œd d „Zeeeedœdd„ƒZ eeeeddœdd„ƒZ dS)ÚPoly1305)ÚkeycCs0ddlm}| ¡s tdtjƒ‚| |¡|_dS)Nr)Úbackendz5poly1305 is not supported by this version of OpenSSL.)Z,cryptography.hazmat.backends.openssl.backendrZpoly1305_supportedrrZUNSUPPORTED_MACZcreate_poly1305_ctxÚ_ctx)Úselfrr©r úN/tmp/pip-target-nv4zd3e_/lib/python/cryptography/hazmat/primitives/poly1305.pyÚ__init__s þzPoly1305.__init__N)ÚdataÚreturncCs.|jdkrtdƒ‚t d|¡|j |¡dS)NúContext was already finalized.r)r rrZ_check_byteslikeÚupdate)r rr r r rs  zPoly1305.update)rcCs&|jdkrtdƒ‚|j ¡}d|_|S)Nr)r rÚfinalize)r Úmacr r r rs   zPoly1305.finalize)ÚtagrcCs:t d|¡|jdkrtdƒ‚|jd}|_| |¡dS)Nrr)rÚ _check_bytesr rÚverify)r rÚctxr r r r&s   zPoly1305.verify)rrrcCst|ƒ}| |¡| ¡S©N)rrr)ÚclsrrÚpr r r Ú generate_tag.s zPoly1305.generate_tag)rrrrcCs t|ƒ}| |¡| |¡dSr)rrr)rrrrrr r r Ú verify_tag4s zPoly1305.verify_tag) Ú__name__Ú __module__Ú __qualname__Úbytesr rrrÚ classmethodrrr r r r rs rN)Z cryptographyrZcryptography.exceptionsrrrÚobjectrr r r r Ús