a b @sddlZddlZddlmZddlmZddlmZGdddeZGdddZ Gd d d Z Gd d d Z Gd ddeZ GdddeZ GdddejdZGdddeZejdejedddZdS)N)hashes)AsymmetricPadding)rsac@seZdZdZdS)PKCS1v15zEMSA-PKCS1-v1_5N)__name__ __module__ __qualname__namer r X/tmp/pip-target-98j97qn4/lib/python/cryptography/hazmat/primitives/asymmetric/padding.pyrsrc@seZdZdZdS) _MaxLengthz Sentinel value for `MAX_LENGTH`.Nrrr__doc__r r r r r sr c@seZdZdZdS)_AutozSentinel value for `AUTO`.Nr r r r r rsrc@seZdZdZdS) _DigestLengthz#Sentinel value for `DIGEST_LENGTH`.Nr r r r r rsrc@sZeZdZUeZeZeZdZ e j e eeefe d<de j e eeefddddZdS)PSSzEMSA-PSS _salt_lengthMGFN)mgf salt_lengthreturncCsD||_t|ttttfs tdt|tr:|dkr:td||_dS)NzBsalt_length must be an integer, MAX_LENGTH, DIGEST_LENGTH, or AUTOrz$salt_length must be zero or greater.) _mgf isinstanceintr rr TypeError ValueErrorr)selfrrr r r __init__'s z PSS.__init__)rrrr MAX_LENGTHrZAUTOrZ DIGEST_LENGTHr typingUnionr__annotations__rr r r r r s rc@s*eZdZdZdejejedddZ dS)OAEPzEME-OAEPr)r algorithmlabelcCs*t|tjstd||_||_||_dSNz*Expected instance of hashes.HashAlgorithm.)rr HashAlgorithmrr _algorithmZ_label)rrr#r$r r r r?s  z OAEP.__init__N) rrrr rr&rOptionalbytesrr r r r r"<s r"c@seZdZUejed<dS)rr'N)rrrrr&r!r r r r rMs r) metaclassc@s"eZdZeZejdddZdS)MGF1)r#cCst|tjstd||_dSr%)rrr&rr')rr#r r r rTs z MGF1.__init__N)rrrr rrr&rr r r r r+Qsr+)zrsa.RSAPrivateKeyzrsa.RSAPublicKey)keyhash_algorithmrcCsFt|tjtjfstd|jdd}||jd}|dksBJ|S)Nz(key must be an RSA public or private keyr)rrZ RSAPrivateKeyZ RSAPublicKeyrZkey_size digest_size)r,r-Zemlenrr r r calculate_max_pss_salt_length[s  r2)abcrZcryptography.hazmat.primitivesrZ*cryptography.hazmat.primitives._asymmetricrZ)cryptography.hazmat.primitives.asymmetricrrr rrrr"ABCMetarr+r r&rr2r r r r s