a °…bà,ã@s„ddlZddlZddlmZmZddlmZddlmZGdd„dƒZ Gdd„dƒZ Gd d „d ƒZ Gd d „d ƒZ Gd d„de ƒZdS)éN)Ú exceptionsÚutils)Úaead)Úbackendc@sxeZdZdZedœdd„Zeedœdd„ƒZeeej eedœd d „Z eeej eedœd d „Z eeed dœdd„Z d S)ÚChaCha20Poly1305éÿÿÿ©ÚkeycCsDt |¡st dtjj¡‚t d|¡t|ƒdkr:t dƒ‚||_ dS)NzJsz!AESSIV.encrypt..r#r"r$)r(rr&Úanyr'rr)r©rrr rr`rr+@s ÿÿzAESSIV.encryptcCs,|dur g}| ||¡t t|d||d¡Sr,r-rcrrrr/Ts zAESSIV.decryptNcCs4t d|¡t|tƒr(tdd„|Dƒƒs0tdƒ‚dS)Nrcss|]}t|tƒVqdSr])rCr6)r^Úxrrrrafsz'AESSIV._check_params..z/associated_data must be a list of bytes or None)rr2rCÚlistÚallrErcrrrr(`s  ÿzAESSIV._check_params)r3r4r5r&r6rr7rDrr8r9ÚListr+r/r(rrrrrZ&s   ü ü ürZ)rr8Z cryptographyrrZ$cryptography.hazmat.backends.opensslrZ,cryptography.hazmat.backends.openssl.backendrrr:rVrXÚobjectrZrrrrÚs  ?U?E