o !`q @sjdZddlZddlZddlZddlmZddlmZdZde de fdd Z e ed Z Gd d d eZdS) zThis module contains needed classes, functions and constants to implement dh-ietf1024-sha256-aes128-cbc-pkcs7 secret encryption algorithm.N)sha256)Optional)rrrrrrr!h4b)Ngtr ;"QJryr :C0+ m_7O5r5r5r$r Evr^~rLBrr9krr\rDrH8rIZrS$|KI(fr$r[SrrrrrrrrnumberreturncCs|t|ddS)Nrbig)to_bytesmathceil bit_length)rbri8/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py int_to_bytessrkrdc@s(eZdZdddZdeddfddZdS) SessionrcNcCs:d|_d|_d|_ttdd|_td|jt |_ dS)NTrrdr) object_pathaes_key encryptedint from_bytesosurandommy_private_keypow DH_PRIME_1024 my_public_key)selfririrj__init__#s zSession.__init__server_public_keycCsdt||jt}t|}ddt||}d}t||t}t|dt}|dd|_ dS)Nrs ) rurtrvrklenhmacnewrdigestrn)rxrzcommon_secret_int common_secretsaltpseudo_random_key output_blockririrjset_server_public_key+szSession.set_server_public_key)rcN)__name__ __module__ __qualname__ryrprriririrjrl"s rl)__doc__rrfrrhashlibrtypingrDH_PRIME_1024_BYTESrpbytesrkrqrvobjectrlriririrjs