a °…b-ã@sFddlZddlmZddlmZmZmZddlmZGdd„dƒZ dS)éN)Úutils)ÚAlreadyFinalizedÚUnsupportedAlgorithmÚ_Reasons)Ú_Poly1305Contextc@s†eZdZUejeed<edœdd„Zeddœdd„Z ed œd d „Z edd œd d„Z e eeedœdd„ƒZ e eeeddœdd„ƒZdS)ÚPoly1305Ú_ctx)ÚkeycCs0ddlm}| ¡s tdtjƒ‚| |¡|_dS)Nr)Úbackendz5poly1305 is not supported by this version of OpenSSL.)Z,cryptography.hazmat.backends.openssl.backendr Zpoly1305_supportedrrZUNSUPPORTED_MACZcreate_poly1305_ctxr)Úselfr r ©r úN/tmp/pip-target-98j97qn4/lib/python/cryptography/hazmat/primitives/poly1305.pyÚ__init__s þzPoly1305.__init__N)ÚdataÚreturncCs.|jdurtdƒ‚t d|¡|j |¡dS)NúContext was already finalized.r)rrrZ_check_byteslikeÚupdate)r rr r r rs  zPoly1305.update)rcCs&|jdurtdƒ‚|j ¡}d|_|S)Nr)rrÚfinalize)r Úmacr r r r#s   zPoly1305.finalize)ÚtagrcCs:t d|¡|jdurtdƒ‚|jd}|_| |¡dS)Nrr)rÚ _check_bytesrrÚverify)r rÚctxr r r r*s   zPoly1305.verify)r rrcCst|ƒ}| |¡| ¡S©N)rrr)Úclsr rÚpr r r Ú generate_tag2s zPoly1305.generate_tag)r rrrcCs t|ƒ}| |¡| |¡dSr)rrr)rr rrrr r r Ú verify_tag8s zPoly1305.verify_tag)Ú__name__Ú __module__Ú __qualname__ÚtypingÚOptionalrÚ__annotations__ÚbytesrrrrÚ classmethodrrr r r r rs  r) r!Z cryptographyrZcryptography.exceptionsrrrZ-cryptography.hazmat.backends.openssl.poly1305rrr r r r Ús