pg ddlZddlZddlmZdZ ddededejddfd ZGd d ZGd d Z GddZ Gddej Z e Z Gddej ZeZGddej ZeZdS)N)_serializationi generatorkey_sizebackendreturn DHParametersc:ddlm}|||SNr)r),cryptography.hazmat.backends.openssl.backendrgenerate_dh_parameters)rrrossls N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.pygenerate_parametersrs-MLLLLL  & &y( ; ;;c eZdZddededejeddfdZdedefdZ dd ej dd fd Z e defd Z e defd Ze dejefdZdS)DHParameterNumbersNpgqrct|trt|tstd|$t|tstd|dkrtd|t kr'tdt ||_||_||_ dS)Nzp and g must be integerszq must be integer or Nonez!DH generator must be 2 or greaterz#p (modulus) must be at least {}-bit) isinstanceint TypeError ValueError bit_length_MIN_MODULUS_SIZEformat_p_g_q)selfrrrs r__init__zDHParameterNumbers.__init__s!S!! 8As);); 8677 7 =As!3!3=788 8 q55@AA A <<>>- - -5<<=NOO rotherct|tstS|j|jko|j|jko|j|jkSN)rrNotImplementedrr r!r"r$s r__eq__zDHParameterNumbers.__eq__*sJ%!344 "! ! Gux  ODGux$7 ODGux$$ F t    44&*444443X3X6?3'XrrceZdZdededdfdZdedefdZd de j dd fd Z e defd Z e defd ZdS)DHPublicNumbersyparameter_numbersrNct|tstdt|tstd||_||_dS)Nzy must be an integer.z5parameters must be an instance of DHParameterNumbers.)rrrr_y_parameter_numbers)r"r?r@s rr#zDHPublicNumbers.__init__Gsc!S!! 5344 4+-?@@ G "3rr$czt|tstS|j|jko|j|jkSr&)rr>r'rBrCr(s rr)zDHPublicNumbers.__eq__SsA%11 "! ! Gux  D'5+CC rr DHPublicKeyc8ddlm}||Sr )r rload_dh_public_numbersr,s r public_keyzDHPublicNumbers.public_key\s6      **4000rc|jSr&)rBr/s rr?zDHPublicNumbers.ycr0rc|jSr&)rCr/s rr@z!DHPublicNumbers.parameter_numbersgs &&rr&)r3r4r5rrr#r8r9r)r6r:rHr;r?r@r<rrr>r>Fs 4# 42D 4 4 4 4 4 F t    11&*1 11113X'#5'''X'''rr>ceZdZdededdfdZdedefdZd de j dd fd Z e defd Z e defd ZdS)DHPrivateNumbersxpublic_numbersrNct|tstdt|tstd||_||_dS)Nzx must be an integer.z6public_numbers must be an instance of DHPublicNumbers.)rrrr>_x_public_numbers)r"rMrNs rr#zDHPrivateNumbers.__init__msa!S!! 5344 4./:: K -rr$czt|tstS|j|jko|j|jkSr&)rrLr'rPrQr(s rr)zDHPrivateNumbers.__eq__ysA%!122 "! ! Gux  >$(== rr DHPrivateKeyc8ddlm}||Sr )r rload_dh_private_numbersr,s r private_keyzDHPrivateNumbers.private_keys6      ++D111rc|jSr&)rQr/s rrNzDHPrivateNumbers.public_numberss ##rc|jSr&)rPr/s rrMzDHPrivateNumbers.xr0rr&)r3r4r5rr>r#r8r9r)r6r:rVr;rNrMr<rrrLrLls .# . .4 . . . . F t    226:22222$$$$X$3XrrLceZdZejd dZejdejdejde fdZ ejde fdZ dS) rrrScdS)z7 Generates and returns a DHPrivateKey. Nr<r/s rgenerate_private_keyz!DHParameters.generate_private_keyrencodingrcdS)z= Returns the parameters serialized as bytes. Nr<r"r]rs rparameter_byteszDHParameters.parameter_bytesr\rcdS)z/ Returns a DHParameterNumbers. Nr<r/s rr@zDHParameters.parameter_numbersr\rN)rrS) r3r4r5abcabstractmethodr[rEncodingParameterFormatbytesr`rr@r<rrrrs       ) .         #5      r) metaclassceZdZejdefdZejdefdZ ejde fdZ ejde j de jdefdZdS) rErcdSz6 The bit length of the prime modulus. Nr<r/s rrzDHPublicKey.key_sizer\rcdS)zJ The DHParameters object associated with this public key. Nr<r/s rr-zDHPublicKey.parametersr\rcdS)z, Returns a DHPublicNumbers. Nr<r/s rrNzDHPublicKey.public_numbersr\rr]rcdSz6 Returns the key serialized as bytes. Nr<r_s r public_byteszDHPublicKey.public_bytesr\rN)r3r4r5rbabstractpropertyrrrcrr-r>rNrrd PublicFormatrfror<rrrErEs #      L             ) +         rrEc eZdZejdefdZejdefdZ ejde fdZ ejdede fdZ ejdefdZejdejd ejd ejde fd Zd S) rSrcdSrjr<r/s rrzDHPrivateKey.key_sizer\rcdS)zC The DHPublicKey associated with this private key. Nr<r/s rrHzDHPrivateKey.public_keyr\rcdS)zK The DHParameters object associated with this private key. Nr<r/s rr-zDHPrivateKey.parametersr\rpeer_public_keycdS)zn Given peer's DHPublicKey, carry out the key exchange and return shared key as bytes. Nr<)r"rvs rexchangezDHPrivateKey.exchanger\rcdS)z- Returns a DHPrivateNumbers. Nr<r/s rprivate_numberszDHPrivateKey.private_numbersr\rr]rencryption_algorithmcdSrnr<)r"r]rr{s r private_byteszDHPrivateKey.private_bytesr\rN)r3r4r5rbrprrrcrErHrr-rfrxrLrzrrd PrivateFormatKeySerializationEncryptionr}r<rrrSrSsD #      K      L             !1       ) , -G         rrSr&)rbr6cryptography.hazmat.primitivesrrrr:rrr>rLABCMetarDHParametersWithSerializationrEDHPublicKeyWithSerializationrSDHPrivateKeyWithSerializationr<rrrs  999999:><<<!<,2J<<<<<,,,,,,,,^#'#'#'#'#'#'#'#'L########L     S[    0!-     CK    < +) ) ) ) ) S[) ) ) ) X!-r