o -&%a¯ã@s4ddlmZddlmZmZmZGdd„deƒZdS)é)Úutils)ÚAlreadyFinalizedÚUnsupportedAlgorithmÚ_Reasonsc @s„eZdZdefdd„Zdeddfdd„Zdefd d „Zd eddfd d „Zedededefdd„ƒZ ededed eddfdd„ƒZ dS)ÚPoly1305ÚkeycCs0ddlm}| ¡stdtjƒ‚| |¡|_dS)Nr)Úbackendz5poly1305 is not supported by this version of OpenSSL.)Ú,cryptography.hazmat.backends.openssl.backendrÚpoly1305_supportedrrÚUNSUPPORTED_MACÚcreate_poly1305_ctxÚ_ctx)Úselfrr©rúI/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/poly1305.pyÚ__init__s þzPoly1305.__init__ÚdataÚreturnNcCs.|jdur tdƒ‚t d|¡|j |¡dS)NúContext was already finalized.r)r rrÚ_check_byteslikeÚupdate)rrrrrrs  zPoly1305.updatecCs&|jdur tdƒ‚|j ¡}d|_|S)Nr)r rÚfinalize)rÚmacrrrrs  zPoly1305.finalizeÚtagcCs:t d|¡|jdurtdƒ‚|jd}|_| |¡dS)Nrr)rÚ _check_bytesr rÚverify)rrÚctxrrrr&s  zPoly1305.verifycCst|ƒ}| |¡| ¡S©N)rrr)ÚclsrrÚprrrÚ generate_tag.s zPoly1305.generate_tagcCs t|ƒ}| |¡| |¡dSr)rrr)rrrrrrrrÚ verify_tag4s zPoly1305.verify_tag) Ú__name__Ú __module__Ú __qualname__ÚbytesrrrrÚ classmethodr r!rrrrrs  rN)Ú cryptographyrÚcryptography.exceptionsrrrÚobjectrrrrrÚs