code: def fill_missing(self):
          
          s = self.tls_session
  
          if self.curve_type is None:
              self.curve_type = _tls_ec_curve_types["named_curve"]
  
          if self.named_curve is None:
              curve = ec.SECP256R1()
              s.server_kx_privkey = ec.generate_private_key(curve,
                                                            default_backend())
              self.named_curve = next((cid for cid, name in six.iteritems(_tls_named_curves)  # noqa: E501
                                       if name == curve.name), 0)
          else:
              curve_name = _tls_named_curves.get(self.named_curve)
              if curve_name is None:
                  # this fallback is arguable
                  curve = ec.SECP256R1()
              else:
                  curve_cls = ec._CURVE_TYPES.get(curve_name)
                  if curve_cls is None:
                      # this fallback is arguable
                      curve = ec.SECP256R1()
                  else:
                      curve = curve_cls()
              s.server_kx_privkey = ec.generate_private_key(curve,
                                                            default_backend())
  
          if self.point is None:
              pubkey = s.server_kx_privkey.public_key()
              try:
                  # cryptography >= 2.5
                  self.point = pubkey.public_bytes(
                      serialization.Encoding.X962,
                      serialization.PublicFormat.UncompressedPoint
                  )
              except TypeError:
                  # older versions
                  self.key_exchange = pubkey.public_numbers().encode_point()
          # else, we assume that the user wrote the server_kx_privkey by himself
          if self.pointlen is None:
              self.pointlen = len(self.point)
  
          if not s.client_kx_ecdh_params:
              s.client_kx_ecdh_params = curve
docs: We do not want TLSServerKeyExchange.build() to overload and recompute
          things every time it is called. This method can be called specifically
          to have things filled in a smart fashion.
  
          XXX We should account for the point_format (before 'point' filling).