3 lá˜_�ã@sHddlmZmZmZddlmZddlmZmZm Z Gdd„de ƒZ dS)é)Úabsolute_importÚdivisionÚprint_function)Úutils)ÚAlreadyFinalizedÚUnsupportedAlgorithmÚ_Reasonsc@sDeZdZdd„Zdd„Zdd„Zdd„Zed d „ƒZed d „ƒZ d S)ÚPoly1305cCs0ddlm}|jƒs tdtjƒ‚|j|ƒ|_dS)Nr)Úbackendz5poly1305 is not supported by this version of OpenSSL.)Z,cryptography.hazmat.backends.openssl.backendr Zpoly1305_supportedrrZUNSUPPORTED_MACZcreate_poly1305_ctxÚ_ctx)ÚselfÚkeyr ©rú /usr/lib64/python3.6/poly1305.pyÚ__init__s  zPoly1305.__init__cCs.|jdkrtdƒ‚tjd|ƒ|jj|ƒdS)NzContext was already finalized.Údata)r rrZ_check_byteslikeÚupdate)r rrrrrs  zPoly1305.updatecCs&|jdkrtdƒ‚|jjƒ}d|_|S)NzContext was already finalized.)r rÚfinalize)r Zmacrrrr!s   zPoly1305.finalizecCs:tjd|ƒ|jdkrtdƒ‚|jd}|_|j|ƒdS)NÚtagzContext was already finalized.)rÚ _check_bytesr rÚverify)r rZctxrrrr(s   zPoly1305.verifycCst|ƒ}|j|ƒ|jƒS)N)r rr)Úclsr rÚprrrÚ generate_tag0s zPoly1305.generate_tagcCs t|ƒ}|j|ƒ|j|ƒdS)N)r rr)rr rrrrrrÚ verify_tag6s zPoly1305.verify_tagN) Ú__name__Ú __module__Ú __qualname__rrrrÚ classmethodrrrrrrr s   r N) Z __future__rrrZ cryptographyrZcryptography.exceptionsrrrÚobjectr rrrrÚs