3TfeddlmZddlZddlZddlmZddlmZ d ddZ GddZ Gd d Z Gd d Z Gd dejZeZej!ej"jGddejZeZej!ej"j$GddejZeZej!ej"j(y)) annotationsN)openssl)_serialization DHParametersc2ddlm}|j||SNr)backend),cryptography.hazmat.backends.openssl.backendr generate_dh_parameters) generatorkey_sizer ossls N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/dh.pygenerate_parametersrsM  & &y( ;;c^eZdZdd dZd dZdd dZed dZed dZed dZ y)DHParameterNumbersNct|trt|ts td|t|ts td|dkr td|j t j jkr'tdt j jd||_||_ ||_ y)Nzp and g must be integerszq must be integer or Nonez!DH generator must be 2 or greaterzp (modulus) must be at least z-bit) isinstanceint TypeError ValueError bit_length rust_openssldhMIN_MODULUS_SIZE_p_g_q)selfpgqs r__init__zDHParameterNumbers.__init__s!S!As);67 7 =As!378 8 q5@A A <<>LOO<< </??334D:  rct|tstS|j|jk(xr4|j|jk(xr|j |j k(SN)rrNotImplementedrrr r!others r__eq__zDHParameterNumbers.__eq__*sN%!34! ! GGuxx  ODGGuxx$7 ODGGuxxr?r%r+rLr@rGrHrArrrCrCFs9 4 1''rrCcJeZdZddZddZd d dZed dZed dZy) DHPrivateNumbersct|ts tdt|ts td||_||_y)Nzx must be an integer.z6public_numbers must be an instance of DHPublicNumbers.)rrrrC_x_public_numbers)r!xpublic_numberss rr%zDHPrivateNumbers.__init__msC!S!34 4./:K -rct|tstS|j|jk(xr|j|jk(Sr')rrRr(rTrUr)s rr+zDHPrivateNumbers.__eq__ysC%!12! ! GGuxx  >$$(=(== rNc0ddlm}|j|Sr)r r load_dh_private_numbersr.s r private_keyzDHPrivateNumbers.private_keys ++D11rc|jSr')rUr1s rrWzDHPrivateNumbers.public_numberss###rc|jSr')rTr1s rrVzDHPrivateNumbers.xr2r)rVrrWrCr6r7r8r')r r;r6 DHPrivateKeyr6rCr<) r=r>r?r%r+r[r@rWrVrArrrRrRls9 . 2$$rrRceZdZejddZej ddZejddZy)rcy)z7 Generates and returns a DHPrivateKey. NrAr1s rgenerate_private_keyz!DHParameters.generate_private_keyrcy)z= Returns the parameters serialized as bytes. NrAr!encodingformats rparameter_byteszDHParameters.parameter_bytesrcrcy)z/ Returns a DHParameterNumbers. NrAr1s rrHzDHParameters.parameter_numbersrcrN)r6r^)rf_serialization.Encodingrgz_serialization.ParameterFormatr6bytesrP)r=r>r?abcabstractmethodrbrhrHrArrrrsj    ) /        r) metaclassceZdZeej ddZej ddZej d dZej d dZ ej d dZ y) rOcyz6 The bit length of the prime modulus. NrAr1s rr zDHPublicKey.key_sizercrcy)zJ The DHParameters object associated with this public key. NrAr1s rr/zDHPublicKey.parametersrcrcy)z, Returns a DHPublicNumbers. NrAr1s rrWzDHPublicKey.public_numbersrcrcyz6 Returns the key serialized as bytes. NrAres r public_byteszDHPublicKey.public_bytesrcrcy)z" Checks equality. NrAr)s rr+zDHPublicKey.__eq__rcrNr<r6rr_)rfrjrgz_serialization.PublicFormatr6rkr8) r=r>r?r@rlrmr r/rWrvr+rArrrOrOs           ) ,        rrOc eZdZeej ddZej d dZej d dZej d dZ ej d dZ ej d dZ y)r^cyrqrAr1s rr zDHPrivateKey.key_sizercrcy)zC The DHPublicKey associated with this private key. NrAr1s rrLzDHPrivateKey.public_keyrcrcy)zK The DHParameters object associated with this private key. NrAr1s rr/zDHPrivateKey.parametersrcrcy)zn Given peer's DHPublicKey, carry out the key exchange and return shared key as bytes. NrA)r!peer_public_keys rexchangezDHPrivateKey.exchangercrcy)z- Returns a DHPrivateNumbers. NrAr1s rprivate_numberszDHPrivateKey.private_numbersrcrcyrurA)r!rfrgencryption_algorithms r private_byteszDHPrivateKey.private_bytesrcrNr<)r6rOrx)r~rOr6rk)r6rR)rfrjrgz_serialization.PrivateFormatrz)_serialization.KeySerializationEncryptionr6rk) r=r>r?r@rlrmr rLr/rrrrArrr^r^s                 ) - H     rr^r')r rr rr r;r6r) __future__rrltyping"cryptography.hazmat.bindings._rustrrcryptography.hazmat.primitivesrrrrCrRABCMetarDHParametersWithSerializationregisterrrODHPublicKeyWithSerializationr^DHPrivateKeyWithSerializationrArrrs # F9:><<!<,6<<--`#'#'L##L S[[ 0!- loo223" CKK" J + \__001* S[[* Z!- loo223r