o )%a@slddlZddlZddlmZmZddlmZddlmZGddde Z Gddde Z Gd d d e Z dS) N) exceptionsutils)aead)backendc@seZdZdZdefddZedefddZded ed ej edefd d Z ded ed ej edefd dZ ded ed eddfddZ dS)ChaCha20Poly1305keycCsDt|s tdtjjtd|t|dkrt d||_ dS)Nzz)AESGCM key must be 128, 192, or 256 bits.)rrrrrrrrrrs   zAESGCM.__init__rIrcCrJrKrOrPrrrrrQzAESGCM.generate_keyrrrcCrr r$r)rrrr*r+zAESGCM.encryptcCr,r-r.r)rrrr0r1zAESGCM.decryptNcCsHtd|td|td|t|dkst|dkr"tddS)NrrrrBrLz%Nonce must be between 8 and 128 bytesr3r)rrrr's   zAESGCM._check_params)r5r6r7r%r8rr9rFrr:r;r*r0r'rrrrrYs@    rY) rr: cryptographyrr$cryptography.hazmat.backends.opensslr,cryptography.hazmat.backends.openssl.backendrobjectrr<rYrrrrs  ?M