from cryptography.hazmat .primitives .ciphers import Cipher, algorithms, modes
from cryptography.hazmat .backends import default_backend
from binascii import hexlify as hexa
from os import urandom
k= urandom( 16 )
iv= urandom( 16 )
print ( "k=" , hexa( k) )
cipher = Cipher( algorithms.AES ( k) , modes.CBC ( iv) , backend = default_backend)
aes_encrypt = cipher.encryptor ( )
p1= urandom( 16 )
p2= urandom( 16 )
p= p1+p2+p1
c= aes_encrypt.update ( p) +aes_encrypt.finalize ( )
print ( "p= " , hexa( p) )
print ( "c=" , hexa( c) )
aes_decrypt = cipher.decryptor ( )
p3= aes_decrypt.update ( c) +aes_decrypt.finalize ( )
print ( "p3=" , hexa( p3) )
ZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuY2lwaGVycyBpbXBvcnQgQ2lwaGVyLCBhbGdvcml0aG1zLCBtb2Rlcwpmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMgaW1wb3J0IGRlZmF1bHRfYmFja2VuZApmcm9tIGJpbmFzY2lpIGltcG9ydCBoZXhsaWZ5IGFzIGhleGEKZnJvbSBvcyBpbXBvcnQgdXJhbmRvbQoKaz11cmFuZG9tKDE2KQppdj11cmFuZG9tKDE2KQpwcmludCgiaz0iLGhleGEoaykpCmNpcGhlciA9IENpcGhlcihhbGdvcml0aG1zLkFFUyhrKSwgbW9kZXMuQ0JDKGl2KSwgYmFja2VuZCA9IGRlZmF1bHRfYmFja2VuZCkKYWVzX2VuY3J5cHQgPSBjaXBoZXIuZW5jcnlwdG9yKCkKcDE9dXJhbmRvbSgxNikKcDI9dXJhbmRvbSgxNikKcD1wMStwMitwMQpjPWFlc19lbmNyeXB0LnVwZGF0ZShwKSArYWVzX2VuY3J5cHQuZmluYWxpemUoKQpwcmludCgicD0gIixoZXhhKHApKQpwcmludCgiYz0iLGhleGEoYykpCmFlc19kZWNyeXB0ID0gY2lwaGVyLmRlY3J5cHRvcigpCnAzPWFlc19kZWNyeXB0LnVwZGF0ZShjKSArYWVzX2RlY3J5cHQuZmluYWxpemUoKQpwcmludCgicDM9IixoZXhhKHAzKSk=
stdout
k= b'db2d667fb62679ab5c8454eb17922c3b'
stderr
Traceback (most recent call last):
File "./prog.py", line 9, in <module>
File "/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/ciphers/base.py", line 84, in __init__
_Reasons.BACKEND_MISSING_INTERFACE
cryptography.exceptions.UnsupportedAlgorithm: Backend object does not implement CipherBackend.